/data-tables/{data_table_id}/rows/import

Import rows into a data table by uploading a CSV or JSON file. The import validates the file
against the table schema, deduplicates rows by key (keeping last occurrence), and upserts rows
(creates new rows or updates existing rows matched by key).

File constraints:

  • CSV: max 10 MB
  • JSON: max 2 MB
  • Only one file per request
  • File type determined by extension (.csv or .json) or content type

CSV format:

  • Delimiter: comma
  • Encoding: UTF-8 (BOM is stripped if present)
  • Quoting: RFC 4180
  • Headers must exactly match the table's column slugs (including key)
  • Empty fields are treated as null (column not set)

JSON format:

  • Must be a top-level array of objects
  • Each object must include all table column slugs as keys
  • Values are natively typed (strings, numbers, booleans, null)

Validation pipeline (fail-fast, atomic):

  1. File type and size validation
  2. Header/key matching against table schema (rejects duplicates, missing, or extra columns)
  3. Empty key validation (every row must have a non-blank key)
  4. Duplicate key deduplication (last occurrence wins)
  5. Row limit check (max 1000 rows per table)
  6. Per-cell type validation against column types
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Scope

data-tables:write

Path Params
string
required
length between 1 and 255

The ID of the data table

Body Params

The CSV or JSON file to import

file
required
length between 1 and 10485760

The CSV or JSON file containing rows to import

Responses

Language
Credentials
OAuth2
Missing 1 required scope
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json