Skip to main content
POST
/
tables
/
{tableId}
/
rows
curl --request POST \
  --url https://origami.chat/api/v1/tables/{tableId}/rows \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "rows": [
    {
      "company-name": "Acme Corp",
      "website": "acme.com"
    },
    {
      "company-name": "Beta Inc",
      "website": "beta.io"
    }
  ]
}
'
{
  "batchId": "550e8400-e29b-41d4-a716-446655440000"
}

Authorizations

Authorization
string
header
required

API key with og_live_ prefix. Create keys in Settings → API Keys.

Pass in the Authorization header:

Authorization: Bearer og_live_abc123...

Path Parameters

tableId
string<uuid>
required

The table UUID. Use GET /tables to list available tables.

Body

application/json
rows
object[]
required

Array of row objects to insert. Each row is a flat object mapping input column slugs to values. Maximum 100 rows per request.

Required array length: 1 - 100 elements
enrich
boolean
default:true

Whether to trigger enrichment after inserting rows. Defaults to true. Set to false to insert data without running enrichment — the batch will immediately be "complete".

batchId
string<uuid>

Optional caller-generated UUID for idempotent retries. If a batch with this ID already exists for the organization, the server returns the existing batch (HTTP 200) without inserting rows again. Generate a UUID client-side and include it with every attempt to make retries safe after network failures.

Response

Idempotent replay — a batch with the provided batchId already exists. The original batch ID is returned without inserting new rows.

batchId
string<uuid>
required

Unique identifier for the batch. Use this to poll GET /batches/{batchId} for progress and results.