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

# Raw Data

> Query exact venue-native capture envelopes across a source's channels.

Read raw capture envelopes from a source database. Omit `channel` to search all raw channels, or pass the native channel name without the `raw__` prefix. `source` must name a source database, not the standard database.

## Request

```bash theme={null}
curl -G "https://api.polaris.supply/raw" --data-urlencode "source=hyperliquid" --data-urlencode "start=<START_RFC3339>" --data-urlencode "end=<END_RFC3339>" --data-urlencode "limit=2"
```

Replace the timestamp placeholders with an inclusive range in the latest seven days, or send a bearer API key for older data.

### Query parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `source` | `string` | Yes | Source identifier; must not resolve to the standard database |
| `market` | `string` | No | Exact capture context market; omitted to include all source markets |
| `channel` | `string` | No | Native raw channel name without the raw\_\_ prefix; omitted to include all channels |
| `start` | `string` | Yes | Inclusive RFC 3339 collector time |
| `end` | `string` | Yes | Inclusive RFC 3339 collector time |
| `limit` | `integer` | No | Page size; defaults to 200 and values above 1000 are capped |
| `cursor` | `string` | No | Opaque cursor bound to source, market, channel, and time range |

## Access and behavior

`source`, `start`, and `end` are required. Both bounds are inclusive RFC 3339 collector times. The latest seven days are public; older ranges require a Polaris API key. Results are ordered by collector time, raw table, and capture ID. Only paged JSON is supported; there is no file download mode.

## Response

| Field | Type | Required | Description |
| - | - | - | - |
| `data` | `SourceRawCaptureItem[]` | Yes | — |
| `has_more` | `boolean` | Yes | — |
| `next_cursor` | `string / null` | No | — |

### `data[]` fields

| Field | Type | Required | Description |
| - | - | - | - |
| `additional_context` | `JSON value` | Yes | — |
| `capture_id` | `string` | Yes | — |
| `collector_timestamp` | `integer` | Yes | — |
| `ingested_at` | `integer` | Yes | — |
| `original_json` | `string` | Yes | — |
| `raw_table` | `string` | Yes | — |
| `recorder_version` | `string` | Yes | — |

The response array is named `data`, not `items`. Each row preserves `original_json` as a string alongside capture metadata. Treat its contents as venue-native data.

## Pagination

Pass `next_cursor` as `cursor` with the same filters. Stop when `has_more` is false, or when `next_cursor` is null for endpoints without `has_more`. A cursor is opaque; do not edit or reuse it with different filters.

## Errors

The OpenAPI contract lists `400`, `401`, `404`, `422`, `503`, `429`. Error responses use `error.code`, `error.message`, and `error.resolution`. Narrow an expensive query after `422`. Follow `Retry-After` after `429`.

For the machine-readable contract, see the [OpenAPI document](https://api.polaris.supply/openapi.json).
