Coda API Skill
Interact with the Coda REST API v1 to manage docs, tables, rows, pages, and automations.
When to Use
Use this skill when the user wants to:
- - List, search, create, or delete Coda docs
- Read from or write to tables (insert, upsert, update, delete rows)
- Explore doc structure (pages, tables, columns, formulas, controls)
- Trigger automations (push buttons)
- Export doc content or analytics
When NOT to Use
- - Do NOT use for general document editing advice unrelated to the API
- Do NOT use for Pack development (this skill covers Doc management, not Pack creation)
- Do NOT use for operations requiring Doc Maker permissions unless confirmed the user has them
Prerequisites
- 1. API Token: Set environment variable
CODA_API_TOKEN with your Coda API token
- Get token at: https://coda.io/account -> API Settings
- 2. Python 3.7+ with
requests library installed - Permissions: Some operations (create doc, update doc title, create page) require Doc Maker role in the workspace
CLI Tool Usage
The skill includes a Python CLI tool at scripts/coda_cli.py:
CODEBLOCK0
Workflow Guidelines
1. Doc ID Extraction
Coda doc IDs can be extracted from browser URLs:
- - URL: INLINECODE3
- Doc ID:
AbCDeFGH (remove _d prefix)
The CLI tool accepts both full URLs and raw IDs.
2. Rate Limit Handling
The API has strict rate limits:
- - Read: 100 requests per 6 seconds
- Write (POST/PUT/PATCH): 10 requests per 6 seconds
- Write doc content: 5 requests per 10 seconds
- List docs: 4 requests per 6 seconds
The CLI tool automatically implements exponential backoff for 429 responses.
3. Asynchronous Operations
Write operations return HTTP 202 with a
requestId. The CLI tool optionally polls for completion using
--wait flag.
4. Safety Guardrails
Delete Operations (rows, docs, pages, folders):
- - Always requires explicit user confirmation in interactive mode
- Use
--force flag only in automation/scripts - Shows preview of what will be deleted
Publishing (docs publish):
- - Requires explicit
--confirm-publish flag - Cannot be combined with INLINECODE11
Permissions (acl commands):
- - Requires explicit
--confirm-permissions flag for any changes - Read operations (list permissions) are always allowed
Automation Triggers:
- - Allowed without special flags but logged
- User should be aware that automations may trigger notifications or external actions
5. Pagination
List commands support:
- -
--limit: Maximum results (default 25, max varies by endpoint) - INLINECODE15 : For fetching subsequent pages
- CLI auto-follows pages with
--all flag
Common Patterns
Batch Row Operations
CODEBLOCK1
Sync Between Docs
CODEBLOCK2
Explore Structure
CODEBLOCK3
Error Handling
Common HTTP status codes:
- -
400: Bad request (invalid parameters) - INLINECODE18 : Invalid/expired API token
- INLINECODE19 : Insufficient permissions (need Doc Maker role)
- INLINECODE20 : Resource not found
- INLINECODE21 : Rate limited (implement backoff)
- INLINECODE22 : Accepted but not yet processed (async operation)
Security Considerations
- 1. Token Storage: Never commit
CODA_API_TOKEN to version control - Token Scope: The token has full access to all docs the user can access
- Workspace Restrictions: Creating docs requires Doc Maker role in target workspace
- Data Exposure: Row data may contain sensitive information; handle exports carefully
Examples
List and Filter Docs
CODEBLOCK4
Create Doc from Template
CODEBLOCK5
Update Row Status
CODEBLOCK6
Delete Multiple Rows (with confirmation)
CODEBLOCK7
Export Table to CSV
CODEBLOCK8
Reference
- - API Documentation: https://coda.io/developers/apis/v1
- OpenAPI Spec: https://coda.io/apis/v1/openapi.yaml
- Rate Limits: https://coda.io/developers/apis/v1#section/Rate-Limiting