Overview

View as Markdown

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

https://api.simjuno.com/v1

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

  1. API — Create an API key and send it with every request. Call GET /reseller/balance to verify access and retrieve your reseller wallet balance.
  2. API — Call GET /esim/destination to retrieve the supported countries, regions, and global destinations.
  3. UI — Ask the customer to select a destination.
  4. API — Call GET /esim/destination/{slug} to list the available plans for that destination.
  5. UI — Ask the customer to select a plan. Display the plan’s data allowance, validity, network coverage, and your retail total.
  6. API — Before placing the order, call GET /esim/package/{slug} to confirm the plan’s current details and price.
  7. API — Call POST /esim/order with an orderList of package slug and count pairs plus a unique reseller transaction_id. An order can contain up to 100 eSIMs across all items. To safely retry it, reuse the same transaction_id and orderList. Store the returned esim_ids.
  8. Webhook/API — Wait for an ORDER_STATUS webhook, then call GET /esim/{id} for each returned eSIM ID to retrieve its provisioning details (qrCodeUrl, shortUrl, or ac). If you do not configure webhooks, poll this endpoint until those details are available.
  9. UI — Show the provisioning details to the customer and ask them to install and activate the eSIM on a compatible device.
  10. API — Call GET /esim/{id}/usage to display current data usage. Call GET /esim to list all eSIMs ordered through your reseller account.
  11. API — To add more data to an active eSIM, call GET /esim/package/{slug}/topup to list the top-up packages available for its plan, then call POST /esim/{id}/topup with the chosen package slug and a unique reseller transaction_id. The cost is debited from your reseller wallet. To safely retry, reuse the same transaction_id with the same eSIM and slug.
  12. 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.