Docs
API Overview
API Overview
Platform Vendor API - Deliver eSIM data packages via HTTP API
Vendor API
Deliver eSIM data plan packages via the Platform HTTP API. The API contract is 1:1 compatible with eSIM Provider API.
Quick Start
- Create a vendor account at Platform
- Top up your wallet for testing and ordering
- Copy your Access Code and Secret Key from the dashboard
- Make your first API call:
curl --location --request POST 'https://your-api-domain.com/api/v1/open/balance/query' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--data ''curl -Uri "https://your-api-domain.com/api/v1/open/balance/query" `
-Method POST `
-Headers @{"RT-AccessCode"="YOUR_ACCESS_CODE"; "RT-SecretKey"="YOUR_SECRET_KEY"} `
-Body ""Base URL
Production: https://your-api-domain.com
Image Assets: https://static.redteago.com/
Authentication
All API requests require authentication via the RT-AccessCode and RT-SecretKey headers.
| Header | Required | Description |
|---|---|---|
RT-AccessCode | Yes | Your vendor access code from dashboard |
RT-SecretKey | Yes | Your vendor secret key from dashboard |
RT-RequestID | No | Unique request ID for idempotency |
RT-Timestamp | No | Unix timestamp in milliseconds |
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY'Both RT-AccessCode and RT-SecretKey are required for all API requests. Keep your secret key confidential and never expose it in client-side code.
Standards
- Time codes: UTC timezone
- Country codes: Alpha-2 ISO (e.g.,
US,JP,TH) - Data values: Bytes (e.g., 1GB = 1073741824 bytes)
- Currency: USD, price values * 10,000 (e.g., $1.00 = 10000)
Rate Limit
8 API requests per second are allowed per vendor account.
Error Codes
General Errors
| Code | Message |
|---|---|
000001 | Server error |
000101 | Request header (mandatory) is null |
000102 | Wrong request header format |
000103 | This HTTPS request method (GET/POST) is not supported |
000104 | Request in invalid JSON format |
000105 | Request parameters (mandatory) are not contained |
000106 | Request parameter (mandatory) is null |
000107 | The length of the request parameter does not meet the requirement |
Authentication Errors
| Code | Message |
|---|---|
101001 | The timestamp of the request has expired |
101002 | This IP is in the blocklist |
101003 | Request signature mismatch |
Order Errors
| Code | Message |
|---|---|
200002 | This operation is not allowed due to the order status |
200005 | Package price error. Check price |
200006 | Total order price amount is wrong. Check prices |
200007 | Insufficient account balance |
200008 | Order parameters error, please contact customer service |
200009 | Abnormal order status |
200010 | Profile is being downloaded for the order |
200011 | Insufficient available Profiles for the package |
Resource Errors
| Code | Message |
|---|---|
310201 | The bundle.code does not exist |
310211 | The data_plan_location.id does not exist |
310221 | The currencyId does not exist |
310231 | The carrierId does not exist |
310241 | The packageCode does not exist |
310243 | The package does not exist |
310251 | The vendor does not exist |
310272 | The orderNo does not exist |
310403 | The ICCID does not exist in the order |
System Errors
| Code | Message |
|---|---|
900001 | The system is busy, please try again later |
API Endpoints
| Category | Endpoint | Description |
|---|---|---|
| Packages | POST /package/list | Get available data packages |
| Orders | POST /esim/order | Order eSIM profiles |
| Query | POST /esim/query | Query allocated profiles |
| Profile Management | Various | Cancel, Suspend, Unsuspend, Revoke |
| Balance | POST /balance/query | Check wallet balance |
| Top Up | POST /esim/topup | Add data to existing eSIM |
| Webhooks | POST /webhook/save | Configure webhook notifications |
| SMS | POST /esim/sendSms | Send SMS to eSIM |
| Usage | POST /esim/usage/query | Check data usage |
| Regions | POST /location/list | Get supported regions |