Arango logo

Verify and Monitor AutoRAG

Check service health, verify the status of your AutoRAG service, and browse the query history of your project

Getting Started Path: Overview → Configure LLMs → Search Methods → Execute Queries → Verify
Every endpoint on this page needs an Authorization: Bearer <token> header, the health endpoint included. A request without one is rejected with 401.

Health Check

You can monitor the AutoRAG service health using the health endpoint:

GET https://<EXTERNAL_ENDPOINT>:8529/graphrag/retriever/:serviceIdPostfix/v1/health
curl https://<EXTERNAL_ENDPOINT>:8529/graphrag/retriever/<SERVICE_ID_POSTFIX>/v1/health \
  -H "Authorization: Bearer <your-jwt-token>"

Example response:

{
  "status": "OK",
  "message": "Service is healthy"
}
FieldTypeDescription
statusstring"OK" when the service is healthy
messagestringDetail about the status, usually the text "Service is healthy". Some deployments return a JSON document here instead, so do not assume the value is prose.

Verify Service Status

You can verify the state of the AutoRAG service via the project endpoint:

GET https://<EXTERNAL_ENDPOINT>:8529/_platform/acp/v1/project_by_name/:project_name

For example, the status object found within retrieverServices may contain the following properties:

"status": {
    "status": "service_started",
    "progress": 100
}

Query History

Every query is saved automatically as a run, so you can browse past queries, inspect the parameters and responses they used, and delete entries you no longer need.

Runs are scoped to the project database, which means everyone querying the same project shares one history. AutoRAG returns the identifier of the run as runId in every query response, including the first and last chunk of a streaming response.

Run lifecycle

StatusMeaning
streamingThe query is in progress and the response is not final yet.
completeThe query finished successfully; response and duration are recorded.
errorThe query failed; the error field holds the failure reason.

Runs that stay in streaming status beyond a configurable timeout are marked as error automatically by a background job that detects abandoned queries.

List runs

GET https://<EXTERNAL_ENDPOINT>:8529/graphrag/retriever/:serviceIdPostfix/v1/retriever-runs

Returns the runs of the project, newest first. Deleted runs are excluded.

Query parameters:

ParameterTypeRequiredDefaultDescription
limitintegerNo0Maximum number of runs to return. 0 means no limit.
There is no server-side maximum and no pagination: with limit omitted or set to 0, the response contains every run of the project. Since each query adds a run, pass an explicit limit on projects with a long history.

Example response:

{
  "runs": [
    {
      "runId": "a1b2c3d4-...",
      "query": "What is the main theme?",
      "response": "The main theme is...",
      "queryType": "UNIFIED",
      "model": "gpt-5.4-nano",
      "status": "complete",
      "durationMs": 3420,
      "configSnapshot": "{\"query_type\":\"UNIFIED\",\"level\":2}",
      "createdAt": "2026-07-19T10:30:00Z",
      "updatedAt": "2026-07-19T10:30:03Z"
    }
  ]
}

Get a single run

GET https://<EXTERNAL_ENDPOINT>:8529/graphrag/retriever/:serviceIdPostfix/v1/retriever-runs/:run_id

Returns one run, in the same shape as the items of the list response. Returns 404 if the run does not exist or has been deleted.

Delete a run

DELETE https://<EXTERNAL_ENDPOINT>:8529/graphrag/retriever/:serviceIdPostfix/v1/retriever-runs/:run_id

Example response:

{
  "success": true
}

Deleting a run that does not exist, or that you already deleted, is not an error: the call returns HTTP 200 with success: false. Check the success field rather than the status code to find out whether anything was deleted.

Deletion is a soft delete. The run stops appearing in list and get responses, but the underlying document is kept in ArangoDB with a deleted_at timestamp so that other services can still consume the history.

Run fields

FieldTypeDescription
runIdstringUnique identifier of the run, also returned by the query itself.
querystringThe original query text.
responsestringThe generated response, empty while streaming.
metadatastringResponse metadata JSON, when include_metadata was true.
queryTypestringGLOBAL, LOCAL, UNIFIED, or CUSTOM.
modelstringThe chat model used for this query.
retrieverServiceIdstringIdentifier of the AutoRAG service instance.
statusstringstreaming, complete, or error.
errorstringError message, populated only when status is error.
durationMsintegerTotal query duration in milliseconds.
configSnapshotstringJSON string of the query parameters recorded for the run: mode, query_type, level, use_llm_planner, show_citations, use_cache, include_metadata, response_instructions, partition_ids, custom_prompts, custom_tools, and auto_create_indexes. It does not record model or auto_select_partitions, and it stores auto_create_indexes as false when the request omitted it, even though the query itself defaults to creating indexes.
createdAtstringISO 8601 timestamp of when the run started.
updatedAtstringISO 8601 timestamp of the last update.

Next Steps