# Coda

Manage Coda docs: pages, tables, rows (upsert/delete), columns, controls. Exposes **30 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `coda_docs_list` | List all documents - GET /docs. |
| `coda_doc_get` | Get a single document - GET /docs/&#123;docId&#125;. |
| `coda_doc_create` | Create a new document - POST /docs. |
| `coda_doc_update` | Update a document - PATCH /docs/&#123;docId&#125;. |
| `coda_doc_delete` | Delete a document - DELETE /docs/&#123;docId&#125;. |
| `coda_pages_list` | List pages in a document - GET /docs/&#123;docId&#125;/pages. |
| `coda_page_get` | Get a single page - GET /docs/&#123;docId&#125;/pages/&#123;pageId&#125;. |
| `coda_page_create` | Create a new page - POST /docs/&#123;docId&#125;/pages. |
| `coda_page_update` | Update a page - PATCH /docs/&#123;docId&#125;/pages/&#123;pageId&#125;. |
| `coda_page_delete` | Delete a page - DELETE /docs/&#123;docId&#125;/pages/&#123;pageId&#125;. |
| `coda_tables_list` | List tables in a document - GET /docs/&#123;docId&#125;/tables. |
| `coda_table_get` | Get a single table - GET /docs/&#123;docId&#125;/tables/&#123;tableId&#125;. |
| `coda_columns_list` | List columns in a table - GET /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/columns. |
| `coda_column_get` | Get a single column - GET /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/columns/&#123;columnId&#125;. |
| `coda_rows_list` | List rows in a table - GET /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows. |
| `coda_row_get` | Get a single row - GET /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows/&#123;rowId&#125;. |
| `coda_row_create` | Create a new row - POST /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows. |
| `coda_row_upsert` | Upsert rows (create or update) - PUT /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows. |
| `coda_row_update` | Update a row - PATCH /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows/&#123;rowId&#125;. |
| `coda_row_delete` | Delete a row - DELETE /docs/&#123;docId&#125;/tables/&#123;tableId&#125;/rows/&#123;rowId&#125;. |
| `coda_controls_list` | List controls (buttons, sliders, etc.) in a document - GET /docs/&#123;docId&#125;/controls. |
| `coda_control_get` | Get a single control - GET /docs/&#123;docId&#125;/controls/&#123;controlId&#125;. |
| `coda_permissions_list` | List document permissions (collaborators) - GET /docs/&#123;docId&#125;/permissions. |
| `coda_share` | Share a document - POST /docs/&#123;docId&#125;/permissions. |
| `coda_publish_get` | Get document publishing settings - GET /docs/&#123;docId&#125;/publish. |
| `coda_publish_update` | Update document publishing settings - PATCH /docs/&#123;docId&#125;/publish. |
| `coda_analytics` | Get document analytics - GET /docs/&#123;docId&#125;/analytics. |
| `coda_doc_workspace_info` | Get workspace info for a document - GET /docs/&#123;docId&#125;/workspace. |
| `coda_folders_list` | List folders in a workspace - GET /folders. |
| `coda_folder_get` | Get a single folder - GET /folders/&#123;folderId&#125;. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`CODA_API_TOKEN`** - Coda - Account settings - API settings - Generate API token. (https://coda.io/account)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `CODA_API_TOKEN` | Coda - Account settings - API settings - Generate API token. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Coda API documentation](https://coda.io/developers/apis/v1)
