Skip to main content
The Quivr API is JSON over HTTP, versioned under /v0. The endpoint pages of this reference are generated from the OpenAPI contract. v0 is an evaluation version and may change without notice.

Authentication

Send an API key as a bearer token on every request:
The key decides the Organization, the actions and the Corpora a request may reach; the operator defines keys in Quivr’s configuration. A missing or unknown key is 401 invalid_api_key; an action or Corpus outside the key’s scope is 403 forbidden. A resource of another Organization is 404, never 403: holding an id is not access.

Idempotency

Every request that creates or changes something carries an idempotency_key in its body. Sending the same request again under the same key returns the first result, even after a timeout or a lost response, and never creates a second resource. Sending a different request under a key already used is 409 idempotency_conflict.

Asynchronous writes

Content is accepted before it is processed. POST /v0/records, batches and withdrawals answer 202 Accepted with an Ingestion Receipt once the command is stored durably; its Location header points at the Receipt. Read the Receipt to follow processing. Rebuilds work the same way with an Operation.

Pagination

List endpoints return items and, when more remain, a next_page_cursor. Pass it as page_cursor to get the next page, and limit to size pages. A change-feed cursor that expired is 410 cursor_expired, with a resync_url to rebuild your copy from the catalog.

Errors

Every error has the same body:
A dependency outage is always an error, never an empty success: a search that cannot reach its index fails with 503 rather than returning no results.

Limits