For Agents
Read and write Coda doc rows, manage pages and tables, share and publish docs, and inspect formulas, controls and automations across 124 endpoints.
Get started with Coda API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"insert a row into a Coda table"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Coda API API.
List, search, create, copy, and delete Coda docs via the /docs endpoints
Read, insert, upsert, update, and delete table rows via /docs/{docId}/tables/{tableIdOrName}/rows
Walk the page tree, fetch page content, and export pages via /docs/{docId}/pages and /export
Manage doc sharing and permissions through /docs/{docId}/acl/permissions and /acl/settings
GET STARTED
Use for: List all Coda docs in my workspace, Insert a new row into a Coda table, Upsert a row keyed by an external id in Coda, Read all rows from the 'Tasks' table in my Coda doc
Not supported: Does not run Coda Pack code, send Coda automation triggers from outside the doc, or replace the doc editor — use for reading and writing Coda doc rows, pages, and ACLs only.
The Coda API lets developers and AI agents interact with Coda docs the same way the editor does — listing and creating docs, sharing and publishing them, walking the page tree, and reading or writing rows in tables. It also exposes formulas, controls, automations, packs, analytics, account whoami, and ACL management for fine-grained sharing. Coda publishes the spec at coda.io/apis/v1/openapi.json and authenticates with Bearer API tokens that can optionally be restricted to specific docs, tables, or read/write scopes.
Publish or unpublish a doc with PUT and DELETE /docs/{docId}/publish
Inspect formulas, controls, and column definitions across a doc to power agentic workflows
Patterns agents use Coda API API for, with concrete tasks.
★ Two-Way Sync Between Coda and a Backend
Keep a Coda table and an internal database aligned by reading rows on a schedule and writing changes back. POST /docs/{docId}/tables/{tableIdOrName}/rows supports insert and upsert, GET on the same path streams rows with pagination, and the X-Coda-Doc-Version header forces a fresh read when staleness is unacceptable. Most teams stand up a working sync in well under a day.
Upsert a list of order rows into the 'Orders' table via POST /docs/{docId}/tables/Orders/rows with keyColumns set to ['order_id'].
Doc Sharing and Publishing Automation
Programmatically share new docs with the right teams and publish customer-facing docs. POST /docs/{docId}/acl/permissions adds a principal, GET /docs/{docId}/acl/permissions lists the current ACL, and PUT /docs/{docId}/publish takes the doc public with optional discoverability controls. Useful for templated workspace provisioning when a new project starts.
Add the email alex@example.com as an editor on doc id abc123 by POSTing to /docs/abc123/acl/permissions.
Page and Content Export
Pull doc content out of Coda for use in another system — a wiki migration, a static site, or an LLM ingestion pipeline. POST /docs/{docId}/pages/{pageIdOrName}/export starts an export, GET on the matching /export/{requestId} polls until it is ready, and GET /docs/{docId}/pages/{pageIdOrName}/content returns the live page content. Combined this gives a deterministic, version-pinned snapshot.
Begin an export of page 'Roadmap' via POST /docs/{docId}/pages/Roadmap/export, then poll the resulting /export/{requestId} until status is complete.
Doc Templates and Workspace Onboarding
Spin up a new Coda doc from a template each time a project starts. POST /docs creates a doc (optionally cloning from an existing doc id), PATCH /docs/{docId} renames or moves it, and the ACL endpoints share it with the right people in one go. Repeatable in seconds with a single workflow.
Create a new Coda doc from sourceDoc id template-doc-id via POST /docs and rename it to 'Q3 Planning' with PATCH /docs/{docId}.
AI Agent Coda Workflows via Jentic
An AI assistant uses Jentic to read and write Coda rows on behalf of a user without storing the Bearer token. The agent searches for 'insert a row into a Coda table', loads the schema for POST /docs/{docId}/tables/{tableIdOrName}/rows, and executes — Jentic injects the API token from the vault and respects scoped tokens that limit the agent to specific docs or tables.
Use Jentic to search for 'insert a Coda row', load the POST /docs/{docId}/tables/{tableIdOrName}/rows schema, and add a row to the 'Inbox' table.
124 endpoints — the coda api lets developers and ai agents interact with coda docs the same way the editor does — listing and creating docs, sharing and publishing them, walking the page tree, and reading or writing rows in tables.
METHOD
PATH
DESCRIPTION
/docs
List available docs
/docs
Create a new doc
/docs/{docId}/tables/{tableIdOrName}/rows
List rows in a table
/docs/{docId}/tables/{tableIdOrName}/rows
Insert or upsert rows
/docs/{docId}/acl/permissions
Share a doc by adding a permission
/docs/{docId}/publish
Publish a doc to the web
/docs/{docId}/pages/{pageIdOrName}/export
Begin a page content export
/docs
List available docs
/docs
Create a new doc
/docs/{docId}/tables/{tableIdOrName}/rows
List rows in a table
/docs/{docId}/tables/{tableIdOrName}/rows
Insert or upsert rows
/docs/{docId}/acl/permissions
Share a doc by adding a permission
Three things that make agents converge on Jentic-routed access.
Credential isolation
The Bearer API token is stored encrypted in the Jentic vault. Agents call Coda operations without ever receiving the raw token — Jentic adds the Authorization header at execution time and respects token scope restrictions (specific docs or tables, read-only vs read-write).
Intent-based discovery
Agents search by intent (e.g. 'insert a Coda row' or 'share a Coda doc') and Jentic returns the matching Coda operation with its parameter schema, so the agent can build a row payload without reading the 100+ page reference.
Time to first call
Direct Coda integration: half a day to one day to wire up auth, scoped tokens, and the row endpoints. Through Jentic: under one hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Notion
Notion is a competing block-based docs and database platform with a similar API surface.
Choose Notion when the workspace is already on Notion; choose Coda for doc-as-app workflows with formulas and controls.
Airtable
Airtable is a database-first competitor with strong relational and view tooling.
Choose Airtable for relational base management; choose Coda for tables embedded inside doc-style narratives.
ClickUp
ClickUp handles task and project management for teams using Coda for narrative docs.
Use ClickUp for sprint and ticketing workflows and Coda for the surrounding planning docs.
monday.com
monday.com is a work-management platform that often pairs with Coda for documentation.
Use monday.com for board-driven work tracking and Coda for table-driven documentation linked to it.
Specific to using Coda API API through Jentic.
What authentication does the Coda API use?
The Coda API uses HTTP Bearer authentication with a UUID-format API token created at https://coda.io/account. Tokens can be restricted by object (specific docs or tables) and by operation (read, write, or both). Through Jentic the token is stored encrypted in the vault and added to the Authorization header at execution time.
Can I insert and upsert rows into a Coda table?
Yes. POST /docs/{docId}/tables/{tableIdOrName}/rows accepts a list of rows for insert, and the same endpoint supports upsert via the keyColumns parameter. Writes are asynchronous — the response returns 202 with a requestId you can pass to /mutationStatus to confirm the edit was applied.
What are the rate limits for the Coda API?
Coda enforces per-user rate limits that vary by category (read, write, write-doc-content, list-docs, analytics) and returns 429 when exceeded. The exact numeric limits are not published in the spec and may change, so callers should treat 429 responses as the source of truth and back off with exponential retry.
How do I share a Coda doc with someone through Jentic?
Search Jentic for 'share a Coda doc', load the POST /docs/{docId}/acl/permissions schema, and execute with the principal email and access level (reader, writer, etc.). Install the SDK with pip install jentic and call it via the async client.
Can I export a Coda page as Markdown?
Yes. POST /docs/{docId}/pages/{pageIdOrName}/export starts an export job with the desired output format, and GET /docs/{docId}/pages/{pageIdOrName}/export/{requestId} polls for completion and returns the download link. Use this for wiki migrations or LLM ingestion.
Why do my row writes return 202 instead of 200?
Coda processes mutations asynchronously to keep edits consistent with collaborator changes. The 202 response includes a requestId; pass it to the mutation status endpoint to find out whether the edit succeeded, failed, or is still pending. Plan around a few seconds of write latency.
/docs/{docId}/publish
Publish a doc to the web
/docs/{docId}/pages/{pageIdOrName}/export
Begin a page content export