---
title: API reference
url: https://anyrow.ai/docs/api
canonical_url: https://anyrow.ai/docs/api
---

# Anyrow API reference

Base URL: `https://api.anyrow.ai`

Authenticate with the `Authorization` header: `ApiKey {your_api_key}`.

## [Tables](https://anyrow.ai/docs/api/tables.md)

A table is a schema: named, typed columns and how strictly to fill them.

- [List tables](https://anyrow.ai/docs/api/tables/list.md): `GET /v1/projects/{project_id}/tables`
- [Create table](https://anyrow.ai/docs/api/tables/create.md): `POST /v1/projects/{project_id}/tables`
- [Get table](https://anyrow.ai/docs/api/tables/get.md): `GET /v1/projects/{project_id}/tables/{table_id}`
- [Update table](https://anyrow.ai/docs/api/tables/update.md): `PATCH /v1/projects/{project_id}/tables/{table_id}`
- [Delete table (soft, 72h grace)](https://anyrow.ai/docs/api/tables/delete.md): `DELETE /v1/projects/{project_id}/tables/{table_id}`
- [Duplicate table structure](https://anyrow.ai/docs/api/tables/duplicate.md): `POST /v1/projects/{project_id}/tables/{table_id}/duplicate`
- [Restore deleted table](https://anyrow.ai/docs/api/tables/restore.md): `POST /v1/projects/{project_id}/tables/{table_id}/restore`

## [Columns](https://anyrow.ai/docs/api/columns.md)

A table's columns: what to extract, with which type and instruction.

- [Add column](https://anyrow.ai/docs/api/columns/add.md): `POST /v1/projects/{project_id}/tables/{table_id}/columns`
- [Reorder columns](https://anyrow.ai/docs/api/columns/reorder.md): `PUT /v1/projects/{project_id}/tables/{table_id}/columns/order`
- [Update column](https://anyrow.ai/docs/api/columns/update.md): `PATCH /v1/projects/{project_id}/tables/{table_id}/columns/{col_id}`
- [Remove column](https://anyrow.ai/docs/api/columns/remove.md): `DELETE /v1/projects/{project_id}/tables/{table_id}/columns/{col_id}`
- [Get distinct column values](https://anyrow.ai/docs/api/columns/distinct.md): `GET /v1/projects/{project_id}/tables/{table_id}/columns/{col_id}/distinct`

## [Rows](https://anyrow.ai/docs/api/rows.md)

The records in a table: list, filter, aggregate, create, edit and bulk-write them.

- [List rows](https://anyrow.ai/docs/api/rows/list.md): `GET /v1/projects/{project_id}/tables/{table_id}/rows`
- [Create row](https://anyrow.ai/docs/api/rows/create.md): `POST /v1/projects/{project_id}/tables/{table_id}/rows`
- [Aggregate column values](https://anyrow.ai/docs/api/rows/aggregate.md): `GET /v1/projects/{project_id}/tables/{table_id}/rows/aggregate`
- [Bulk create/update/delete rows](https://anyrow.ai/docs/api/rows/bulk.md): `POST /v1/projects/{project_id}/tables/{table_id}/rows/bulk`
- [Get row](https://anyrow.ai/docs/api/rows/get.md): `GET /v1/projects/{project_id}/tables/{table_id}/rows/{row_id}`
- [Update row](https://anyrow.ai/docs/api/rows/update.md): `PATCH /v1/projects/{project_id}/tables/{table_id}/rows/{row_id}`
- [Delete row](https://anyrow.ai/docs/api/rows/delete.md): `DELETE /v1/projects/{project_id}/tables/{table_id}/rows/{row_id}`
- [The source file behind a row: download it, or open a PDF or image inline](https://anyrow.ai/docs/api/rows/source.md): `GET /v1/projects/{project_id}/tables/{table_id}/rows/{row_id}/source`

## [Extract](https://anyrow.ai/docs/api/extract.md)

Extract rows from a file or text, as one JSON response or a stream of server-sent events.

- [Extract data from text or file (JSON response)](https://anyrow.ai/docs/api/extract/once.md): `POST /v1/projects/{project_id}/extract`
- [Extract data from text or file (SSE stream)](https://anyrow.ai/docs/api/extract/stream.md): `POST /v1/projects/{project_id}/extract-stream`
- [Extract into table (JSON response)](https://anyrow.ai/docs/api/extract/table-once.md): `POST /v1/projects/{project_id}/tables/{table_id}/extract`
- [Extract into table (SSE stream)](https://anyrow.ai/docs/api/extract/table-stream.md): `POST /v1/projects/{project_id}/tables/{table_id}/extract-stream`

## [Batches](https://anyrow.ai/docs/api/batches.md)

A batch is one extraction run over one or more files: its status, rows and downloads.

- [List batches](https://anyrow.ai/docs/api/batches/list.md): `GET /v1/projects/{project_id}/batches`
- [Get batch](https://anyrow.ai/docs/api/batches/get.md): `GET /v1/projects/{project_id}/batches/{batch_id}`
- [Download batch CSV](https://anyrow.ai/docs/api/batches/download-csv.md): `GET /v1/projects/{project_id}/batches/{batch_id}/download/csv`
- [Download batch JSON](https://anyrow.ai/docs/api/batches/download-json.md): `GET /v1/projects/{project_id}/batches/{batch_id}/download/json`
- [Download batch XLSX](https://anyrow.ai/docs/api/batches/download-xlsx.md): `GET /v1/projects/{project_id}/batches/{batch_id}/download/xlsx`

## [Export](https://anyrow.ai/docs/api/export.md)

Export a table's rows as a file, and check an export's status.

- [Get export status](https://anyrow.ai/docs/api/export/get.md): `GET /v1/projects/{project_id}/exports/{export_id}`
- [Export table rows](https://anyrow.ai/docs/api/export/export.md): `GET /v1/projects/{project_id}/tables/{table_id}/export`

## [Schema suggestions](https://anyrow.ai/docs/api/schema.md)

Let Anyrow suggest a table's columns from a sample document.

- [Suggest schema from text or file (multipart)](https://anyrow.ai/docs/api/schema/schema.md): `POST /v1/projects/{project_id}/suggest-schema`

## [Table Templates](https://anyrow.ai/docs/api/table-templates.md)

Reusable table schemas: browse, preview and create tables from them.

- [Browse table templates](https://anyrow.ai/docs/api/table-templates/project-list.md): `GET /v1/projects/{project_id}/table-templates`
- [Preview table template](https://anyrow.ai/docs/api/table-templates/project-get.md): `GET /v1/projects/{project_id}/table-templates/{template_id}`
- [Create table from template](https://anyrow.ai/docs/api/table-templates/use.md): `POST /v1/projects/{project_id}/table-templates/{template_id}/use`
- [Create table template](https://anyrow.ai/docs/api/table-templates/create.md): `POST /v1/table-templates`
- [List my table templates](https://anyrow.ai/docs/api/table-templates/list-mine.md): `GET /v1/table-templates/mine`
- [Update table template](https://anyrow.ai/docs/api/table-templates/update.md): `PATCH /v1/table-templates/{template_id}`
- [Delete table template](https://anyrow.ai/docs/api/table-templates/delete.md): `DELETE /v1/table-templates/{template_id}`

## [Webhooks](https://anyrow.ai/docs/api/webhooks.md)

Endpoints Anyrow posts batch events to, signed with your secret.

- [List webhooks](https://anyrow.ai/docs/api/webhooks/list.md): `GET /v1/organizations/{organization_id}/webhooks`
- [Create webhook](https://anyrow.ai/docs/api/webhooks/create.md): `POST /v1/organizations/{organization_id}/webhooks`
- [Get webhook](https://anyrow.ai/docs/api/webhooks/get.md): `GET /v1/organizations/{organization_id}/webhooks/{id}`
- [Update webhook](https://anyrow.ai/docs/api/webhooks/update.md): `PATCH /v1/organizations/{organization_id}/webhooks/{id}`
- [Delete webhook](https://anyrow.ai/docs/api/webhooks/delete.md): `DELETE /v1/organizations/{organization_id}/webhooks/{id}`
- [List webhook deliveries](https://anyrow.ai/docs/api/webhooks/deliveries.md): `GET /v1/organizations/{organization_id}/webhooks/{id}/deliveries`
- [Rotate webhook secret](https://anyrow.ai/docs/api/webhooks/rotate-secret.md): `POST /v1/organizations/{organization_id}/webhooks/{id}/rotate-secret`
- [Send test webhook](https://anyrow.ai/docs/api/webhooks/test.md): `POST /v1/organizations/{organization_id}/webhooks/{id}/test`

## [Errors](https://anyrow.ai/docs/api/errors.md)
