Overview
SimJuno is an eSIM platform for browsing, purchasing, provisioning, and managing eSIM plans.
Use this documentation to integrate with the SimJuno API, understand available endpoints, and test requests against the generated API reference. For typed API access with built-in authentication and retries, use the TypeScript, Python, or PHP SDK. You can also set up signed webhooks for eSIM lifecycle and usage events.
API base URL
Rate limit
Each API key is limited to 8 requests per 1-second window. Requests above this rate limit return 429 Too Many Requests; throttle requests and retry with backoff.
SimJuno integration flow
- API — Create an API key and send it with every request. Call
GET /reseller/balanceto verify access and retrieve your reseller wallet balance. - API — Call
GET /esim/destinationto retrieve the supported countries, regions, and global destinations. - UI — Ask the customer to select a destination.
- API — Call
GET /esim/destination/{slug}to list the available plans for that destination. - UI — Ask the customer to select a plan. Display the plan’s data allowance, validity, network coverage, and your retail total.
- API — Before placing the order, call
GET /esim/package/{slug}to confirm the plan’s current details and price. - API — Call
POST /esim/orderwith anorderListof packageslugandcountpairs plus a unique resellertransaction_id. An order can contain up to 100 eSIMs across all items. To safely retry it, reuse the sametransaction_idandorderList. Store the returnedesim_ids. - Webhook/API — Wait for an
ORDER_STATUSwebhook, then callGET /esim/{id}for each returned eSIM ID to retrieve its provisioning details (qrCodeUrl,shortUrl, orac). If you do not configure webhooks, poll this endpoint until those details are available. - UI — Show the provisioning details to the customer and ask them to install and activate the eSIM on a compatible device.
- API — Call
GET /esim/{id}/usageto display current data usage. CallGET /esimto list all eSIMs ordered through your reseller account. - API — To add more data to an active eSIM, call
GET /esim/package/{slug}/topupto list the top-up packages available for its plan, then callPOST /esim/{id}/topupwith the chosen packageslugand a unique resellertransaction_id. The cost is debited from your reseller wallet. To safely retry, reuse the sametransaction_idwith the same eSIM andslug. - API — If necessary, call
POST /esim/{id}/cancel. An eSIM can only be cancelled if it has not been activated yet. Any eligible refund is returned to your reseller wallet.