Documents
Get Document Results
Read the status and the extracted lab values of a document you uploaded
GET
/
api
/
v1
/
documents
/
{id}
/
results
curl --request GET \
--url https://anivahealth.com/api/v1/documents/f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c/results \
--header 'x-api-key: YOUR_API_KEY'
{
"status": "stored",
"submissions": [{ "lab_code": null, "status": "completed" }],
"clinical_results": [],
"genetic_results": [],
"documents": [
{
"id": "f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c",
"file_name": "20261023 - Arztbrief.pdf",
"original_file_name": "arztbrief.pdf",
"origin": "partner_upload",
"content_type": "application/pdf",
"etag": "56104b36f860cfd5b41efc716fdf7b6f",
"size_bytes": 182311,
"lab_code": null
}
]
}
Read the status and the lab values of a document you uploaded with
Upload Document. The response has the same shape as
Get Lab Results for an appointment. See
Results for every field.
Only documents uploaded under a profile group your key reads results in answer. Every other
document returns
404: read its results under the appointment or home kit order that produced it.
You do not need to poll. Subscribe to document.results.updated or document.results.completed
webhooks, and call this endpoint when an event arrives.
Requires the results_view scope on the profile group the document was uploaded under.
Request
Path parameters
string
required
Document ID (UUID) from the upload response.
Headers
string
The
ETag of a previous response. When nothing changed, the API answers 304 Not Modified with
no body.Response
On success, the API returns200 OK with the results object and an ETag header.
string
required
One of:
in_progress— Aniva is extracting the values.completed— extraction finished.fault— extraction failed.stored— the document has no values: you uploaded it withoutextract_results, or it holds no lab results.storedis final: nodocument.results.completedwebhook follows.
object[]
required
The extracted values. Each value carries
origin: partner_upload. A report with several sample
dates gives each value its own tested_at. Never planned: an upload orders nothing.object[]
required
Genetic results. Empty for an uploaded document today.
object[]
required
The uploaded document itself.
object[]
required
One entry for the upload.
lab_code is null.Error responses
| Status | Description |
|---|---|
304 | Not modified — the If-None-Match etag still matches. No body. |
400 | Invalid ID format. |
403 | Your API key lacks the results_view scope. |
404 | No document uploaded under one of your profile groups has this ID. |
500 | Internal server error. |
curl --request GET \
--url https://anivahealth.com/api/v1/documents/f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c/results \
--header 'x-api-key: YOUR_API_KEY'
{
"status": "stored",
"submissions": [{ "lab_code": null, "status": "completed" }],
"clinical_results": [],
"genetic_results": [],
"documents": [
{
"id": "f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c",
"file_name": "20261023 - Arztbrief.pdf",
"original_file_name": "arztbrief.pdf",
"origin": "partner_upload",
"content_type": "application/pdf",
"etag": "56104b36f860cfd5b41efc716fdf7b6f",
"size_bytes": 182311,
"lab_code": null
}
]
}
⌘I
curl --request GET \
--url https://anivahealth.com/api/v1/documents/f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c/results \
--header 'x-api-key: YOUR_API_KEY'
{
"status": "stored",
"submissions": [{ "lab_code": null, "status": "completed" }],
"clinical_results": [],
"genetic_results": [],
"documents": [
{
"id": "f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c",
"file_name": "20261023 - Arztbrief.pdf",
"original_file_name": "arztbrief.pdf",
"origin": "partner_upload",
"content_type": "application/pdf",
"etag": "56104b36f860cfd5b41efc716fdf7b6f",
"size_bytes": 182311,
"lab_code": null
}
]
}