API reference
Jobs
Poll status, progress (0–100) and result of an async job. Free.
GET
http://localhost:4000/v1/jobs/{id}- Credit cost
- Free
- Async
- No
- 404 billed
- —
- Plans
- All plans
Authenticate with the x-api-key header. See authentication and credits & billing.
Parameters
Path
| Parameter | Description |
|---|---|
idstringrequired | The job_id returned with is_async=true. |
Code examples
curl "http://localhost:4000/v1/jobs/job_4f8k2m9q1x7c3v5b6n0z8l2p" \
-H "x-api-key: $SNAPLENS_API_KEY"Responses
200 — job object
{
"id": "job_4f8k2m9q1x7c3v5b6n0z8l2p",
"success": true,
"status": "CompletedJob",
"endpoint": "/v1/content",
"created_at": "2026-11-09T10:15:02.120Z",
"started_at": "2026-11-09T10:15:02.410Z",
"completed_at": "2026-11-09T10:15:04.032Z",
"duration_ms": 1622,
"args": {
"url": "https://acme.example",
"include_markdown": true
},
"result": {
"metadata": {
"title": "Acme — Project management for remote teams"
},
"links": {
"internal": [
"…"
],
"external": [],
"social": []
}
},
"progress": 100
}Statuses
| Status | Terminal | Meaning |
|---|---|---|
Queued |
No | Waiting for a worker. |
Running |
No | In progress; see progress (0–100). |
CompletedJob |
Yes | Done; result holds the output. |
Error |
Yes | Failed; not billed. |
NotFound |
Yes | Unknown or expired job id. |
BadRequest |
Yes | Invalid original parameters; not billed. |
Polling is free. Back off between polls (start at 1–2 s, multiply by 1.5). The full job object is documented in Async jobs; use webhooks to avoid polling entirely.
Errors
Errors return JSON { "error": "…" }. Failed requests are never billed. Full list in Status codes.
| Status | Meaning |
|---|---|
| 404 | No job with this id in your workspace (status: NotFound) |
| 401 | Invalid, inactive or expired API key; plan rate limit (Rate limit exceeded: …) or key quota (…: quota daily) |
| 403 | IP temporarily blocked after repeated authentication failures |
| 500 | Unexpected server error |