Skip to content
STRONGESIMLoading…
REST API · v1.0.0

StrongeSIM API documentation

Everything you need to sell eSIMs at scale, without reinventing the connectivity wheel. Auth, the live plan catalogue, orders, eSIM profiles, payments, webhooks, and the full reseller toolkit. You bring the app, we bring the signal.

Base URL

https://api.strongesim.com/api/v1

All paths below are relative to this base.

Authentication

  • Authorization: Bearer {access_token}
  • X-Session-ID: {session_id}

JWT bearer token + session id on every authenticated call.

Rate limits

  • Login / Registration5 attempts per IP per 15 minutes
  • Password reset3 attempts per email per hour
  • All other endpoints1000 requests per user per hour

Response format

Every response is JSON with a success boolean and a message. Successful reads return a data object; errors return success: false with an HTTP 4xx/5xx status.

Getting started

Register a reseller account, log in to receive a JWT access token and session id, then send both on every request. 99 endpoints are available across 14 sections.

bash
# 1 — Get an access token
curl -X POST https://api.strongesim.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"••••••","role":"reseller"}'

# 2 — Call any endpoint with the token
curl https://api.strongesim.com/api/v1/plans \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "X-Session-ID: SESSION_ID"

Auth

12 endpoints

Account creation, login, email/OTP verification, JWT access + refresh tokens, password reset, and session management. Start here to obtain the bearer token every other endpoint needs.

Register a new user account. Available roles: `mobile_user`, `reseller`,

Authenticate a user and receive access + refresh tokens. Creates a login

Verify a user's email address using the token sent during registration.

Verify a `mobile_user` email address using the 6-digit OTP sent at registration.

Resend a verification email to an unverified user

Refresh an expired access token using a valid refresh token. Handled by the

Logout the current user. Can revoke a specific session or all active

Request a password reset link via email. The link is valid for 1 hour

Browser-facing endpoint. Validates the reset token and serves an HTML form for

Reset the user's password using a valid reset token. All existing sessions are

Get all active (non-expired, non-revoked) sessions for the currently

Revoke a specific active session for the currently authenticated user. Cannot

Users

3 endpoints

Read and update the authenticated account profile, and change the account password.

Get the currently authenticated user's profile, including role-specific

Update the authenticated user's profile. At least one of `name` or

Change the authenticated user's password. All active sessions are revoked and

Credits

2 endpoints

Check your prepaid (or postpaid) credit balance and review the credit transaction ledger. Reseller-scoped.

Get the current credit balance or postpaid credit usage for the authenticated

Get credit transactions for the authenticated reseller with filtering and

Payment

7 endpoints

Top up credits via PayPal or Stripe: create and capture orders, handle redirects and webhooks, and read the credit balance.

Create a PayPal order in preparation for checkout. Returns a PayPal order ID

Capture an approved PayPal payment and credit the captured amount to the

PayPal redirect handler. Called by PayPal after the user approves a payment on

Receive and process PayPal webhook event notifications. Performs HMAC

Get the authenticated user's current credit account balance and the 5 most

Create a Stripe PaymentIntent and return its `clientSecret` so the client SDK

