Skip to content

API reference

Jobs

Poll status, progress (0–100) and result of an async job. Free.

GEThttp://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

ParameterDescription
id
stringrequired

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.

StatusMeaning
404No job with this id in your workspace (status: NotFound)
401Invalid, inactive or expired API key; plan rate limit (Rate limit exceeded: …) or key quota (…: quota daily)
403IP temporarily blocked after repeated authentication failures
500Unexpected server error