Context
Ingestion Status
Check the processing status of ingested documents.
GET
Since ingestion is asynchronous, use this endpoint to determine when context is ready to be retrieved.
Pass one or more IDs in
Typical processing time:
ids to retrieve status. Works for documents, app sources, and memories. When passing multiple IDs on the query string, use either repeated params (?ids=policy_main&ids=runbook_deploy) or a single comma-joined value (?ids=policy_main,runbook_deploy); both forms are equivalent and can be mixed. Surrounding whitespace is trimmed and empty entries are dropped. For more information, see the Knowledge and Memories guides.
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 indata.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.
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 → processing → graph_creation → 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.
- Memories (text, markdown, conversation pairs): seconds
- Small documents (under 50 pages): 1–5 minutes
- Large documents (50+ pages): 5–15 minutes
Behavior notes
graph_creation is searchable. Items in this state are already retrievable via /query. Wait for completed only when you specifically need full graph traversal (graph_context: true).- Unknown IDs return as
errored: If you pass an ID that does not exist (e.g., a typo), HydraDB returns an entry withindexing_status: "errored"anderror_code: "FILE_NOT_FOUND"rather than silently dropping it. Useerror_codeto distinguish this from a genuine ingestion failure - seeerror_codevalues.
Errors
Common codes:400 INVALID_PARAMETERS, 404 DATABASE_NOT_FOUND, 422 VALIDATION_ERROR. See Error Responses for the full list.
Authorizations
API key sent as a Bearer token: "Bearer prefix.secret"
Query Parameters
Single source ID
Example:
"HydraDoc1234"
One or more source IDs
Example:
Database (canonical name for the tenant scope)
Example:
"acme_corp"
Collection (canonical name for the sub-tenant scope)
Example:
"team_docs"
Deprecated alias for database
Example:
"tenant_1234"
Deprecated alias for collection
Example:
"sub_tenant_4567"