Skip to main content
GET
Since ingestion is asynchronous, use this endpoint to determine when context is ready to be retrieved. Pass the IDs you got back from ingestion in ids (or a single id). It works for documents, app sources, and memories. Whitespace is trimmed, empty entries are dropped, and duplicates are removed. Prefer webhooks over polling? Register a webhook for indexing.status_changed events and HydraDB will POST to your endpoint when content reaches a terminal state (completed or errored). See Webhooks for setup and receiver examples.

Query parameters

Status item fields

Each entry in data.statuses describes one requested id:

Error code values

error_code is the field that lets you tell a caller mistake apart from a real ingestion failure, a distinction you cannot make from indexing_status: "errored" alone. It is empty on any non-errored entry. Status records can expire. A source that completed still reports completed after its record expires. A source that never finished before its record expired reports errored with E9004; ingest it again. Branch on error_code, not on the text in message or error_message. message describes the lookup, not the ingestion result, and human-readable text may change. The full list of codes an errored entry can carry is in the Error Responses reference.

Status values

The normal progression is queued, then processing, then graph_creation, then completed. Treat errored as terminal.

Polling patterns

Stop when content is searchable

Use this for normal RAG/search flows. graph_creation means chunks are indexed and can be retrieved.

Stop when graph processing is complete

Use this before graph-heavy operations such as /context/relations or when you require complete graph_context.
Typical processing time:
  • Memories (text, markdown, conversation pairs): seconds
  • Small documents (under 50 pages): 1 to 5 minutes
  • Large documents (50+ pages): 5 to 15 minutes

Errors

Common codes: 400 INVALID_INPUT (for example database and tenant_id both sent with different values), 404 DATABASE_NOT_FOUND, 422 VALIDATION_ERROR (missing database, or no ID). See Error Responses for the full list.
Related Resources

Authorizations

Authorization
string
header
required

API key sent as a Bearer token: "Bearer prefix.secret"

Query Parameters

id
string

Single source ID

Example:

"HydraDoc1234"

ids
string[]

One or more source IDs

Example:
database
string
required

Database (canonical name for the tenant scope)

Example:

"acme_corp"

collection
string

Collection (canonical name for the sub-tenant scope)

Example:

"team_docs"

tenant_id
string
deprecated

Deprecated alias for database

Example:

"tenant_1234"

sub_tenant_id
string
deprecated

Deprecated alias for collection

Example:

"sub_tenant_4567"

Response

OK

data
object
Example:
error
object | null

Null on success; an object with code and message on failure.

Example:

null

meta
object
Example:
success
boolean

Whether the request succeeded.

Example:

true