API reference
Retrieve an eSIM
Installation details for a single eSIM: QR code, activation code and SM-DP+ address.
GET
https://app.journeystack.co/api/public/v1/esims/{id}Path parameters
| Field | Type | Description |
|---|---|---|
idrequired | uuid | eSIM ID from an order. |
Request
cURL
curl "https://app.journeystack.co/api/public/v1/esims/<id>" \
-H "Authorization: Bearer $JS_KEY"Response
200 OK
{ "data": {
"id": "9ac2d51b-8f2e-4d6e-b0a1-6c5f0d9a3b77",
"plan_name": "Singapore Unlimited",
"iccid": "8944478000123456789",
"qr_code_url": "https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=LPA%3A1%24sandbox.journeystack.co%24A1B2C3D4E5",
"activation_code": "LPA:1$sandbox.journeystack.co$A1B2C3D4E5",
"smdp_address": "sandbox.journeystack.co",
"status": "ALLOCATED",
"validity_days": 7,
"data": { "unlimited": true, "total_bytes": null, "used_bytes": 0 },
"install": { "instructions": "On the device go to Settings > Cellular / Mobile Data > Add eSIM, then scan the QR code or enter the activation code manually." },
"created_at": "2026-01-14T09:31:02.114Z"
} }Selected response fields
| Field | Type | Description |
|---|---|---|
activation_code | string | LPA string. Everything a device needs, with or without the QR image. |
smdp_address | string|null | SM-DP+ server for manual installation. |
status | string | PROVISIONING, ALLOCATED, INSTALLED, IN_USE, EXPIRED or DELETED. |
Errors
| Code | HTTP | What to do |
|---|---|---|
| unauthorized | 401 | Check the Authorization header and that the key is still active in your portal. |
| not_found | 404 | Re-fetch the ID. Plans return not_found once they are retired from the catalogue. |
| rate_limited | 429 | Honour `Retry-After` (60 seconds) and back off. Ask support for a higher limit. |
Sandbox console
Run this endpoint against the sandbox with your own test key. Nothing is provisioned on the live network and no real money moves.