Retrieve a knowledge upload job
Returns the status of an upload queued with POST /api/agents/{agentId}/knowledge?async=true.
status moves from pending to processing and ends in completed, with the document in
result (the same object as the synchronous 201), or failed, with the reason in error.
Poll every few seconds until the job ends.
A job is kept for one hour after its last update. After that, and for an id that never
existed or belongs to another workspace, the answer is 404 Job not found. Background uploads
are attempted once: a failed job is not retried, so upload the file again.
The job is looked up by id within the workspace; the agentId in the path is neither validated
nor checked against the job.
Idempotency. A read with no side effects. Safe to retry.
Access
- Required scope:
read(orwrite). Any workspace role. - Rate limit: General API — 120 requests/min per workspace on Starter or with no active plan, 200 on Growth, 300 on Business, 600 on Enterprise. See Rate limits.
- Plan: Available on every plan.
Authentication
Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the
dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once,
at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.
Operations restricted to admins or owners reject keys without the full scope with 403, and say so in
their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret —
that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds.
See Authentication.
Path parameters
UUID of the agent. It must belong to the authenticated workspace; an id from another workspace answers 404, exactly like an unknown one. Returned as id by GET /api/agents.
The jobId returned by the 202 upload response. A value that is not a UUID returns 400.
Response
A queued knowledge upload, as returned by GET /api/agents/{agentId}/knowledge/jobs/{jobId}. Kept for one hour after its last update.

