Skip to content

Instantly share code, notes, and snippets.

@empeje
Last active October 17, 2024 23:52
Show Gist options
  • Save empeje/bd0ca79cc719a9c734b9cf24e3e0f7a8 to your computer and use it in GitHub Desktop.
Save empeje/bd0ca79cc719a9c734b9cf24e3e0f7a8 to your computer and use it in GitHub Desktop.
eSIM Go - v2.4 fix
openapi: 3.0.0
info:
title: eSIM-GO API
version: 2.4.0
servers:
- url: https://api.esim-go.com/v2.4
description: eSIMGo API
components:
securitySchemes:
apikeyAuth:
type: apiKey
in: header
name: X-API-Key
security:
- apikeyAuth: []
tags:
- name: Api
- name: Callback
- name: eSIMs
- name: eSIMs (Deprecated)
- name: Organisation
- name: Orders
- name: Inventory
- name: Catalogue
- name: networks
paths:
/:
get:
tags:
- API
summary: Get API details
description: Returns information about the available API endpoints.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
- <string>
- <string>
/your-usage-callback-url/:
post:
tags:
- Callback
summary: eSIM Usage Callback
description: >
V3 of the Callback system is now available and provides additional data
as well as HMAC signature validation.
**This must be enabled in the eSIM Portal.**
V2 of the Callback system is still available by default, but will be
disabled in the future.
When data is used on an eSIM, a usage event can be sent to a URL defined
by you in the eSIM Portal.
The usage event will report the current bundle in use by an eSIM, and
it's remaining data.
Example of validating HMAC body in NodeJS:
```javascript
import crypto from "crypto";
const signature = crypto
.createHmac("sha256", key) // key is your API Key
.update(body) // body is the raw (string) request body
.digest("base64");
const matches = signature === signatureHeader;
```
Validation uses your API Key as the HMAC key.
The body of the request is the raw (string) request body, and should not
be parsed as JSON before validation.
**Note:** Bundle names are case sensitive e.g. "esim_1GB_7D_IM_U".
**Request Body Notes:**
- The "try" button for this endpoint is **NOT** functional
- The schema defines an example message that is sent to the configured
callback URL.
- For more information on callback notification types, Please see the
[Notifications Page](/api/notifications#overview).
requestBody:
content:
application/json:
schema:
type: object
example:
iccid: <string>
alertType: <string>
bundle:
id: <string>
reference: <string>
name: <string>
description: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
unlimited: <boolean>
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/esims/apply:
post:
tags:
- eSIMs
summary: Apply Bundle to an eSIM
description: >
This endpoint enables you to receive a new eSIM with the specified
Bundle pre-applied.
**Usage:**
* Either provide Bundle or Bundles.
* If an ICCID is provided as well as only a Bundle, the Bundle will be
applied to the eSIM for that ICCID.
* If no ICCID is provided, a new eSIM will be assigned to you, and the
Bundle applied.
* If no ICCID is provided, as well as only providing a Bundle, Repeat
can be provided to assign *Repeat* eSIMs to you with the Bundle applied.
* If Bundles is provided, seperate new eSIMs will be provided to you for
each bundle.
* The ICCID is always returned in the response.
* An ICCID cannot be provided in conjunction with the Repeat field.
* Bundle names are case sensitive and should be typed like the following
"esim_1GB_7D_IM_U".
**Notes:**
* In order to use this you must first have already purchased Bundles and
have them available in your inventory on your account.
* Bundle assignments to an eSIM are usually instant but please allow for
up to 10 minutes for the bundle to fully process. While the bundle is
processing the eSIM can be successfully installed and the eSIM will
register onto a network if within coverage.
* The Bundle Status can be checked through [Get the Status of a bundle
assigned to an
eSIM](https://docs.esim-go.com/api/#get-/esims/-iccid-/bundles/-name-)
requestBody:
content:
application/json:
schema:
type: object
example:
iccid: <string>
bundle: <string>
bundles:
- <string>
- <string>
startTime: <string>
repeat: <integer>
allowReassign: <boolean>
security:
- apikeyAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
esims:
- iccid: <string>
status: <string>
- iccid: <string>
status: <string>
applyReference: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'503':
description: Service Unavailable
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/qr/{reference}:
get:
tags:
- eSIMs (Deprecated)
summary: >-
Get QR codes for eSIMs from an Order or Bundle apply reference
(Deprecated)
description: >
Get multiple QR codes by providing an Order or Apply Reference. Returns
multiple QR codes as `.PNG` contained in a `.ZIP`.
Deprecated: See `/esims/assignments`
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/zip
- name: reference
in: path
schema:
type: string
required: true
description: (Required) Order Reference or Apply Reference
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/zip
content:
text/plain:
schema:
type: string
example: <zip>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/csv/{reference}:
get:
tags:
- eSIMs (Deprecated)
summary: Get CSV containing eSIMs from an Order or Bundle apply (Deprecated)
description: |
Get eSIM SMDP+ details by providing an Order or Apply Reference.
Contains ICCID, SMDP+ address and Matching ID.
Deprecated: See `/esims/assignments`
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: text/csv
- name: additionalFields
in: query
schema:
type: string
example: appleInstallUrl
- name: reference
in: path
schema:
type: string
required: true
description: (Required) Order Reference or Apply Reference
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: text/csv
content:
text/plain:
schema:
type: string
example: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/assignments:
get:
tags:
- eSIMs
summary: Get eSIM Install Details
description: >
Get eSIM SMDP+ details by providing an Order or Apply Reference.
Contains ICCID, SMDP+ address and Matching ID.
Multiple `reference`'s can be passed in using the query parameter.
Use the `Accept` header to control output format. Supported: `text/csv`,
`application/json`, `application/zip`.
Default return value is `text/csv`.
Using `application/zip` returns a ZIP file containing QR code images (in
PNG format).
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: reference
in: query
schema:
type: string
description: (Required) Order Reference or Apply Reference
example: <string>
- name: additionalFields
in: query
schema:
type: string
example: appleInstallUrl
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
example: ''
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/history:
get:
tags:
- eSIMs
summary: Get eSIM history
description: |
Return the history of an eSIM.
Bundle Assignment States:
- **Processing:**
The bundle assignment is currently processing.
This is usually instant but can, on occasion, take up to 10 minutes to complete.
The eSIM can still be installed and will register on a network while the bundle is processing.
- **Queued:**
The bundle has been successfully assigned, has not been used yet, and is queued for use.
- **Active:**
The bundle has successfully been used.
It has data remaining and is within the bundle duration.
- **Depleted:**
The bundle has no data remaining but is still within the bundle duration.
- **Expired:**
The bundle has expired, and the bundle duration has been exceeded.
- **Revoked:**
The bundle has been revoked, and is no longer on the esim.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
- name: <string>
bundle: <string>
date: <string>
bundleState: <string>
alertType: <string>
- name: <string>
bundle: <string>
date: <string>
bundleState: <string>
alertType: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/refresh:
get:
tags:
- eSIMs
summary: Refresh eSIM
description: >-
This request is used to generate a cancel location request to the
network, note this disconnects the customer from the network and should
be used for troubleshooting purposes only, it should not be used to
cancel location in bulk
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'503':
description: Service Unavailable
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/compatible/{bundle}:
get:
tags:
- eSIMs
summary: Check eSIM and Bundle Compatibility
description: >-
This request is used to check that a specific bundle is compatible with
an eSIM.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
- name: bundle
in: path
schema:
type: string
required: true
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/sms:
post:
tags:
- eSIMs
summary: Send SMS to eSIM
description: >
SMS must be UTF-8 compliant; with a minimum length of 1, and maximum
length of 160 characters.
This defaults to `eSIM` and is the only supported value by default.
Unique identifiers can be assigned to your Organisation on request.
**Please contact your Account Manager to discuss this.**
**Note:** Requires the eSIM to have an MSISDN
requestBody:
content:
application/json:
schema:
type: object
example:
message: message
from: eSIM
security:
- apikeyAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/bundles/{name}/applications/{assignmentId}:
delete:
tags:
- eSIMs (Deprecated)
summary: Revoke a specific Bundle Assignment from an eSIM (Deprecated)
description: >
Revokes a single assignment of a given Bundle type.
e.g. Can remove 1 month from a 1-year Bundle.
**Note:** Bundle names are case sensitive and should be typed like the
following "esim_1GB_7D_IM_U".
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: type
in: query
schema:
type: string
description: >-
type `validate` will provide options for the revoke and the
behaviours, if any. type `transaction` will execute the revoke.
Defaults to `transaction`
example: validate
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
- name: name
in: path
schema:
type: string
required: true
description: >
(Required) Name of Bundle
Format as defined in [List Catalogue](/api/#get-/catalogue) API
call.
Example: `esim_10GB_30D_IM_U`
example: <string>
- name: assignmentId
in: path
schema:
type: string
required: true
description: (Required) ID of individual Bundle Assignment to revoke from an eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
status: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/bundles/{name}/assignments/{assignmentId}:
delete:
tags:
- eSIMs
summary: Revoke specific Bundle
description: >
**IMPORTANT:**
If there are no bundles left on the eSIM AFTER the revoke, AND if the
eSIM is not installed, the eSIM will undergo the eSIM Go returns
process.
The start of the returns process will immediately REMOVE the eSIM from
your account - you will no longer be able to access it.
After a minimum of 4 days: if during the returns process, the eSIM is
now installed (e.g. by your end user), the eSIM will be returned to your
account.
If you DO NOT want the eSIM to be given back to eSIM Go, ensure the eSIM
either:-
- Is installed
- Has more than 1 bundle on it at the time of revoking
---
Revokes a single assignment of a given Bundle type.
e.g. Can remove 1 month from a 1-year Bundle.
**Note:** Bundle names are case sensitive and should be typed like the
following "esim_1GB_7D_IM_U".
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: type
in: query
schema:
type: string
description: >-
type `validate` will provide options for the revoke and the
behaviours, if any. type `transaction` will execute the revoke.
Defaults to `transaction`
example: validate
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
- name: name
in: path
schema:
type: string
required: true
description: >
(Required) Name of Bundle
Format as defined in [List Catalogue](/api/#get-/catalogue) API
call.
Example: `esim_10GB_30D_IM_U`
example: <string>
- name: assignmentId
in: path
schema:
type: string
required: true
description: (Required) ID of individual Bundle Assignment to revoke from an eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
status: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/bundles/{name}:
get:
tags:
- eSIMs
summary: Get applied Bundle status
description: >
Provides details about an individual assignment of a Bundle applied to
an eSIM.
Remaining data can be found here.
Each Bundle can have multiple assignments. e.g. a 1-year Bundle will
have 12 assignments, each with their own start and finish dates
Bundle Assignment States:
- **Processing:**
The bundle assignment is currently processing.
This is usually instant but can, on occasion, take up to 10 minutes to complete.
The eSIM can still be installed and will register on a network while the bundle is processing.
- **Queued:**
The bundle has been successfully assigned, has not been used yet, and is queued for use.
- **Active:**
The bundle has successfully been used.
It has data remaining and is within the bundle duration.
- **Depleted:**
The bundle has no data remaining but is still within the bundle duration.
- **Expired:**
The bundle has expired, and the bundle duration has been exceeded.
- **Revoked:**
The bundle has been revoked, and is no longer on the esim.
**Notes:**
- If multiple of the same bundle are applied to a single eSIM, the
status bundle with the latest assignment will be returned.
- Bundle names are case sensitive and should be typed like the following
"esim_1GB_7D_IM_U".
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
- name: name
in: path
schema:
type: string
required: true
description: >
(Required) Name of Bundle
Format as defined in [List Catalogue](/api/#get-/catalogue) API
call.
Example: `esim_10GB_30D_IM_U`
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
assignments:
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
delete:
tags:
- eSIMs
summary: Revoke applied Bundle
description: >
**IMPORTANT:**
If there are no bundles left on the eSIM AFTER the revoke, AND if the
eSIM is not installed, the eSIM will undergo the eSIM Go returns
process.
The start of the returns process will immediately REMOVE the eSIM from
your account - you will no longer be able to access it.
After a minimum of 4 days: if during the returns process, the eSIM is
now installed (e.g. by your end user), the eSIM will be returned to your
account.
If you DO NOT want the eSIM to be given back to eSIM Go, ensure the eSIM
either:-
- Is installed
- Has more than 1 bundle on it at the time of revoking
---
Revokes latest assignment of a given Bundle type.
If a bundle assignment has not been started and no data has been
consumed, the bundle assignment can either be returned to the inventory
or credited back to the organisations balance.
If the bundle assignment has started, or was purchased outside of their
permitted refund period, typically 60 days, it cannot be returned to the
inventory or taken as a credit.
**Note:** Bundle names are case sensitive and should be typed like the
following "esim_1GB_7D_IM_U".
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: refundToBalance
in: query
schema:
type: string
description: >-
If Applicable, refund the value of this bundle to organisation
balance
example: <boolean>
- name: offerId
in: query
schema:
type: string
description: >-
If Applicable, the offerId of the bundle to revoke. needed for
refunding to balance
example: <string>
- name: type
in: query
schema:
type: string
description: >-
type `validate` will provide options for the revoke and the
behaviours, if any. type `transaction` will execute the revoke.
Defaults to `transaction`
example: validate
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
- name: name
in: path
schema:
type: string
required: true
description: >
(Required) Name of Bundle
Format as defined in [List Catalogue](/api/#get-/catalogue) API
call.
Example: `esim_10GB_30D_IM_U`
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
status: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/bundles:
get:
tags:
- eSIMs
summary: List Bundles applied to eSIM
description: |
Provides details about the current Bundles applied to an eSIM.
Remaining data can be found here.
Each Bundle can have multiple assignments.
Bundle Assignment States:
- **Processing:**
The bundle assignment is currently processing.
This is usually instant but can, on occasion, take up to 10 minutes to complete.
The eSIM can still be installed and will register on a network while the bundle is processing.
- **Queued:**
The bundle has been successfully assigned, has not been used yet, and is queued for use.
- **Active:**
The bundle has successfully been used.
It has data remaining and is within the bundle duration.
- **Depleted:**
The bundle has no data remaining but is still within the bundle duration.
- **Expired:**
The bundle has expired, and the bundle duration has been exceeded.
- **Revoked:**
The bundle has been revoked, and is no longer on the esim.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: includeUsed
in: query
schema:
type: string
description: |
Include used & expired Bundles
Backward compatibility for v2.1
example: <boolean>
- name: limit
in: query
schema:
type: string
description: >
Number of assignments to return. Must be between 1 and 200. Default
is 15
example: <integer>
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
bundles:
- name: <string>
assignments:
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
- name: <string>
assignments:
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
- id: <string>
callTypeGroup: <string>
initialQuantity: <integer>
remainingQuantity: <integer>
startTime: <dateTime>
endTime: <dateTime>
bundleState: <string>
assignmentDateTime: <dateTime>
assignmentReference: <string>
unlimited: <boolean>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
post:
tags:
- eSIMs (Deprecated)
summary: Apply a Bundle to an eSIM (Deprecated)
requestBody:
content:
application/json:
schema:
type: object
example:
name: <string>
startTime: <string>
repeat: <integer>
security:
- apikeyAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
status: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}/location:
get:
tags:
- eSIMs
summary: Get eSIM Location
description: Returns the last known location and operator for a given eSIM.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: path
schema:
type: string
required: true
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
mobileNetworkCode: <string>
networkName: <string>
country: <string>
lastSeen: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims/{iccid}:
get:
tags:
- eSIMs
summary: Get eSIM details
description: |
Receive eSIM details for an ICCID
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: additionalFields
in: query
schema:
type: string
example: appleInstallUrl
- name: iccid
in: path
schema:
type: string
required: true
description: (Required) The ICCID of the eSIM
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
iccid: <string>
matchingId: <string>
smdpAddress: <string>
profileStatus: Released
pin: <string>
puk: <string>
firstInstalledDateTime: <dateTime>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/esims:
get:
tags:
- eSIMs
summary: List eSIMs
description: |
Returns all eSIMs currently assigned to your organisation.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: page
in: query
schema:
type: string
description: Page of ESIMs to return
example: <string>
- name: perPage
in: query
schema:
type: integer
description: Number of ESIMs to return per page
example: '50'
- name: direction
in: query
schema:
type: string
description: Direction of ordering
example: asc
- name: orderBy
in: query
schema:
type: string
description: Name of column to order by
example: iccid
- name: filterBy
in: query
schema:
type: string
description: >-
Name of column to filter by. eSIMs can be filtered by ICCID,
Customer Reference, Last Action (Bundle Refund, Bundle Applied,
Bundle Revoked, eSIM Updated, eSIM Refreshed, eSIM Utilisation
Alert), Last Action Date and SIM Assignment Date.
example: iccid, customerRef, lastAction, actionDate, assignedDate
- name: filter
in: query
schema:
type: string
description: Value to filter by
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
esims:
- iccid: <string>
customerRef: <string>
lastAction: <string>
actionDate: <string>
physical: <boolean>
assignedDate: <string>
- iccid: <string>
customerRef: <string>
lastAction: <string>
actionDate: <string>
physical: <boolean>
assignedDate: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
put:
tags:
- eSIMs
summary: Update eSIM Details
description: |
Update sim details
requestBody:
content:
application/json:
schema:
type: object
example:
iccid: <string>
customerRef: <string>
security:
- apikeyAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: iccid
in: query
schema:
type: string
description: (Required) ICCID of eSIM
example: <string>
- name: customerRef
in: query
schema:
type: string
description: (Required) New Customer Reference
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/organisation/balance:
post:
tags:
- Organisation
summary: Topup Organisation Balance
description: >
Update the pre-payed balance held by your organisation.
Initial payment is done using the Portal: https://portal.esim-go.com/.
This will store your card details for future use.
Follow up payments can be done using the API.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: amount
in: query
schema:
type: string
description: (Required) The amount of to be charged to the saved card
example: <integer>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
amount: <integer>
balance: <integer>
ref: <integer>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'503':
description: Service Unavailable
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/organisation/groups:
get:
tags:
- Organisation
summary: Get Bundle Groups
description: >
Bundles are grouped into categories. This returns a list of the groups
of Bundles available for your Organisation to order.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
- name: <string>
- name: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/organisation:
get:
tags:
- Organisation
summary: Get Current Organisation Details
description: Get details of your Organisation including all users
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
organisations:
- name: <string>
apiKey: <string>
taxLiable: <string>
addr1: <string>
addr2: <string>
city: <string>
country: <string>
postcode: <string>
callbackUrl: <string>
notes: <string>
groups:
- <string>
- <string>
currency: <string>
balance: <integer>
testCredit: <integer>
testCreditExpiry: <string>
businessType: <string>
website: <string>
productDescription: <string>
users:
- firstName: <string>
lastName: <string>
role: <string>
emailAddress: <string>
phoneNumber: <string>
timeZone: <string>
- firstName: <string>
lastName: <string>
role: <string>
emailAddress: <string>
phoneNumber: <string>
timeZone: <string>
- name: <string>
apiKey: <string>
taxLiable: <string>
addr1: <string>
addr2: <string>
city: <string>
country: <string>
postcode: <string>
callbackUrl: <string>
notes: <string>
groups:
- <string>
- <string>
currency: <string>
balance: <integer>
testCredit: <integer>
testCreditExpiry: <string>
businessType: <string>
website: <string>
productDescription: <string>
users:
- firstName: <string>
lastName: <string>
role: <string>
emailAddress: <string>
phoneNumber: <string>
timeZone: <string>
- firstName: <string>
lastName: <string>
role: <string>
emailAddress: <string>
phoneNumber: <string>
timeZone: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/orders/{orderReference}:
get:
tags:
- Orders
summary: Get order detail
description: |
Get details on an order, including total cost and contents
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: orderReference
in: path
schema:
type: string
required: true
description: (Required) Reference for your order
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
order:
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
total: <integer>
currency: <string>
status: <string>
statusMessage: <string>
orderReference: <string>
createDate: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/orders:
get:
tags:
- Orders
summary: List orders
description: >
Get details on all previous orders, including total cost and contents.
Response data is paginated.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: includeIccids
in: query
schema:
type: boolean
description: >
Set to true to include eSIM data (ICCID, Matching ID and SMDP
Address) in the response, and an ICCIDs array.
Note: From v2.3.0 onwards, this data will be included by default.
example: 'true'
- name: page
in: query
schema:
type: integer
description: |
Page number to return.
example: '1'
- name: limit
in: query
schema:
type: integer
description: |
Number of results to return per page.
example: '10'
- name: createdAt
in: query
schema:
type: string
description: >
Specifies the date range for filtering orders. This parameter has a
'lte:' prefix to specify the end date.
For example, to query orders from March 1, 2024, to March 31, 2024,
use the following format:
`createdAt=gte:2024-03-01T00:00:00.000Z&createdAt=lte:2024-03-31T23:59:59.999Z`.
example: <dateTime>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
- order:
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
invoiceLink: <string>
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
invoiceLink: <string>
total: <integer>
currency: <string>
status: <string>
statusMessage: <string>
orderReference: <string>
createDate: <string>
- order:
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
invoiceLink: <string>
- type: <string>
item: <string>
quantity: <integer>
subTotal: <integer>
pricePerUnit: <integer>
invoiceLink: <string>
total: <integer>
currency: <string>
status: <string>
statusMessage: <string>
orderReference: <string>
createDate: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
post:
tags:
- Orders
summary: Create orders
description: >
Orders can be validated and processed using this endpoint.
Total will be deducted from your Organisation's balance.
**Auto-assign**
By specifying ICCID(s) of eSIM(s) belonging to your Organisation and
setting 'assign' to true, a bundle can be automatically assigned to
eSIM(s)
Bundle assignments to an eSIM are usually instant but please allow for
up to 10 minutes for the bundle to fully process. While the bundle is
processing the eSIM can be successfully installed and the eSIM will
register onto a network if within coverage.
The Bundle Status can be checked through [Get the Status of a bundle
assigned to an
eSIM](https://docs.esim-go.com/api/#get-/esims/-iccid-/bundles/-name-)
**Usage:**
* eSIM ICCIDs can only be specifed if assign is set to true
* If assign is set to true, but no ICCIDs are provided, bundles are
assigned to new eSIMs
* If ICCIDs are provided, quantity is required to match the number of
ICCIDs for each bundle
* If quantity is specified and assign is set to false, the quantity of
that bundle is purchased into inventory
**Note:** In some cases, it may take up to 5 minutes for your eSIM
bundles to be delivered
requestBody:
content:
application/json:
schema:
type: object
example:
type: validate
assign: <boolean>
Order:
- type: bundle
quantity: <integer>
item: <string>
iccids:
- <string>
- <string>
allowReassign: <boolean>
- type: bundle
quantity: <integer>
item: <string>
iccids:
- <string>
- <string>
allowReassign: <boolean>
security:
- apikeyAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
example: ''
'400':
description: Bad Request
content:
text/plain:
schema:
type: string
example: ''
'401':
description: Unauthorized
content:
text/plain:
schema:
type: string
example: ''
'503':
description: Service Unavailable
content:
text/plain:
schema:
type: string
example: ''
/inventory/refund:
post:
tags:
- Inventory
summary: Refund bundle from inventory
description: >
Refunds an item in the inventory to the organisations balance.
Takes a usageId and a quantity. The usageId's can be found by querying
the /inventory endpoint
The quantity of a refund cannot exceed the remaining quantity left for
the specific usageId. If you wish to refund multiple usageId's, multiple
calls to this endpoint will need to be done.
If a bundle assignment has not been started and no data has been
consumed, the bundle can be refunded as a credit back to the
organisations balance.
If the bundle assignment has started, or was purchased outside of their
permitted refund period, typically 60 days, it cannot be refunded.
requestBody:
content:
application/json:
schema:
type: object
example:
usageId: <integer>
quantity: <integer>
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/inventory:
get:
tags:
- Inventory
summary: Get bundle inventory
description: >
All of your Organisation's currently purchased Bundles and their
remaining usages.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
bundles:
- name: <string>
desc: <string>
available:
- id: <integer>
total: <integer>
remaining: <integer>
expiry: <string>
- id: <integer>
total: <integer>
remaining: <integer>
expiry: <string>
countries:
- <string>
- <string>
data: <integer>
duration: <integer>
durationUnit: <string>
autostart: <boolean>
unlimited: <boolean>
speed:
- <string>
- <string>
- name: <string>
desc: <string>
available:
- id: <integer>
total: <integer>
remaining: <integer>
expiry: <string>
- id: <integer>
total: <integer>
remaining: <integer>
expiry: <string>
countries:
- <string>
- <string>
data: <integer>
duration: <integer>
durationUnit: <string>
autostart: <boolean>
unlimited: <boolean>
speed:
- <string>
- <string>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/catalogue/bundle/{name}:
get:
tags:
- Catalogue
summary: Get Bundle details from catalogue
description: Get details of a specific Bundle from your Organisation's catalogue
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: name
in: path
schema:
type: string
required: true
description: (Required) Name of Bundle Group to get countries for
example: <string>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
name: <string>
description: <string>
countries:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
dataAmount: <integer>
duration: <integer>
speed:
- <string>
- <string>
autostart: <boolean>
unlimited: <boolean>
roamingEnabled:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
price: <integer>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/catalogue:
get:
tags:
- Catalogue
summary: Get Bundle catalogue
description: |
List all Bundles available to your Organisation for ordering.
Bundle names can be used with the `/orders` endpoint to place an order.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: page
in: query
schema:
type: string
description: Page of Bundles to return
example: <string>
- name: perPage
in: query
schema:
type: integer
description: Number of Bundles to return per page
example: '50'
- name: direction
in: query
schema:
type: string
description: Direction of ordering
example: asc
- name: orderBy
in: query
schema:
type: string
description: Name of column to order by
example: duration
- name: description
in: query
schema:
type: string
description: Wildcard search for description
example: <string>
- name: group
in: query
schema:
type: string
description: Filter by Bundle Group (exact value) e.g. `Standard eSIM Bundles`
example: <string>
- name: countries
in: query
schema:
type: string
description: >-
Comma-separated list of country ISO codes to filter by. This will
search for Bundles that include at least one of the countries as
their base country. e.g. `GB, US`
example: <string>
- name: region
in: query
schema:
type: string
description: >-
This will return Bundles that have a base country in the specified
region. e.g. `Europe`
example: Antarctica
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
- name: <string>
description: <string>
groups:
- <string>
- <string>
countries:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
dataAmount: <integer>
duration: <integer>
speed:
- <string>
- <string>
autostart: <boolean>
unlimited: <boolean>
roamingEnabled:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
price: <integer>
- name: <string>
description: <string>
groups:
- <string>
- <string>
countries:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
dataAmount: <integer>
duration: <integer>
speed:
- <string>
- <string>
autostart: <boolean>
unlimited: <boolean>
roamingEnabled:
- name: <string>
region: <string>
iso: <string>
- name: <string>
region: <string>
iso: <string>
price: <integer>
'400':
description: Bad Request
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'403':
description: Forbidden
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
message: <string>
/networks:
get:
tags:
- Networks
summary: Get Country Network Data
description: >
This endpoint is used to return the networks for a country/countries
searched for either by an array of countires or ISO codes (ISOs).
Alternatively, it can be toggled to return all countries and their
networks.
Please refer to the rate sheet, availible to download in the eSIM Go
Management Portal for a full list of country names and ISO codes.
security:
- apikeyAuth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: countries
in: query
schema:
type: string
description: List of Countries e.g. United Kingdom,United States
example: <string>
- name: isos
in: query
schema:
type: string
description: List of ISOs e.g. GB,US
example: <string>
- name: returnAll
in: query
schema:
type: string
description: Used to toggle returning of all Countries e.g. true/false
example: <boolean>
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example: null
'400':
description: Bad Request
content:
text/plain:
schema:
type: string
example: ''
'401':
description: Unauthorized
content:
text/plain:
schema:
type: string
example: ''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment