Roamify eSIM API Breaking Changes

Donald Bogle
June 9, 2026 22:20
eSIM Guide
We're rolling out a set of API updates that bring new endpoints, expanded functionality, and a few changes you'll want to be aware of before updating your integration.
⚠️ Breaking Changes — Get eSIM Packages #
Endpoint: GET /api/esim/packages
https://roamify.apidog.io/get-esim-packages-12947634e0
1. Response is now paginated #
This endpoint now returns paginated results instead of all packages in a single response. If your integration fetches packages without pagination parameters, you may only be receiving the first page of results.
Action required: Update your integration to handle paginated responses using the page and pageSize query parameters.
| Parameter | Type | Default | Description |
|---|---|---|---|
| page | string | 1 | Page number to retrieve. |
| pageSize | string | 50 | Number of results per page. |
To retrieve all packages, iterate through pages until the response returns fewer results than your pageSize.
2. country and countryCode now have distinct meanings #
Previously these fields may have been used interchangeably. They now serve different purposes and both must use values sourced from the GET /api/esim/countries endpoint — arbitrary strings are no longer accepted.
| Parameter | Accepted value | Source |
|---|---|---|
| country | Full country name | name field from the Country API |
| countryCode | ISO country code | code field from the Country API |
Action required: If you are currently passing free-text country strings, update your integration to first call GET /api/esim/countries and use the name or code values from the response.
New Endpoints #
GET /api/esim/countries #
https://roamify.apidog.io/get-esim-supported-country-12947635e0
Returns a list of all countries supported by Roamify eSIM. Use the name and code values from this response as filter inputs when querying GET /api/esim/packages.
optional filter parameter available with geography
POST /api/esim/sms #
https://roamify.apidog.io/send-sms-37579804e0
Send an SMS message directly to an eSIM.
| Name | Type | Required | Description |
|---|---|---|---|
| iccid | string | required | The ICCID of the eSIM to send the SMS to. |
| message | string | required | The message content to send. |
Updated Endpoints #
POST /api/esim/apply — startDate now supported #
A new optional startDate field has been added to the Generate eSIM Profile endpoint. For a small subset of packages (~30 out of 28,000+), this field is required.
You can identify these packages by checking if requirements.travelDate is true in the package object. If required and not provided, the profile generation request will fail.
| Name | Type | Required | Description |
|---|---|---|---|
| startDate | string | conditional | Travel start date in ISO 8601 format. Required if requirements.travelDate is true. |
Timeout reminder
Full API Reference #
Full documentation is available at docs.getroamify.com.
If you have any questions or need help updating your integration, reach out to our partner support team.
Planên cihê eSIM-ê yên têkildar
Pirsên pir caran têne pirsîn
- Ez ê di Roamify eSIM API Breaking Changes de çi hîn bibim?
- Hûn ê fêr bibin ka çalakkirina eSIM çawa dixebite, meriv çawa plansaziyên daneyê berhev dike, û kîjan gavên sazkirinê berî û di dema gera we de pir girîng in.
- Ez çawa dikarim plansaziya eSIM-a rast ji bo ژاپۆن hilbijêrin?
- Plana xwe bi dirêjahiya rêwîtiyê, karanîna daneya rojane ya çaverêkirî, hewcedariyên cîhê germ, û kalîteya torê li cîhê xwe bidin hev. Demên kurt bi gelemperî kêmtir dane hewce ne, dema ku xebata dûr û bangên vîdyoyê bêtir hewce ne.
- Ez dikarim ji bo ژاپۆن û تایلەند plansaziyên eSIM-a rêwîtiyê li ku bikirim?
- Zencîreyên mebestê yên di vê rêbernameyê de bikar bînin da ku rasterast biçin rûpelên welatê Roamify, vebijarkên plansaziyê bidin ber hev, û berî derketinê biqedînin temam bikin.