🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Coda

by @0x7466

General-purpose Coda document manager via REST API v1. Supports listing/creating/updating/deleting docs, managing tables/rows/pages, triggering automations, and exploring doc structure. Requires CODA_API_TOKEN environment variable. Delete operations require explicit confirmation; publishing and permission changes require explicit user intent.

Versionv1.0.0
Downloads1,927
Installs7
Stars⭐ 1
TERMINAL
clawhub install coda

πŸ“– About This Skill


name: coda description: General-purpose Coda document manager via REST API v1. Supports listing/creating/updating/deleting docs, managing tables/rows/pages, triggering automations, and exploring doc structure. Requires CODA_API_TOKEN environment variable. Delete operations require explicit confirmation; publishing and permission changes require explicit user intent.

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 3. 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:

    # Setup
    export CODA_API_TOKEN="your_token_here"

    List docs

    python scripts/coda_cli.py docs list --query "Project"

    Get doc info

    python scripts/coda_cli.py docs get

    Create doc

    python scripts/coda_cli.py docs create --title "My New Doc"

    List tables in doc

    python scripts/coda_cli.py tables list

    List rows in table

    python scripts/coda_cli.py rows list

    Insert row

    python scripts/coda_cli.py rows insert --data '{"Name": "Task 1", "Status": "Done"}'

    Update row

    python scripts/coda_cli.py rows update --data '{"Status": "In Progress"}'

    Delete row (requires confirmation)

    python scripts/coda_cli.py rows delete

    List pages

    python scripts/coda_cli.py pages list

    Trigger automation (push button)

    python scripts/coda_cli.py automations trigger

    Force delete without confirmation (use with caution)

    python scripts/coda_cli.py docs delete --force

    Workflow Guidelines

    1. Doc ID Extraction

    Coda doc IDs can be extracted from browser URLs:
  • URL: https://coda.io/d/_dAbCDeFGH/Project-Tracker
  • 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 --force
  • 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)
  • --page-token: For fetching subsequent pages
  • CLI auto-follows pages with --all flag
  • Common Patterns

    Batch Row Operations

    # Insert multiple rows from JSON file
    python scripts/coda_cli.py rows insert-batch   --file rows.json

    Upsert rows (update if exists, insert if not) using key columns

    python scripts/coda_cli.py rows upsert --file rows.json --keys "Email"

    Sync Between Docs

    # Export from source
    python scripts/coda_cli.py rows list   --format json > export.json

    Import to destination

    python scripts/coda_cli.py rows insert-batch --file export.json

    Explore Structure

    # Get full doc structure
    python scripts/coda_cli.py docs structure 

    List all formulas

    python scripts/coda_cli.py formulas list

    List all controls

    python scripts/coda_cli.py controls list

    Error Handling

    Common HTTP status codes:

  • 400: Bad request (invalid parameters)
  • 401: Invalid/expired API token
  • 403: Insufficient permissions (need Doc Maker role)
  • 404: Resource not found
  • 429: Rate limited (implement backoff)
  • 202: Accepted but not yet processed (async operation)
  • Security Considerations

    1. Token Storage: Never commit CODA_API_TOKEN to version control 2. Token Scope: The token has full access to all docs the user can access 3. Workspace Restrictions: Creating docs requires Doc Maker role in target workspace 4. Data Exposure: Row data may contain sensitive information; handle exports carefully

    Examples

    List and Filter Docs

    python scripts/coda_cli.py docs list --is-owner --query "Project"
    

    Create Doc from Template

    python scripts/coda_cli.py docs create --title "Q4 Planning" --source-doc "template-doc-id"
    

    Update Row Status

    python scripts/coda_cli.py rows update AbCDeFGH grid-xyz row-123 \
      --data '{"Status": "Complete", "Completed Date": "2024-01-15"}'
    

    Delete Multiple Rows (with confirmation)

    python scripts/coda_cli.py rows delete-batch AbCDeFGH grid-xyz \
      --filter '{"Status": "Archived"}' \
      --confirm "Delete all archived rows?"
    

    Export Table to CSV

    python scripts/coda_cli.py rows list AbCDeFGH grid-xyz --format csv > export.csv
    

    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
  • ⚑ When to Use

    TriggerAction
    - 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

    πŸ’‘ Examples

    List and Filter Docs

    python scripts/coda_cli.py docs list --is-owner --query "Project"
    

    Create Doc from Template

    python scripts/coda_cli.py docs create --title "Q4 Planning" --source-doc "template-doc-id"
    

    Update Row Status

    python scripts/coda_cli.py rows update AbCDeFGH grid-xyz row-123 \
      --data '{"Status": "Complete", "Completed Date": "2024-01-15"}'
    

    Delete Multiple Rows (with confirmation)

    python scripts/coda_cli.py rows delete-batch AbCDeFGH grid-xyz \
      --filter '{"Status": "Archived"}' \
      --confirm "Delete all archived rows?"
    

    Export Table to CSV

    python scripts/coda_cli.py rows list AbCDeFGH grid-xyz --format csv > export.csv
    

    βš™οΈ Configuration

    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 3. Permissions: Some operations (create doc, update doc title, create page) require Doc Maker role in the workspace