Skip to content
Developers

A wholesale data network, by API

Provision eSIMs, meter usage and top up balances programmatically. A clean REST API with webhooks, generous rate limits and SDKs for the languages you already use.

Instant provisioning

Create an eSIM and return an LPA activation code in a single call.

Usage webhooks

Stream real-time consumption and balance events to your backend.

Idempotent + versioned

Safe retries, predictable payloads, and no breaking changes without a version bump.

provision.sh
curl https://www.pilotesim.com/api/v1/esims \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "country": "JP",
    "fund_usd": 25
  }'

# → 201 Created
# {
#   "id": "esim_9f2a...",
#   "object": "esim",
#   "status": "READY",
#   "country": "JP",
#   "network": "5G",
#   "iccid": "8920677273545478977",
#   "install": { "lpa": "LPA:1$rsp.example.com$9F2A..." },
#   "funded_usd": 25.00,
#   "wallet_balance_usd": 12.50
# }

Core endpoints

A REST surface that maps cleanly to the product.

PilotEsim API core endpoints
MethodEndpoint
POST/v1/esims
GET/v1/esims/{id}/usage
POST/v1/esims/{id}/topups
GET/v1/coverage

Scoped keys (coverage:read, esims:read, esims:write), Idempotency-Key on POSTs, cursorless pagination (limit/offset), and 120 req/min rate limiting.

Subscribe to esim.provisioned, topup.succeeded and usage.recorded events with signed outbound webhooks (manage endpoints in account settings). A reference TypeScript SDK ships in sdk/pilotesim.ts.