Skip to content

Get account overview

POST
/account
curl --request POST \
--url https://api.roamex.com/v1/account \
--header 'Authorization: Bearer <token>'

Returns your account details, balance, eSIM counts and the number of API requests logged for your account in the last 24 hours. The eSIM counts use the same rules as the status filter of /esims/list. The request body is ignored.

The account overview.

Media typeapplication/json
object
success
required
boolean
account
required
object
id
required
string format: uuid
companyName
required
string | null
contactEmail
required
string | null
country
required
string | null
status
required

Account status. A key only authenticates while the account is approved.

string
balance
required
object
amount
required

Euro cents.

integer
currency
required
string
Allowed values: EUR
formatted
required
string
customerMarkupPercent
required

Your customer markup, in percent.

integer
createdAt
required
string format: date-time
esims
required

total counts every eSIM on the account. active, ready and cancelled count the eSIMs /esims/list returns for that status filter.

object
total
required
integer
active
required
integer
ready
required
integer
cancelled
required
integer
api
required
object
requestsLast24h
required

API requests logged for this account in the last 24 hours.

integer

Example

{
"success": true,
"account": {
"id": "00000000-0000-4000-8000-0000000000a1",
"companyName": "Example Travel BV",
"contactEmail": "ops@example.com",
"country": "NL",
"status": "approved",
"balance": {
"amount": 25000,
"currency": "EUR",
"formatted": "€250.00"
},
"customerMarkupPercent": 30,
"createdAt": "2026-09-01T09:30:00+00:00"
},
"esims": {
"total": 12,
"active": 3,
"ready": 4,
"cancelled": 1
},
"api": {
"requestsLast24h": 87
}
}
X-RateLimit-Limit
integer

Calls allowed per minute for this endpoint group.

X-RateLimit-Remaining
integer

Calls left in the current minute.

X-RateLimit-Reset
integer

When the current window ends, in Unix seconds.

AUTH_ERROR: the key is missing, malformed, unknown or revoked. The message says which, for example Missing Authorization header, Invalid Authorization header format. Use: Bearer <api_key>, Invalid API key format or Invalid API key.

Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false,
"error": {
"code": "AUTH_ERROR",
"message": "Invalid API key"
}
}

AUTH_ERROR: the account is suspended (Your account is suspended. Please contact support.) or rejected (Account is not approved for API access).

Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false
}
  • NOT_FOUND: the API is switched off on the platform.
  • ACCOUNT_NOT_FOUND: the account row could not be read.
Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false
}

PAYLOAD_TOO_LARGE: the Content-Length header is over 100 KB.

Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false
}

RATE_LIMITED: the account’s per-minute budget for this endpoint group is used up, or too many refused keys came from this IP address. Wait the Retry-After seconds.

Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Please wait 42 seconds before retrying."
}
}
X-RateLimit-Limit
integer

Calls allowed per minute for this endpoint group.

X-RateLimit-Remaining
integer

Calls left in the current minute.

X-RateLimit-Reset
integer

When the current window ends, in Unix seconds.

Retry-After
integer

Seconds to wait before retrying.

  • INTERNAL_ERROR: an unexpected error on our side.
  • AUTH_ERROR with status 500: the key could not be checked because of an error on our side. Retry with backoff.
Media typeapplication/json
object
success
required
boolean
error
required
object
code
required

Machine-readable. Branch on this.

string
message
required

A sentence for people. It can change.

string

Example

{
"success": false
}