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"
{
"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" }
]
}'
{
"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.