Verify a Stripe PaymentIntent succeeded (re-fetched directly from Stripe —

Plans

13 endpoints

Browse the live plan catalogue, countries, coverage stats, and incremental change feeds. V1 and V2 catalogues.

List all active eSIM plans with optional filtering, search, and pagination.

Get all unique countries that have at least one active plan, with the minimum

Trigger a manual sync of plans from a specific provider

Get the timestamp when any active plan was last modified, plus the total count

Get plans that were added, updated, or deactivated since a given timestamp.

Get a single active or inactive eSIM plan by its primary key. Applies the same

Get aggregated coverage statistics: total unique countries and regions with

List all active V2 eSIM plans with optional filtering, search, and pagination.

Get all unique countries that have at least one active V2 plan, with the

Get the timestamp when any active V2 plan was last modified, plus the total

Get V2 plans that were added, updated, or deactivated since a given

Get a single active V2 eSIM plan by its primary key. Includes the associated

Get aggregated global statistics across all active V2 plans in a single query:

Plan Comparison

3 endpoints

Find the cheapest matching plan and compare a plan against equivalent plans across providers.

Find the cheapest available plan matching exact criteria (country, data size,

Compare a specific plan against equivalent plans from all providers. Finds

Health check for the plan comparison feature. Returns current feature flag

Orders

16 endpoints

Create eSIM orders, list and inspect them, cancel with credit refund, pull live usage, and top up activated eSIMs. V1 and the newer synchronous V2 flow are both documented.

Fetch the current usage data for a specific order from the eSIM Access

Force-refresh usage data for a specific order by fetching the latest data

Get combined usage data for a specific order — merges stored `OrderUsage`

Fetch usage data for multiple orders in a single request. Results are silently

Get aggregated usage statistics across all active orders for a user. Scoped to

Create a new eSIM order. Validates credit availability first, creates the eSIM

List all orders for the authenticated user with pagination and optional

Get the full status and eSIM profiles for a specific order. The `order_id`

Cancel an order. Calls the eSIM provider's cancel API, processes a credit

Get available top-up data plans for an activated eSIM. Fetches live from the

Top up an existing eSIM with additional data. Accepts either a `topupId` token

Get all top-up orders associated with a specific original order, with a

Create a new V2 eSIM order. Credits are deducted immediately and synchronously.

List V2 orders for the authenticated user with pagination and optional status

Get a specific V2 order by ID. Supports lookup by multiple identifier types

Cancel a V2 order and refund credits to the reseller's account. Unlike V1,

Profiles

8 endpoints

Operate directly on an eSIM profile by ICCID / transaction number: usage, suspend, unsuspend, revoke, top up, and send SMS.

Look up eSIM profile data from the provider by ICCID, eSIM transaction number,

Check live usage data for a specific eSIM profile from the provider.

Suspend an eSIM profile via the provider API and update the linked order

Unsuspend a previously suspended eSIM profile and update the linked order

Permanently revoke an eSIM profile and update the linked order status to

Add data to an existing eSIM profile. Creates a linked topup `Order` record,

Send an SMS message to an eSIM profile via the provider API

Fetch available topup plans for a specific eSIM from the provider. Applies

Notifications

3 endpoints

Per-order customer notification history, manual resends, and a reseller-wide notification feed.

Get the full notification history for a specific order, sorted newest first

Manually resend a customer notification email for a specific order. Creates a

Get all customer notifications for the authenticated reseller's orders, with

Notification Preferences

3 endpoints

Read, update, and reset the per-account notification and order-email preferences.

Get the authenticated user's notification preferences. For resellers, also

Update the authenticated user's notification preferences and/or order email

Reset the authenticated user's notification preferences to defaults (all

Emails

2 endpoints

Queue branded broadcast emails to a source group of users, with a single-recipient test send.

Queue a broadcast email to be sent to all users in the specified source group.

Queue a test send of the broadcast email to a single address. Identical to

Reseller

19 endpoints

The reseller toolkit: profiles, custom pricing, logo + SMTP branding, onboarding status, your end-users, their orders, and an aggregated dashboard.

Get all reseller profiles for the authenticated reseller, sorted with the

Create a new reseller profile. All fields are optional — defaults are inferred

Get a specific reseller profile by ID. Profile must belong to the

Update an existing reseller profile. Profile must belong to the authenticated

Delete a reseller profile. The default profile cannot be deleted. Profile must

Get the reseller's onboarding completion status

Get pricing information for all active eSIM plans, showing the final price the

Create or update a custom pricing entry for a plan. Provide either

Get the reseller's custom pricing entry for a specific plan

Delete the reseller's custom pricing entry for a plan (reverts to default

Upload a logo image for reseller profile(s). Uses `multipart/form-data`

List all `mobile_user` accounts associated with this reseller (users where

Get details for a specific user associated with this reseller, including their

List all orders from users associated with this reseller. Supports filtering

Get aggregated dashboard statistics for the reseller's associated users and

Get the SMTP configuration for a reseller profile. Password is never

Update SMTP configuration for a reseller profile. When `use_custom_smtp =

Disable custom SMTP for a reseller profile and clear all stored SMTP

Test the SMTP connection for a reseller profile. Profile must have custom SMTP

Uploads

1 endpoints

Upload a logo image for use on reseller-branded assets.

Upload a logo image file for the authenticated reseller. The file is saved to

Webhook Subscriptions

7 endpoints

Subscribe to platform events, send test deliveries, and inspect delivery logs.

List all webhook subscriptions belonging to the authenticated user

Create a new webhook subscription. A test webhook (`webhook.health_check`) is

Get a specific webhook subscription by ID. Only the owner can access it

Update a webhook subscription. All fields are optional — only provided fields

Permanently delete a webhook subscription

Send a test `webhook.health_check` event to the subscription's endpoint

Get delivery logs for a specific webhook subscription

Need a hand integrating?

Our team helps resellers go live fast. Reach out and we will get you selling.