List knowledge documents
Returns the agent’s knowledge documents (deleted ones excluded), newest first by
created_at. Use it to show what an agent knows and to poll indexing progress after
POST /api/agents/{agentId}/knowledge: a document moves from processing to ready
(or failed) without any further call from you.
Offset pagination with limit and offset. The response carries no pagination metadata:
request the next page until one comes back with fewer than limit items. See
Pagination.
Consistency. Pages are cached for up to 5 minutes, but uploads and deletes clear every cached page of the agent before they respond, and the background indexer clears them when a status changes, so a document you just uploaded is visible on the next read.
Idempotency. Read-only and safe to retry.
Access
- Required scope:
read(orwrite). Any workspace role. - Rate limit: General API — 120 (Starter), 200 (Growth), 300 (Business) or 600 (Enterprise) requests/min per workspace. 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.
Query parameters
Maximum number of documents to return (1–100). Non-integer or out-of-range values are rejected with 400; they are not clamped.
Number of documents to skip (0–100000). Out-of-range values are rejected with 400.

