The ResellPortal eSIM API lets you sell travel eSIM data plans from your own app, website or store. Search 3,000+ plans across 200+ countries with one call, issue an eSIM with a second, and get the QR code and ICCID back straight away. There is no monthly fee: you pay a wholesale price per eSIM from your wallet.
BASE=https://panel.resellportal.com/wp-json/resellportal/v1
# 1. Find UK plans
curl "$BASE/esim-packages?location=GB" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret"
# 2. Issue the eSIM
curl -X POST "$BASE/orders" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret" \
-H "Content-Type: application/json" \
-d '{"client_id": 123,
"product_key": "esim",
"package_code": "CKH104"}'const BASE = "https://panel.resellportal.com/wp-json/resellportal/v1";
const headers = {
"X-API-Key": "your_api_key",
"X-API-Secret": "your_api_secret",
"Content-Type": "application/json",
};
const api = (path, body) => fetch(BASE + path, {
method: body ? "POST" : "GET",
headers,
body: body && JSON.stringify(body),
}).then((r) => r.json());
// 1. Find UK plans
const plans = await api("/esim-packages?location=GB");
// 2. Issue the eSIM
const order = await api("/orders", {
client_id: 123,
product_key: "esim",
package_code: "CKH104",
});import requests
BASE = "https://panel.resellportal.com/wp-json/resellportal/v1"
HEADERS = {
"X-API-Key": "your_api_key",
"X-API-Secret": "your_api_secret",
}
# 1. Find UK plans
plans = requests.get(
f"{BASE}/esim-packages",
params={"location": "GB"},
headers=HEADERS,
).json()
# 2. Issue the eSIM
order = requests.post(f"{BASE}/orders", headers=HEADERS, json={
"client_id": 123,
"product_key": "esim",
"package_code": "CKH104",
}).json()Call GET /esim-packages with a country code (GB, US, ES...) or leave it empty for every plan. Each plan has a code, data allowance, validity and wholesale price.
Call POST /orders with product_key "esim" and the package_code. The wholesale price is taken from your wallet and the eSIM is created instantly.
The response includes the QR code, activation link and ICCID. Your customer also gets an email with the QR code under your brand, not ours.
Base URL https://panel.resellportal.com/wp-json/resellportal/v1. Authenticate every request with your X-API-Key and X-API-Secret headers.
/esim-packages?location=GBList eSIM plans for a country, region or the whole catalog, with current wholesale prices.
/clientsCreate the customer the eSIM belongs to (or reuse an existing client_id).
/ordersIssue an eSIM: product_key "esim" plus a package_code. Returns the QR code, activation link and ICCID.
/servicesList the eSIMs and other services you have issued, with their status.
A successful order returns everything you need to deliver it in your own interface.
{
"success": true,
"service_id": 789,
"message": "E-SIM activated successfully",
"package": {
"code": "CKH104",
"name": "United Kingdom 3GB 30Days",
"data_volume": "3 GB",
"duration": "30 day",
"location": "GB"
},
"esim_details": {
"qr_code_url": "https://...",
"activation_url": "https://...",
"iccid": "8901234567890123456",
"esim_status": "AVAILABLE"
}
}Customer emails, the eSIM details page and support all carry your store name. ResellPortal never appears.
Send "test_mode": true (or the X-RP-Test-Mode: 1 header) to build and test your integration without charging your wallet.
Single-country plans plus Europe, North America, Asia and global bundles, all from one endpoint.
Everything your customer needs to install the eSIM comes back in the same response.
Connect Claude, ChatGPT or Cursor to the ResellPortal MCP server to look up plans and place orders by chat.
Every account also gets a white-label storefront, so you can sell eSIMs without building anything.
An eSIM API lets your software search eSIM data plans and issue eSIMs automatically, instead of buying them one by one in a dashboard. With the ResellPortal eSIM API you list plans with GET /esim-packages and issue one with POST /orders, which returns the QR code and ICCID your customer needs.
There is no setup or monthly fee. Each eSIM you issue is charged at its wholesale price from your prepaid wallet, and you set your own selling price. Live prices for every plan come back from GET /esim-packages and are shown in your panel.
More than 200 countries and regions, with over 3,000 plans. There are single-country plans plus regional bundles such as Europe and North America, and global plans covering 130+ countries.
The API response includes the QR code URL, an activation link and the ICCID, so you can show them in your own app. Your customer is also emailed the QR code and installation steps under your brand.
The QR code can be installed before travelling. The validity period starts when the eSIM first connects to a network at the destination, not when it is bought.
Yes. Add "test_mode": true to the request body, or send the header X-RP-Test-Mode: 1. Test requests are validated but nothing is charged and no real eSIM is issued.
No. Every plan has a fixed data allowance (from 100 MB up to 100 GB) and a fixed validity, from 1 day up to 365 days.
Create a free ResellPortal account and copy your API key and secret from the API section of the panel. No minimum balance. A live order only needs enough in your wallet to cover it.
Free account, free test mode, no monthly fee. Get your API keys and issue your first eSIM in minutes.
Prefer no code? See the eSIM reseller program.
More APIs: Domain Registration API · VPN API · SMM Panel API · Business Phone Number API · Web Hosting API