eSIM Exchange Business Integration API Specification v1.2
Basic Explanation
To ensure the security of server transmission information, the following security mechanisms are adopted:
- All interfaces use
HTTPS secure
links. - Officially assigned customer authentication AuthKey, used for authorization and encryption, with a maximum length of 32.
- Officially assigned encryption key AuthSecret, used for encryption, with a maximum length of 50.
- Ensures the security of requests through SHA-256.
Interface Standards
Base Path:
https://api.iroamly.shop/
Request Protocol:
HTTPS
Request Method:
GET / POST
Data Transfer Format:
application/json
Request Header Parameters:
AuthKey: Customer authentication key, type String
Certification: Encrypted string, type String (Result of SHA-256 encryption of accumulated AuthKey+AuthSecret)
Get Regional Plan List
Request URL:
https://api.iroamly.shop/common/getPlanItem
Request Method:
GET
Request Parameters:
Parameter | Description | Type |
---|---|---|
region | Accepts ISO2 codes, country names (case-insensitive), or standardized formats (e.g., united-states). | String |
Response Format:
Success: HTTP 200 with a JSON array of plans.Failure: HTTP 404 (if region is invalid) or an empty array
[]
.Response Field Descriptions:
Field | Type | Description |
---|---|---|
plan | Plan name (includes region, type, data allowance, and duration). | String |
productCode | Unique plan ID for purchasing or queries. | String |
data | Data allowance (e.g., 10GB、Unlimited、500MB). | String |
type | Plan type (e.g., Total、Daily、Unlimited). | String |
package_type | Package type (e.g., Data Only). | String |
duration | Validity period in days (e.g., 10). | String |
speed | Network speed (e.g., 4G / 5G). | String |
operator | Supported operators (e.g., T-Mobile/AT&T). | String |
region | Official region name (e.g., United States). | String |
region_index | Standardized region identifier (lowercase with hyphens, e.g., united-states). | String |
credit | Plan price (currency unit not specified; default likely USD). | Float |
remark | Additional notes (e.g., speed throttling rules). | String |
created_at | Plan creation timestamp (ISO 8601 format). | String |
Request Example
"https://api.iroamly.shop/common/getPlanItem?region=US"
Example Return
{
"code": 0,
"data": {
list:[
{
"plan": "United States-eSIM-10GB-10 Days-Total",
"productCode": "iRoamly-unite-584535",
"data": "10GB",
"type": "Total",
"package_type": "Data Only",
"duration": "10",
"speed": "4G / 5G",
"operator": "T-Mobile/AT&T",
"region": "United States",
"region_index": "united-states",
"credit": 6.43,
"remark": "After accumulating 10GB, the speed will be reduced to 128 Kbps",
"created_at": "2025-05-16T04:02:31Z"
}
]
}
}
Purchase Redeem Code
Request URL:
https://api.iroamly.shop/openapi/purchaseCode
Request Method:
POST
Request Parameters:
Parameter | Description | Type |
---|---|---|
String | ||
productList | Product collection | Object[] |
productList Fields:
Field | Description | Type |
---|---|---|
plan | Plan Name | String |
quantity | Quantity | Int |
Test Plan:iRoamly-Test-10GB
Example Parameters
{
"email": "2m827n32d@gmail.com",
"productList": [
{
"plan": "United States-eSIM-10GB-10 Days-Total",
"quantity": 2
},
{
"plan": "Albania-10GB-15 Days-Total",
"quantity": 1
}
]
}
Example Return
{
"code": 1,
"msg": "success",
"orderId": "xxx-xxxx-sd9hn8df333" // Order number, can be used to query redeem code
}
Query Redeem Code
Request URL:
https://api.iroamly.shop/openapi/codeQuery
Request Parameters:
Parameter | Description | Type |
---|---|---|
orderId | Order number | String |
Example Parameters
{
"orderId": "xxx-xxx-dh239jdu28",
}
Example Return
{
"code": 1,
"msg": "success",
"data": [
{
"productCode": "m8hed7h2fed",
"redeemCode": "3cd2m3f23f3f3",
"expire_at": "2024-06-30", // Expiry date
"plan": "United States-eSIM-10GB-10 Days-Total",
"status": 0
},
{
"productCode": "v2jf28dj2w",
"redeemCode": "d923j29ef2323",
"expire_at": "2024-06-30",
"plan": "Albania-10GB-15 Days-Total",
"status": 2
}
]
}
Redeem QR Code
(Note: Will be sent to the specified email, the more you redeem, the longer the waiting time)
Request URL:
https://api.iroamly.shop/openapi/redeemQRcode
Request Parameters:
Parameter | Description | Type |
---|---|---|
String | ||
codeList | Collection of redeem codes | Object[] |
productList Fields:
Field | Description | Type |
---|---|---|
redeemCode | Redeem code | String |
Example Parameters
{
"email": "2m827n32d@gmail.com",
"codeList": [
{
"redeemCode": "m8hed7h2fed",
},
{
"redeemCode": "cn88beg9edj",
}
]
}
Example Return
{
"code": 1,
"msg": "success",
}
Query QR Code
Request URL:
https://api.iroamly.shop/openapi/qrcodeQuery
Request Parameters:
Parameter | Description | Type |
---|---|---|
code | Redeem code | String |
Example Parameters
{
"redeemCode": "m8hed7h2fed",
}
Example Return
{
"code": 1,
"msg": "success",
"redeemCode": "m8hed7h2fed",
"qrcode": "https://dsfjigewafe/qrcode.jpg"
}
Response Status Code Definitions
Code | Description |
---|---|
1 | Success |
2 | Request parameter authentication failed |
3 | Parameters not filled as required |
4 | Product code does not exist |
5 | Insufficient balance |
6 | Insufficient balance |
7 | Redeem code has been redeemed or does not exist |
-1 | Request failed |
Redeem Code Status Definitions
Status | Description |
---|---|
0 | Not redeemed |
1 | Redeeming |
2 | Redeemed |
3 | Redemption failed |