Nebula REST API
Estimate, submit, confirm, track, cancel and fetch batches, read your credit and buy top-ups, with your key as a Bearer token.
Sign in to see your own test client ID in the samples.
Send your key as Authorization: Bearer ath_live_.... Rights: nebula runs batches, nebula:read only reads.
Endpoints
| Method and path | Right | What it does |
|---|---|---|
GET /api/v1/nebula/models | nebula:read | The models you can run and their units |
GET /api/v1/nebula/balance | nebula:read | Your credit, what running jobs hold, plan credit lapsing soon, your plan and settings |
POST /api/v1/nebula/topups | nebula | Buy a top-up on your card on file (live keys) |
POST /api/v1/nebula/estimate | nebula | What a job would cost, the credit it would reserve, and whether you have it. Stores nothing |
POST /api/v1/nebula/batches | nebula | Submit a batch. A live batch waits for your confirmation |
POST /api/v1/nebula/batches/{id}/confirm | nebula | Confirm the estimate (or resume a paused batch): the credit is reserved, then the batch runs |
GET /api/v1/nebula/batches/{id} | nebula:read | State, estimate, reservation and amount |
POST /api/v1/nebula/batches/{id}/cancel | nebula | Cancel a batch that is waiting or queued |
GET /api/v1/nebula/batches/{id}/results | nebula:read | The results, one JSON line per item |
A batch body
Classification adds "labels": ["yes", "no"]. Transcription items carry audio (base64) and seconds; captions carry image (base64). We never fetch a URL you send.
{ "model": "bge-small-en-v1.5",
"items": [{ "id": "a1", "text": "Your first text" }, { "id": "a2", "text": "Your second text" }],
"idempotency_key": "order-2026-10-20-01" }Submit and confirm
Short of credit, confirm answers 402 credit_short with need_cad, credit_cad, short_cad and what you can do (offer). Buy a top-up, then confirm again:
curl -s https://developers.aton-network.org/api/v1/nebula/batches -H "Authorization: Bearer $KEY" -H "content-type: application/json" -d @batch.json
# { "id": "...", "state": "awaiting_credit", "estimate_cad": "1.20", "reserve_cad": "1.50", "credit_cad": "35.00", "confirm": "/api/v1/nebula/batches/.../confirm" }
curl -s -X POST https://developers.aton-network.org/api/v1/nebula/batches/$ID/confirm -H "Authorization: Bearer $KEY"
# { "id": "...", "state": "queued", "reserved_cad": "1.50", "credit_left_cad": "33.50" }curl -s https://developers.aton-network.org/api/v1/nebula/topups -H "Authorization: Bearer $KEY" -H "content-type: application/json" -d '{"pack": "pack-25", "confirm_amount_cad": "25.00"}'
# { "pack": "pack-25", "paid_cad": "25.00", "credit_added_cad": "25.00" }Errors
401 invalid_key, 403 missing_right, 403 plan_needed (choose a plan), 402 card_needed, 402 credit_short (top up or upgrade), 402 card_refused (a top-up the card refused), 402 spend_limit, 404 unknown_model, 409 not_done.
Ask Atlas
AI assistantAsk anything about Sign in with Atheron, the API or the portal. You get an answer from our docs, with links to the pages it used.