---
title: "List all observations"
url: "https://docs.unified.to/healthcare/observation/List_all_observations"
description: "List all observations with Unified's Observation API (GET /healthcare/{connection_id}/observation). Filter by limit, offset and updated_gte. Supported by 15 Observation integrations."
---
# List all observations

 GET/healthcare/{connection\_id}/observation

## Parameters

**limit**number  default=100

**offset**number  default=0

**updated\_gte**date-time 

Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**sort** enum

name

updated\_at

created\_at

**order** enum

asc

desc

**query**string 

Query string to search. eg. email address or name

**patient\_id**string 

The patient ID to filter by

**type** enum

LABORATORY

VITAL\_SIGNS

SOCIAL\_HISTORY

IMAGING

SURVEY

EXAM

PROCEDURE

THERAPY

ACTIVITY

OTHER

**fields**string array 

id

created\_at

updated\_at

patient\_id

encounter\_id

practitioner\_id

name

codes

status

type

value\_number

value\_unit

value\_text

interpretation

reference\_range

components

observed\_at

issued\_at

notes

metadata

raw

Fields to return

**raw**string 

Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar

**connection\_id**string  required 

ID of the connection

## Returns

[HealthcareObservation](https://docs.unified.to/healthcare/observation/model.md)array

**id**string 

Unique identifier for the observation

**created\_at**date-time 

When the observation record was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**updated\_at**date-time 

When the observation record was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**patient\_id**string 

The patient the observation is about

**encounter\_id**string 

The encounter in which the observation was made

**practitioner\_id**string 

The practitioner who performed the observation

**name**string 

Human-readable name of what was observed

**codes** array 

Codings for what was observed (e.g. LOINC)

**status** enum

Valid values:

 "REGISTERED" 

 "PRELIMINARY" 

 "FINAL" 

 "AMENDED" 

 "CORRECTED" 

 "CANCELLED" 

 "ENTERED\_IN\_ERROR" 

 "UNKNOWN" 

 "OTHER" 

Status of the observation result

**type** enum

Valid values:

 "LABORATORY" 

 "VITAL\_SIGNS" 

 "SOCIAL\_HISTORY" 

 "IMAGING" 

 "SURVEY" 

 "EXAM" 

 "PROCEDURE" 

 "THERAPY" 

 "ACTIVITY" 

 "OTHER" 

Category of the observation

**value\_number**number 

Numeric result value

**value\_unit**string 

Unit of the numeric result (e.g. mg/dL)

**value\_text**string 

Text or coded result value

**interpretation** enum

Valid values:

 "NORMAL" 

 "ABNORMAL" 

 "LOW" 

 "HIGH" 

 "CRITICAL\_LOW" 

 "CRITICAL\_HIGH" 

 "OTHER" 

Interpretation of the result (e.g. high, low)

**reference\_range**object 

Normal range for the result

**components** array 

Component results (e.g. systolic and diastolic blood pressure)

**observed\_at**date-time 

When the observation was made (effective time) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**issued\_at**date-time 

When the result was released (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**notes**string 

Free-text notes about the observation

**metadata** array 

**raw** 

Raw data from integration

## Errors

 Errors return the HTTP status code and a JSON body with `statusCode`, `error` (the short label) and `message` (a human-readable detail). 

```json
{
  "statusCode": 429,
  "error": "Too Many Requests",
  "message": "Too many requests to unified.to API; max requests per minute: N"
}
```

| Status | Error                 | Meaning                                           |
| ------ | --------------------- | ------------------------------------------------- |
| 400    | Bad Request           | The request was malformed or failed validation.   |
| 401    | Unauthorized          | The connection is likely broken; re-authorize it. |
| 403    | Forbidden             | The connection is missing permissions or scopes.  |
| 404    | Not Found             | The requested resource does not exist.            |
| 429    | Too Many Requests     | Rate limit exceeded (see the two sources below).  |
| 500    | Internal Server Error | An unexpected error occurred.                     |
| 501    | Not Implemented       | Not supported by this integration.                |

 Errors from the underlying integration pass through: the integration's status comes back as ours (429, 401, 403, 404 or 5xx), usually with its message. When the integration's error body is unclear, Unified extracts what it can and returns a clearer message. 

### 429 Too Many Requests

A 429 has two possible sources:

* The integration's own rate limit, passed through.
* Unified's workspace limit: a rolling 60 seconds, set by plan, with the message `Too many requests to unified.to API; max requests per minute: N`.

## Code Samples

### Node.js SDK

```javascript
import { UnifiedTo } from '@unified-api/typescript-sdk';

const sdk = new UnifiedTo({
    security: {
        jwt: '<YOUR_API_KEY_HERE>',
    },
});

const connectionId = '5de520f96e439b002043d8dc';

const results = await sdk.healthcare.listHealthcareObservations({ connectionId, 
    limit: 50,
    offset: 0,
    updated_gte: '2026-10-12T03:24:38.891Z',
    sort: 'updated_at',
    order: 'asc',
    query: '',
    patient_id: '',
    type: '',
    fields: '',
    raw: '',
 });
```

### Node.js (axios)

```javascript
const options = {
  method: 'GET',
  url: 'https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation',
  headers: {
    authorization: 'bearer .....'
  },
  params: {
    limit: 50,
    offset: 0,
    updated_gte: '2026-10-12T03:24:38.891Z',
    sort: 'updated_at',
    order: 'asc',
    query: '',
    patient_id: '',
    type: '',
    fields: '',
    raw: '',
  }
};

const results = await axios.request(options);
```

### Java

```java
AsyncHttpClient client = new DefaultAsyncHttpClient();

client.prepare("GET", "https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw=")
  .setHeader("accept", "application/json")
  .setHeader("authorization", ".....")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();
```

### Go

```go
import (
	"fmt"
	"net/http"
	"io/ioutil"
)

url := `https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw=

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("accept", "application/json")
req.Header.Add("authorization", ".....")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
```

### Python

```python
import requests

url = "https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw="

headers = {
    "accept": "application/json",
    "authorization": "....."
}

response = requests.get(url, headers=headers)
```

### PHP

```php
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw=",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: ....."
  ],
]);
```

### Ruby

```ruby
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw=")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["authorization"] = '....'

response = http.request(request)
puts response.read_body
```

### cURL

```bash
curl --request GET \
  --url 'https://api.unified.to/healthcare/5de520f96e439b002043d8dc/observation?limit=50&offset=0&updated_gte=2026-10-12T03:24:38.891Z&sort=updated_at&order=asc&query=&patient_id=&type=&fields=&raw=' \
  --header 'accept: application/json' \
  --header 'authorization: .....'
```
