API v2 is in alpha and may change at any time. Use v1 for production.
GMJ Roaming API

List, install, monitor and manage eSIMs you already bought.


List my eSIMs

POST
https://api.gmjroaming.com/api/v1
/myesim

Lists your eSIMs, newest first, 20 per page by default. All filters are optional. A full 18–22 digit iccid is an exact match. A shorter value is a partial match.

List my eSIMs › Request Body

transaction_id
​string

Purchase reference.

iccid
​string
no_order
​string

Exact orderNo.

package_name
​string

Partial match.

esim_status
​string
per_page
​integer · min: 1 · max: 100
Default: 20
page
​integer · min: 1
Default: 1

List my eSIMs › Responses

eSIMs

Every v1 response uses this wrapper.
status
​string · enum
Enum values:
success
error
code
​integer
message
​string
​Esim[]
current_page
​integer
per_page
​integer
total_pages
​integer
next_page_url
​string | null
prev_page_url
​string | null
​object[]

Pagination links for UIs.


GET
https://api.gmjroaming.com/api/v1
/public-esim-link

Returns links you can send to your customer so they can install the eSIM. Pass esimTranNo or iccid. Fields are null while the eSIM is still being prepared.

esimTranNo
​string · maxLength: 100
iccid
​string · pattern: ^[0-9]{18,22}$

Links

success
​boolean · const
Const value:
​object

Get live data usage

GET
https://api.gmjroaming.com/api/v1
/esim-live-usage

Reads usage straight from the network provider. It's slower than /myesim, but current.

Get live data usage › query Parameters

esimTranNo
​string · maxLength: 100 · required

Get live data usage › Responses

Usage

​object

Suspend an eSIM

POST
https://api.gmjroaming.com/api/v1
/suspend

Temporarily stops data. Undo with /unsuspend.

Suspend an eSIM › Request Body

iccid
​string · required
transaction_id
​string · required

The purchase the eSIM came from.

Suspend an eSIM › Responses

Done. data is the updated eSIM record.

Every v1 response uses this wrapper.
status
​string · enum
Enum values:
success
error
code
​integer
message
​string
​EsimRecord

The stored eSIM record (snake_case columns), returned by lifecycle actions.


Resume a suspended eSIM

POST
https://api.gmjroaming.com/api/v1
/unsuspend

Resume a suspended eSIM › Request Body

iccid
​string · required
transaction_id
​string · required

The purchase the eSIM came from.

Resume a suspended eSIM › Responses

Done. data is the updated eSIM record.

Every v1 response uses this wrapper.
status
​string · enum
Enum values:
success
error
code
​integer
message
​string
​EsimRecord

The stored eSIM record (snake_case columns), returned by lifecycle actions.


Cancel an unused eSIM (refund)

POST
https://api.gmjroaming.com/api/v1
/cancel-esim

Cancels an eSIM that was never installed and refunds it to your balance. This can't be undone.

Cancel an unused eSIM (refund) › Request Body

iccid
​string · required
transaction_id
​string · required

The purchase the eSIM came from.

package_code
​string · required

packageCode from the eSIM's packageList.

Cancel an unused eSIM (refund) › Responses

Cancelled and refunded. data is the updated eSIM record.

Every v1 response uses this wrapper.
status
​string · enum
Enum values:
success
error
code
​integer
message
​string
​EsimRecord

The stored eSIM record (snake_case columns), returned by lifecycle actions.

currency
​string · const
Const value: USD
current_balance
​string | number

Revoke an eSIM

POST
https://api.gmjroaming.com/api/v1
/revoke

Permanently disables the eSIM. There's no refund, and it can't be undone.

Revoke an eSIM › Request Body

iccid
​string · required
transaction_id
​string · required

The purchase the eSIM came from.

Revoke an eSIM › Responses

Done. data is the updated eSIM record.

Every v1 response uses this wrapper.
status
​string · enum
Enum values:
success
error
code
​integer
message
​string
​EsimRecord

The stored eSIM record (snake_case columns), returned by lifecycle actions.