---
title: "Get Vena Table Export Data"
method: GET
path: "/exports/{exportId}/data"
tags: ["Vena tables [Beta]"]
---

# Get Vena Table Export Data

`GET /exports/{exportId}/data`

## Request

- Base URL: `https://us1.vena.io/api/public/v1`
- URL: `https://us1.vena.io/api/public/v1/exports/{exportId}/data`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/venasolutions/apis/vena-api/docs/exports/:exportId/data/get.ts> (a function with typed inputs; its response is checked against the schema)

**Beta.** Returns one page of snapshot row data as JSON (default) or CSV.

**Prerequisite:** `GET /exports/{exportId}/status` must return `"COMPLETED"`.

**Pagination:** Use `offset` / `limit`. In JSON responses, follow `metadata.nextPage` until null. The sum of `metadata.recordsReturned` across pages equals `metadata.totalRecords`.

**JSON rows** are positional **string arrays** aligned with `metadata.headers`. Page metadata includes `headers`, `recordsReturned`, `nextPage`, and `totalRecords` (no `offset` / `nextOffset` / `expiresTime` on the page — TTL is on the create response).

**CSV:** `Accept: text/csv` returns header + up to `limit` data rows for the current offset only (no JSON metadata in the body).

## Path parameters

- `exportId` string, required

## Query parameters

- `offset` integer
- `limit` integer

## Headers

- `Accept` 'application/json' | 'text/csv' | '*/*'

## Response `200`

Data page — JSON envelope (default) or CSV stream for current page

- VenaTableExportPageResponse
  - `data` array[], required: Positional row arrays of string cell values, aligned with `metadata.headers` (e.g. `[ "East", "2024" ]`). Null cells serialize as empty strings.
    - string[]
  - `metadata` VenaTableExportPageMetadata, required: Page metadata for Vena Table export data. Includes `headers` for positional JSON rows. Does not include offset, nextOffset, or expiresTime (TTL is on create response).
    - `headers` string[], required: Ordered column names for each row in `data`
    - `recordsReturned` integer, required: Number of data rows in this page
    - `nextPage` string, nullable: Absolute URL for next page; null on last page
    - `totalRecords` integer, required: Total rows in the snapshot (whole job)

## Other responses

- `400`: Invalid pagination, export not ready, or snapshot unavailable because the ETL build failed (`ERROR` / `CANCELLED`). Part download/parse failures after `COMPLETED` are HTTP **500**, not 400.
- `401`: Invalid authentication credentials
- `403`: Authenticated user does not have access, or is not the export owner. Variants: forbiddenModel, wrongExportUser. Public Export API license failures are HTTP **422** `text/plain`, not 403.
- `404`: Export not found or expired. Variants: exportNotFoundUnknown, exportIdInvalid, exportExpired. Unknown or invalid `exportId` uses `error.type` `NOT_FOUND`. Missing snapshot parts after `COMPLETED` are HTTP **500**, not 404.
- `406`: Invalid Accept header
- `422`: The Public Export API feature is not enabled for this customer.
- `429`: Too many requests, please try again later
- `500`: Server fault while reading a `COMPLETED` snapshot (part download or parse failure). This is not `EXPORT_UNAVAILABLE` and not `NOT_FOUND`. Retry later or contact support; do not treat it as a client validation error.

## Changes

- **2026-11-03** `587671c855dd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/venasolutions/apis/vena-api/changes/exports/:exportId/data/get.md)

---

[API](https://skmtc.dev/venasolutions/apis/vena-api.md) - [All operations](https://skmtc.dev/venasolutions/apis/vena-api/llms.txt) - [OpenAPI document](https://skmtc.dev/venasolutions/apis/vena-api/revisions/587671c855dd?raw)
