API reference
Retrieve a plan
Full plan detail, including the mobile networks the eSIM can roam on.
GET
https://app.journeystack.co/api/public/v1/plans/{id}Path parameters
| Field | Type | Description |
|---|---|---|
idrequired | uuid | Journey Stack plan ID. |
Request
cURL
curl "https://app.journeystack.co/api/public/v1/plans/<id>" \
-H "Authorization: Bearer $JS_KEY"Response
200 OK
{
"data": {
"id": "0f4c1c2e-6f8a-4a09-9f0d-2f1b8c7d5e41",
"name": "Singapore Unlimited",
"type": "unlimited",
"data": {
"unlimited": true,
"bytes": null,
"daily_allowance": "500 MB",
"throttled_speed": "1 Mbps"
},
"validity": { "days": null, "billed_per_day": true, "min_days": 1, "max_days": 365 },
"coverage": { "type": "country", "code": "SG", "name": "Singapore" },
"price": { "amount": 2.45, "currency": "USD", "per": "day" },
"networks": [
{ "country": "Singapore", "network": "Singtel", "type": "5G" },
{ "country": "Singapore", "network": "StarHub", "type": "4G" }
]
}
}Selected response fields
| Field | Type | Description |
|---|---|---|
networks | array | Carriers covered. Empty array when no carrier list is published for this plan. |
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.