Verify Processing
import requests
url = "https://api.hydradb.com/ingestion/verify_processing"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hydradb.com/ingestion/verify_processing', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.hydradb.com/ingestion/verify_processing \
--header 'Authorization: Bearer <token>'{
"statuses": []
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}Knowledge & Memories
Verify Processing
Check the processing status of ingested content.
POST
/
ingestion
/
verify_processing
Verify Processing
import requests
url = "https://api.hydradb.com/ingestion/verify_processing"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hydradb.com/ingestion/verify_processing', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.hydradb.com/ingestion/verify_processing \
--header 'Authorization: Bearer <token>'{
"statuses": []
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}When to use it
Both/ingestion/upload_knowledge and /memories/add_memory are asynchronous. After ingesting, use this endpoint to check whether content is fully indexed and ready to be recalled.
Common patterns:
- Polling after upload – wait until status is
completedbefore running recall queries - Bulk progress tracking – pass multiple IDs to check many sources in one call
- Error inspection – see why a specific item failed
Endpoint
- Auth: Bearer token
- Idempotency: Read-only
- Async: No
Example
curl -X POST 'https://api.hydradb.com/ingestion/verify_processing?file_ids=ef3ea754019855e2b39e9ab5c2d26096&file_ids=9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d&tenant_id=my_first_tenant&sub_tenant_id=my_first_tenant' \
-H "Authorization: Bearer <your_api_key>"
const response = await client.upload.verifyProcessing({
tenant_id: "my_first_tenant",
sub_tenant_id: "my_first_tenant",
file_ids: [
"ef3ea754019855e2b39e9ab5c2d26096",
"9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
],
});
response = client.upload.verify_processing(
tenant_id="my_first_tenant",
sub_tenant_id="my_first_tenant",
file_ids=[
"ef3ea754019855e2b39e9ab5c2d26096",
"9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
],
)
Query parameters
Perapi-reference/openapi.json, all query parameters below are optional in the spec (each has a default).
| Name | Type | Required (OpenAPI) | Description |
|---|---|---|---|
file_id | string | null | No | Deprecated in OpenAPI: single ID; use file_ids instead. |
file_ids | string[] | No | One or more source_id values returned at ingestion. OpenAPI default: []. |
tenant_id | string | No | Tenant the items belong to. OpenAPI default: "". |
sub_tenant_id | string | null | No | Sub-tenant scope. If omitted or null, the default sub-tenant is used. |
The query parameter is named
file_ids for legacy reasons. It accepts the source_id returned by both /ingestion/upload_knowledge and /memories/add_memory – not only file-backed sources.Response
200 response body matches OpenAPI schema BatchProcessingStatus (statuses: array of ProcessingStatus).
{
"statuses": [
{
"file_id": "ef3ea754019855e2b39e9ab5c2d26096",
"indexing_status": "completed",
"error_code": "",
"success": true,
"message": "Processing status retrieved successfully"
},
{
"file_id": "9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
"indexing_status": "graph_creation",
"error_code": "",
"success": true,
"message": "Processing status retrieved successfully"
}
]
}
| Field | Description |
|---|---|
statuses[] | One entry per requested ID. |
statuses[].file_id | The ID being reported on. |
statuses[].indexing_status | Current status. See Status values. |
statuses[].error_code | Diagnostic code if errored. Empty string when absent (OpenAPI default ""). |
statuses[].success | Whether the file was processed successfully (OpenAPI field; see spec for semantics). |
statuses[].message | Detailed status message (OpenAPI default: Processing status retrieved successfully). |
Status values
| Status | Meaning |
|---|---|
queued | Accepted by the server, not yet picked up by a worker. |
processing | Content is being parsed, chunked, and embedded. |
graph_creation | Content is indexed; the knowledge graph is being built on top. Already searchable via vector recall, but graph context may still be incomplete. |
completed | Fully indexed and graphed. Ready for all recall modes. |
errored | Processing failed. Inspect error_code and message on the status object (OpenAPI ProcessingStatus). |
success | Alias for completed. May appear in some legacy responses. |
Polling pattern
import time
source_ids = ["ef3ea754019855e2b39e9ab5c2d26096", "9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d"]
while True:
response = client.upload.verify_processing(
tenant_id="my_first_tenant",
sub_tenant_id="my_first_tenant",
file_ids=source_ids,
)
statuses = [s.indexing_status for s in response.statuses]
if all(s == "completed" for s in statuses):
break
if any(s == "errored" for s in statuses):
# inspect response.statuses for which failed
break
time.sleep(5)
- 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 the graph_creation state are already retrievable via full_recall and recall_preferences. Wait for completed only if you specifically need full graph context.Related endpoints
- Before this: Upload knowledge · Add memory
- After completion: Full recall · Recall preferences
Errors
Common codes:400 INVALID_PARAMETERS, 404 TENANT_NOT_FOUND, 422 VALIDATION_ERROR. See Error Responses for the full list.
Read more: Essentials → MemoriesAuthorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Single file ID (deprecated - use file_ids instead).
Example:
"<str>"
One or more file IDs to check processing status for.
Example:
"<str>"
Unique identifier for the tenant/organization
Example:
"tenant_1234"
Optional sub-tenant identifier used to organize data within a tenant. If omitted, the default sub-tenant created during tenant setup will be used.
Example:
"sub_tenant_4567"
Response
Successful Response
List of processing statuses, one per requested file ID.
Show child attributes
Show child attributes
Example:
[]
Was this page helpful?
