---
title: "Latest version bytes"
method: GET
path: "/{id}/raw"
---

# Latest version bytes

`GET /{id}/raw`

## Request

- Base URL: `https://rows.page`
- URL: `https://rows.page/{id}/raw`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `X-Rows-Token`

Append the format extension (`/raw.csv`, `/raw.parquet`, `/raw.jsonl`, ...) so tools like DuckDB can pick a reader from the URL: `select * from 'https://rows.page/<id>/raw.csv'`. A mismatched extension returns 404 naming the right one.

## Path parameters

- `id` string, required

## Headers

- `Range` string

## Response `200`

File bytes

## Other responses

- `206`: Partial content (single Range)
- `304`: Not modified (If-None-Match)
- `401`: Error
- `402`: Version locked on the owner's plan (reason locked_version)
- `403`: Error
- `404`: Error
- `410`: Error
- `416`: Range not satisfiable

---

[API](https://skmtc.dev/rows/apis/rows-page-api.md) · [All operations](https://skmtc.dev/rows/apis/rows-page-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rows/apis/rows-page-api/revisions/98dacb9eeca7?raw)
