eSIM Plans
Browse, purchase, and track prepaid eSIM data plans for 200+ countries.
eSIM Plans
Sell prepaid mobile data plans to travellers. Browse plans by country, present options, sell instantly, and track activation status.
Get Plans by Country
GET /v1/travel/esim/plans/{country}
Returns available eSIM data plans for a country. Plans vary by data bundle, validity, and price.
| Path param | Description |
|---|---|
country | ISO 3166-1 alpha-2 code, e.g. GB |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/esim/plans/{country}Sandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/esim/plans/{country}' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \Get Resource Options
GET /v1/travel/esim/{resource_id}/options
Returns data bundle and validity options for a specific eSIM resource before purchase.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/esim/{resource_id}/optionsSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/esim/{resource_id}/options' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \Purchase eSIM
POST /v1/travel/esim/purchase
Creates an eSIM order. Returns an activation QR code and install instructions. Charges the user's perk balance or initiates payment.
| Field | Type | Required | Description |
|---|---|---|---|
resource_id | string | yes | Plan identifier from the plans endpoint |
user_id | string | yes | End-user identifier |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/esim/purchaseSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/esim/purchase' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"resource_id":"esim_gb_5gb_30d","user_id":"usr_example"}'Pay for a Prebooked eSIM with Perks
POST /v1/travel/esim/{booking_id}/pay-with-perks
Settle a prebooked eSIM order using perk items instead of (or in addition to) cash. Supply one item_id per passenger. If the perk items fully cover the order, the eSIM is issued immediately; if they only cover part of it, the response returns a Stripe payment intent for the remaining shortfall.
| Path param | Description |
|---|---|
booking_id | The prebooked eSIM order identifier |
| Field | Type | Required | Description |
|---|---|---|---|
item_ids | array<string> | yes | One item_id per passenger. Each perk item must belong to the user's own inventory. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/esim/{booking_id}/pay-with-perksSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/esim/{booking_id}/pay-with-perks' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"item_ids":["perk_item_example"]}'Check Order Status
GET /v1/travel/esim/orders/{order_id}/status
Poll activation status. Statuses: pending → active | failed.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/esim/orders/{order_id}/statusSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/esim/orders/{order_id}/status' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \