API reference
eSIM usage
Data consumed and remaining for one eSIM.
GET
https://app.journeystack.co/api/public/v1/esims/{id}/usagePath parameters
| Field | Type | Description |
|---|---|---|
idrequired | uuid | eSIM ID. |
Request
cURL
curl "https://app.journeystack.co/api/public/v1/esims/<id>/usage" \
-H "Authorization: Bearer $JS_KEY"Response
200 OK
{
"data": {
"esim_id": "9ac2d51b-8f2e-4d6e-b0a1-6c5f0d9a3b77",
"status": "IN_USE",
"unlimited": true,
"total_bytes": null,
"used_bytes": 734003200,
"remaining_bytes": null,
"validity_days": 7,
"created_at": "2026-01-14T09:31:02.114Z"
}
}Selected response fields
| Field | Type | Description |
|---|---|---|
used_bytes | integer | Bytes consumed. Reported in near real time; treat as accurate to roughly 15 minutes. |
remaining_bytes | integer|null | null on unlimited plans, which have no cap to count down. |
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.