Skip to main content
Building with an AI coding assistant? Download the full OpenAPI specification and paste it into your preferred tool.

Prerequisites

  • An Origami account with at least one table set up
  • An API key (create one in Settings → API Keys)

Step 1: List your tables

Find the table you want to enrich into. The response shows each table’s columns, so you know which fields to include in your rows.
curl https://origami.chat/api/v1/tables \
  -H "Authorization: Bearer og_live_YOUR_KEY"
Example response
{
  "tables": [
    {
      "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "name": "Series A SaaS Companies",
      "workspaceName": "Outbound Q2",
      "rowCount": 150,
      "columns": [
        { "name": "Company Name", "slug": "company-name", "kind": "input" },
        { "name": "Website", "slug": "website", "kind": "input" },
        { "name": "CEO Email", "slug": "ceo-email", "kind": "enrichment", "autoTrigger": true }
      ]
    }
  ],
  "total": 1,
  "page": 0,
  "pageSize": 50
}
Note the id and the input column slugs — you’ll use these as field names in the next step.

Step 2: Insert rows

Post your raw data using column slugs as field names (from Step 1). Enrichment starts automatically.
curl -X POST https://origami.chat/api/v1/tables/TABLE_ID/rows \
  -H "Authorization: Bearer og_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "rows": [
      { "company-name": "Acme Corp", "website": "acme.com" },
      { "company-name": "Beta Inc", "website": "beta.io" }
    ]
  }'
Response
{
  "batchId": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
Set "enrich": false in the request body to insert rows without triggering enrichment.
For safe retries, include a "batchId" (any UUID you generate) in the request body. If the request is retried with the same batchId, Origami returns the existing batch instead of inserting duplicate rows.

Step 3: Poll for results

Use the batchId to check progress. Keep polling until status is "complete".
curl https://origami.chat/api/v1/batches/BATCH_ID \
  -H "Authorization: Bearer og_live_YOUR_KEY"
{
  "batchId": "f47ac10b-...",
  "tableId": "d290f1ee-...",
  "type": "insert",
  "status": "processing",
  "rowCount": 2,
  "enrichments": { "total": 4, "completed": 1, "pending": 3, "failed": 0 },
  "failures": {},
  "creditsUsed": 0,
  "createdAt": "2025-07-01T14:30:00Z",
  "completedAt": null
}

Step 4: Read all table data (optional)

To pull all rows from a table (not just from one batch), use the read endpoint:
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows?pageSize=100" \
  -H "Authorization: Bearer og_live_YOUR_KEY"

What’s next

Authentication

Managing API keys and security best practices.

API Reference

Full endpoint docs with interactive playground.