openapi: 3.0.0 info: version: 1.5.0 title: Coda Account Docs API license: name: Coda Developer Terms url: https://coda.io/trust/developer description: "# Introduction\n\nThe Coda API is a RESTful API that lets you programmatically interact with Coda docs:\n\n * List and search Coda docs\n * Create new docs and copy existing ones\n * Share and publish docs\n * Discover pages, tables, formulas, and controls\n * Read, insert, upsert, update, and delete rows\n\nIf you plan to integrate Coda with an AI tool, you may also want to consider using the\n[Coda MCP server](https://coda.io/resources/guides/getting_started_with_coda_mcp). It's optimized for LLM usage\npatterns and often exposes more granular methods for accessing and modifying data.\n\n# Getting Started\n\nOur [Getting Started Guide](https://coda.io/@oleg/getting-started-guide-coda-api) helps you learn the\nbasic of working with the API and shows a few ways you can use it. Check it out, and learn how to:\n\n- Read data from Coda tables and write back to them\n- Build a one-way sync from one Coda doc to another\n- Automate reminders\n- Sync your Google Calendar to Coda\n\n# Changes to the API\n\nAs we update and release newer versions of the API, we reserve the right to remove\nolder APIs and functionality with a 3-month deprecation notice. We will post about such changes as well as announce\nnew features in the [Developers Central](https://community.coda.io/c/developers-central) section of our Community,\nand update the [API updates](https://coda.io/api-updates) doc.\n\n# Using the API\n\nCoda's REST API is designed to be straightforward to use. You can use the language and platform of your choice to\nmake requests. To get a feel for the API, you can also use a tool like [Postman](https://www.getpostman.com/) or\n[Insomnia](https://insomnia.rest/).\n\n## API Endpoint\n\nThis API uses a base path of `https://coda.io/apis/v1`.\n\n## Resource IDs and Links\n\nEach resource instance retrieved via the API has the following fields:\n\n - `id`: The resource's immutable ID, which can be used to refer to it within its context\n - `type`: The type of resource, useful for identifying it in a heterogenous collection of results\n - `href`: A fully qualified URI that can be used to refer to and get the latest details on the resource\n\nMost resources can be queried by their name or ID. We recommend sticking with IDs where possible, as names are\nfragile and prone to being changed by your doc's users.\n\n### List Endpoints\n\nEndpoints supporting listing of resources have the following fields:\n\n - `items`: An array containing the listed resources, limited by the `limit` or `pageToken` query parameters\n - `nextPageLink`: If more results are available, an API link to the next page of results\n - `nextPageToken`: If more results are available, a page token that can be passed into the `pageToken` query parameter\n\n**The maximum page size may change at any time, and may be different for different endpoints.** Please do not rely on it\nfor any behavior of your application. If you pass a `limit` parameter that is larger than our maximum allowed limit,\nwe will only return as many results as our maximum limit. You should look for the presence of the `nextPageToken` on the\nresponse to see if there are more results available, rather than relying on a result set that matches your provided limit.\n\nTo fetch a subsequent page of results, pass the `pageToken` parameter. Set this parameter to the value given to you as the `nextPageToken`\nin a page response. If no value is provided, there are no more results available. You only need to pass the `pageToken` to get\nthe next page of results, you don't need to pass any of the parameters from your original request, as they are all\nimplied by the `pageToken`. Any other parameters provided alongside a `pageToken` will be ignored.\n\n### Doc IDs\n\nWhile most object IDs will have to be discovered via the API, you may find yourself frequently wanting to get the\nID of a specific Coda doc.\n\nHere's a handy tool that will extract it for you. (See if you can find the pattern!)\n\n
\n\n## Rate Limiting\n\nThe Coda API sets a reasonable limit on the number of requests that can be made per minute. Once this limit is\nreached, calls to the API will start returning errors with an HTTP status code of 429.\n\nThese are the current rate limits. They are subject to change at any time without notice. For robustness,\nall API scripts should check for HTTP 429 Too Many Requests errors and back off and retry the request.\nLimits apply per-user across all endpoints that share the same limit and across all docs.\n\nReading data (with the exceptions below): {{READ_RATE_LIMIT}}\nThis is rich text
DocumentCreationResult: x-schema-name: Doc description: The result of a doc creation. type: object required: - id - type - href - browserLink - name - owner - ownerName - createdAt - updatedAt - workspace - folder - workspaceId - folderId additionalProperties: false properties: id: type: string description: ID of the Coda doc. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the Coda doc. example: https://coda.io/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the Coda doc. example: https://coda.io/d/_dAbCDeFGH icon: $ref: '#/components/schemas/Icon' name: type: string description: Name of the doc. example: Product Launch Hub owner: type: string format: email description: Email address of the doc owner. example: user@example.com ownerName: type: string description: Name of the doc owner. example: Some User docSize: $ref: '#/components/schemas/DocSize' sourceDoc: allOf: - type: object description: Reference to a Coda doc from which this doc was copied, if any. additionalProperties: false - $ref: '#/components/schemas/DocReference' createdAt: type: string format: date-time description: Timestamp for when the doc was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the doc was last modified. example: '2018-04-11T00:18:57.946Z' published: $ref: '#/components/schemas/DocPublished' folder: $ref: '#/components/schemas/FolderReference' workspace: $ref: '#/components/schemas/WorkspaceReference' workspaceId: type: string description: ID of the Coda workspace containing this doc. example: ws-1Ab234 deprecated: true folderId: type: string description: ID of the Coda folder containing this doc. example: fl-1Ab234 deprecated: true requestId: type: string description: An arbitrary unique identifier for this request. example: abc-123-def-456 Doc: x-schema-name: Doc description: Metadata about a Coda doc. type: object required: - id - type - href - browserLink - name - owner - ownerName - createdAt - updatedAt - workspace - folder - workspaceId - folderId additionalProperties: false properties: id: type: string description: ID of the Coda doc. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the Coda doc. example: https://coda.io/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the Coda doc. example: https://coda.io/d/_dAbCDeFGH icon: $ref: '#/components/schemas/Icon' name: type: string description: Name of the doc. example: Product Launch Hub owner: type: string format: email description: Email address of the doc owner. example: user@example.com ownerName: type: string description: Name of the doc owner. example: Some User docSize: $ref: '#/components/schemas/DocSize' sourceDoc: allOf: - type: object description: Reference to a Coda doc from which this doc was copied, if any. additionalProperties: false - $ref: '#/components/schemas/DocReference' createdAt: type: string format: date-time description: Timestamp for when the doc was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the doc was last modified. example: '2018-04-11T00:18:57.946Z' published: $ref: '#/components/schemas/DocPublished' folder: $ref: '#/components/schemas/FolderReference' workspace: $ref: '#/components/schemas/WorkspaceReference' workspaceId: type: string description: ID of the Coda workspace containing this doc. example: ws-1Ab234 deprecated: true folderId: type: string description: ID of the Coda folder containing this doc. example: fl-1Ab234 deprecated: true PageContentFormat: x-schema-name: PageContentFormat description: Supported content types for page (canvas) content. type: string enum: - html - markdown x-tsEnumNames: - Html - Markdown WorkspaceReference: x-schema-name: WorkspaceReference description: Reference to a Coda workspace. type: object required: - id - type - browserLink additionalProperties: false properties: id: type: string description: ID of the Coda workspace. example: ws-1Ab234 type: type: string description: The type of this resource. enum: - workspace x-tsType: Type.Workspace organizationId: type: string description: ID of the organization bound to this workspace, if any. example: org-2Bc456 browserLink: type: string format: url description: Browser-friendly link to the Coda workspace. example: https://coda.io/docs?workspaceId=ws-1Ab234 name: type: string description: Name of the workspace; included if the user has access to the workspace. example: My workspace PageEmbedRenderMethod: x-schema-name: PageEmbedRenderMethod description: Render mode for a page using the Embed page type. type: string enum: - compatibility - standard x-tsEnumNames: - Compatibility - Standard nextPageToken: description: If specified, an opaque token used to fetch the next page of results. type: string example: eyJsaW1pd DocPublishMode: x-schema-name: DocPublishMode description: Which interaction mode the published doc should use. type: string enum: - view - play - edit x-tsEnumNames: - View - Play - Edit DocUpdateResult: x-schema-name: DocUpdate description: The result of a doc update type: object additionalProperties: false properties: {} DocCategory: x-schema-name: DocCategory type: object description: The category applied to a doc. required: - name additionalProperties: false properties: name: type: string description: Name of the category. example: Project Management Icon: x-schema-name: icon description: Info about the icon. type: object required: - name - type - browserLink additionalProperties: false properties: name: type: string description: Name of the icon. type: type: string description: MIME type of the icon browserLink: type: string format: url description: Browser-friendly link to an icon. example: https://cdn.coda.io/icons/png/color/icon-32.png DocPublished: x-schema-name: DocPublished description: Information about the publishing state of the document. type: object required: - browserLink - discoverable - earnCredit - mode - categories additionalProperties: false properties: description: type: string description: Description of the published doc. example: Hello World! browserLink: type: string description: URL to the published doc. example: https://coda.io/@coda/hello-world imageLink: type: string description: URL to the cover image for the published doc. discoverable: type: boolean description: If true, indicates that the doc is discoverable. example: true earnCredit: type: boolean description: 'If true, new users may be required to sign in to view content within this document. You will receive Coda credit for each user who signs up via your doc. ' example: true mode: $ref: '#/components/schemas/DocPublishMode' categories: type: array description: Categories applied to the doc. example: - Project Management items: $ref: '#/components/schemas/DocCategory' PageCreate: x-schema-name: PageCreate description: Payload for creating a new page in a doc. type: object additionalProperties: false properties: name: type: string description: Name of the page. example: Launch Status subtitle: type: string description: Subtitle of the page. example: See the status of launch-related tasks. iconName: type: string description: Name of the icon. example: rocket imageUrl: type: string description: Url of the cover image to use. example: https://example.com/image.jpg parentPageId: type: string description: The ID of this new page's parent, if creating a subpage. example: canvas-tuVwxYz pageContent: $ref: '#/components/schemas/PageCreateContent' DocList: x-schema-name: DocList description: List of Coda docs. type: object required: - items additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Doc' href: type: string format: url description: API link to these results example: https://coda.io/apis/v1/docs?limit=20 nextPageToken: $ref: '#/components/schemas/nextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/nextPageLink' - type: string example: https://coda.io/apis/v1/docs?pageToken=eyJsaW1pd DocSize: x-schema-name: DocSize description: The number of components within a Coda doc. type: object required: - totalRowCount - tableAndViewCount - pageCount - overApiSizeLimit additionalProperties: false properties: totalRowCount: type: number description: The number of rows contained within all tables of the doc. example: 31337 tableAndViewCount: type: number description: The total number of tables and views contained within the doc. example: 42 pageCount: type: number description: The total number of page contained within the doc. example: 10 overApiSizeLimit: type: boolean description: If true, indicates that the doc is over the API size limit. example: false DocCreate: x-schema-name: DocCreate description: Payload for creating a new doc. type: object additionalProperties: false properties: title: type: string description: Title of the new doc. Defaults to 'Untitled'. example: Project Tracker sourceDoc: type: string description: An optional doc ID from which to create a copy. example: iJKlm_noPq timezone: type: string description: The timezone to use for the newly created doc. example: America/Los_Angeles folderId: type: string description: 'The ID of the folder within which to create this doc. Defaults to your "My docs" folder in the oldest workspace you joined; this is subject to change. You can get this ID by opening the folder in the docs list on your computer and grabbing the `folderId` query parameter. ' example: fl-ABcdEFgHJi initialPage: allOf: - type: object description: The contents of the initial page of the doc. additionalProperties: false - $ref: '#/components/schemas/PageCreate' FolderReference: x-schema-name: FolderReference description: Reference to a Coda folder. type: object required: - id - type - browserLink additionalProperties: false properties: id: type: string description: ID of the Coda folder. example: fl-1Ab234 type: type: string description: The type of this resource. enum: - folder x-tsType: Type.Folder browserLink: type: string format: url description: Browser-friendly link to the folder. example: https://coda.io/folders/fl-1Ab234 name: type: string description: Name of the folder; included if the user has access to the folder. example: My docs DocDelete: x-schema-name: DocDelete description: The result of a doc deletion. type: object additionalProperties: false properties: {} nextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url PageCreateContent: x-schema-name: PageCreateContent description: Content that can be added to a page at creation time, either text (or rich text) or a URL to create a full-page embed. discriminator: propertyName: type oneOf: - type: object required: - type - canvasContent additionalProperties: false properties: type: type: string description: Indicates a page containing canvas content. enum: - canvas x-tsType: PageType.Canvas canvasContent: $ref: '#/components/schemas/PageContent' - type: object required: - type - url additionalProperties: false properties: type: type: string description: Indicates a page that embeds other content. enum: - embed x-tsType: PageType.Embed url: type: string description: The URL of the content to embed. example: https://example.com renderMethod: $ref: '#/components/schemas/PageEmbedRenderMethod' - discriminator: propertyName: mode oneOf: - type: object required: - type - mode - sourcePageId - includeSubpages - sourceDocId additionalProperties: false properties: type: type: string description: Indicates a page that embeds other Coda content. enum: - syncPage x-tsType: PageType.SyncPage mode: type: string description: Indicates a single-page sync page. enum: - page x-tsType: SyncPageType.Page includeSubpages: type: boolean description: Include subpages in the sync page. sourcePageId: type: string description: The page id to insert as a sync page. example: canvas-IjkLmnO sourceDocId: type: string description: The id of the document to insert as a sync page. example: sHbI4uIwiK - type: object required: - type - mode - sourceDocId additionalProperties: false properties: type: type: string description: Indicates a page that embeds other content. enum: - syncPage x-tsType: PageType.SyncPage mode: type: string description: Indicates a full doc sync page. enum: - document x-tsType: SyncPageType.Document sourceDocId: type: string description: The id of the document to insert as a sync page. example: sHbI4uIwiK DocReference: x-schema-name: DocReference description: Reference to a Coda doc. type: object required: - id - type - browserLink - href additionalProperties: false properties: id: type: string description: ID of the Coda doc. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the Coda doc. example: https://coda.io/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the Coda doc. example: https://coda.io/d/_dAbCDeFGH DocUpdate: x-schema-name: DocUpdate description: Payload for updating a doc. type: object additionalProperties: false properties: title: type: string description: Title of the doc. example: Project Tracker iconName: type: string description: Name of the icon. example: rocket responses: BadRequestError: description: The request parameters did not conform to expectations. content: application/json: schema: description: An HTTP error resulting from an unsuccessful request. required: - statusCode - statusMessage - message additionalProperties: false properties: statusCode: type: number description: HTTP status code of the error. example: 400 statusMessage: type: string description: HTTP status message of the error. example: Bad Request message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Bad Request NotFoundError: description: The resource could not be located with the current API token. content: application/json: schema: description: An HTTP error resulting from an unsuccessful request. required: - statusCode - statusMessage - message additionalProperties: false properties: statusCode: type: number description: HTTP status code of the error. example: 404 statusMessage: type: string description: HTTP status message of the error. example: Not Found message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Not Found ForbiddenError: description: The API token does not grant access to this resource. content: application/json: schema: description: An HTTP error resulting from an unsuccessful request. required: - statusCode - statusMessage - message additionalProperties: false properties: statusCode: type: number description: HTTP status code of the error. example: 403 statusMessage: type: string description: HTTP status message of the error. example: Forbidden message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Forbidden TooManyRequestsError: description: The client has sent too many requests. content: application/json: schema: description: An HTTP error resulting from an unsuccessful request. required: - statusCode - statusMessage - message additionalProperties: false properties: statusCode: type: number description: HTTP status code of the error. example: 429 statusMessage: type: string description: HTTP status message of the error. example: Too Many Requests message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Too Many Requests UnauthorizedError: description: The API token is invalid or has expired. content: application/json: schema: description: An HTTP error resulting from an unsuccessful request. required: - statusCode - statusMessage - message additionalProperties: false properties: statusCode: type: number description: HTTP status code of the error. example: 401 statusMessage: type: string description: HTTP status message of the error. example: Unauthorized message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Unauthorized parameters: docId: name: docId description: ID of the doc. in: path required: true example: AbCDeFGH schema: type: string limit: name: limit description: Maximum number of results to return in this query. in: query example: 10 schema: type: integer minimum: 1 default: 25 query: name: query description: Search term used to filter down results. in: query example: Supercalifragilisticexpialidocious schema: type: string pageToken: name: pageToken description: An opaque token used to fetch the next page of results. in: query example: eyJsaW1pd schema: type: string securitySchemes: Bearer: description: "The Coda API can be accessed using an API token, which can be obtained from [*My account*](https://coda.io/account)\nin Coda. This token should be specified by setting a header as follows.\n\n```Authorization: Bearer| Restriction | Description | Allowed HTTP Methods |
|---|---|---|
| Read access | \nAllows access to API methods that read the state of an object | \nGET | \n
| Write access | \nAllows access to API methods that write the state of an object | \nPOST, PUT, DELETE | \n
| Read and write access | \nAllows access to all methods for an object | \nAll | \n