# Sync CSV data

`POST https://api.airtable.com/v0/{baseId}/{tableIdOrName}/sync/{apiEndpointSyncId}`

Syncs raw CSV data into a Sync API table.
You must first set up a sync from a base (instructions in this [support article](https://support.airtable.com/docs/airtable-sync-integration-api-endpoint)).
The **apiEndpointSyncId** in the path parameters can be found in the setup flow when
creating a new Sync API table, or from the synced table settings.

The CSV data can contain up to 10k rows, 500 columns, and the HTTP request's size is limited to 2 MB.

Up to 10k rows will be synced per sync run. If you send two requests that each contain a CSV with
10k rows before a sync run occurs, then only 10k rows will be synced.

There is a rate limit of 20 requests, per 5 minutes, per base for this endpoint.

## Requirements

- **Authentication:** [Personal access token](https://airtable.com/developers/web/api/authentication.md#types-of-token)
- **Scopes:** [`data.records:write`](https://airtable.com/developers/web/api/scopes.md#data-records-write), [`schema.bases:write`](https://airtable.com/developers/web/api/scopes.md#schema-bases-write)
- **User role:** Base creator
- **Billing plans:** Pro, Enterprise (pre-2023.08 legacy plan), Enterprise Scale

## Path parameters

- `baseId: string`

- `tableIdOrName: string`

- `apiEndpointSyncId: string`

## Response format

### Example — Success example

```sh
curl -X POST "https://api.airtable.com/v0/{baseId}/{tableIdOrName}/sync/{apiEndpointSyncId}" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: text/csv" \
--data 'column1,column2
row1-column1,row1-column2
row2-column1,row2-column2'
```
