> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anivahealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Document Results

> Read the status and the extracted lab values of a document you uploaded

Read the status and the lab values of a document you uploaded with
[Upload Document](https://docs.anivahealth.com/api/documents/upload-document.md). The response has the same shape as
[Get Lab Results](https://docs.anivahealth.com/api/appointments/get-results.md) for an appointment. See
[Results](https://docs.anivahealth.com/concepts/results.md) 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](https://docs.anivahealth.com/concepts/webhooks.md), 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

**id** `string` *required*

Document ID (UUID) from the upload response.

### Headers

**If-None-Match** `string`

The `ETag` of a previous response. When nothing changed, the API answers `304 Not Modified` with
no body.

## Response

On success, the API returns `200 OK` with the results object and an `ETag` header.

**status** `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 without `extract_results`, or it holds no
  lab results. `stored` is final: no `document.results.completed` webhook follows.

**clinical\_results** `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.

**genetic\_results** `object[]` *required*

Genetic results. Empty for an uploaded document today.

**documents** `object[]` *required*

The uploaded document itself.

**submissions** `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. |

```bash cURL theme={null}
curl --request GET \
  --url https://anivahealth.com/api/v1/documents/f8a1b2c3-d4e5-4f6a-8b8c-9d0e1f2a3b4c/results \
  --header 'x-api-key: YOUR_API_KEY'
```

```json 200 theme={null}
{
  "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
    }
  ]
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.