c65a8418f3c8

latestOpenAPI 3.0.0Superhuman Developer Terms2026-08-06124404444.0 KB
Rows

Insert/upsert rows

Inserts rows into a table, optionally updating existing rows if any upsert key columns are provided. This endpoint will always return a 202, so long as the doc and table exist and are accessible (and the update is structurally valid). Row inserts/upserts are generally processed within several seconds. Note: this endpoint only works for base tables, not views. When upserting, if multiple rows match the specified key column(s), they will all be updated with the specified value.

post/docs/{docId}/tables/{tableIdOrName}/rows

Path parameters

docIdstring required

ID of the doc.

tableIdOrNamestring required

ID or name of the table. Names are discouraged because they're easily prone to being changed by users. If you're using a name, be sure to URI-encode it.

Query parameters

disableParsingboolean

If true, the API will not attempt to parse the data in any way.

Request body

keyColumnsstring[]

Optional column IDs, URLs, or names (fragile and discouraged), specifying columns to be used as upsert keys.

Example request

{
  "rows": [
    {
      "cells": [
        {
          "column": "c-tuVwxYz",
          "value": "$12.34"
        }
      ]
    }
  ],
  "keyColumns": [
    "c-bCdeFgh"
  ]
}

Response

A result indicating that the upsert was queued for processing.

requestIdstring required

An arbitrary unique identifier for this request.

addedRowIdsstring[]

Row IDs for rows that will be added. Only applicable when keyColumns is not set or empty.

Example response

{
  "requestId": "abc-123-def-456",
  "addedRowIds": [
    "i-bCdeFgh",
    "i-CdEfgHi"
  ]
}