### API Overview: Coda API Source: https://coda.io/apis/v1/openapi.json # Introduction The Coda API is a RESTful API that lets you programmatically interact with Coda docs: * List and search Coda docs * Create new docs and copy existing ones * Share and publish docs * Discover pages, tables, formulas, and controls * Read, insert, upsert, update, and delete rows If you plan to integrate Coda with an AI tool, you may also want to consider using the [Coda MCP server](https://coda.io/resources/guides/getting_started_with_coda_mcp). It's optimized for LLM usage patterns and often exposes more granular methods for accessing and modifying data. # Getting Started Our [Getting Started Guide](https://coda.io/@oleg/getting-started-guide-coda-api) helps you learn the basic of working with the API and shows a few ways you can use it. Check it out, and learn how to: - Read data from Coda tables and write back to them - Build a one-way sync from one Coda doc to another - Automate reminders - Sync your Google Calendar to Coda # Changes to the API As we update and release newer versions of the API, we reserve the right to remove older APIs and functionality with a 3-month deprecation notice. We will post about such changes as well as announce new features in the [Developers Central](https://community.coda.io/c/developers-central) section of our Community, and update the [API updates](https://coda.io/api-updates) doc. # Using the API Coda's REST API is designed to be straightforward to use. You can use the language and platform of your choice to make requests. To get a feel for the API, you can also use a tool like [Postman](https://www.getpostman.com/) or [Insomnia](https://insomnia.rest/). ## API Endpoint This API uses a base path of `https://coda.io/apis/v1`. ## Resource IDs and Links Each resource instance retrieved via the API has the following fields: - `id`: The resource's immutable ID, which can be used to refer to it within its context - `type`: The type of resource, useful for identifying it in a heterogenous collection of results - `href`: A fully qualified URI that can be used to refer to and get the latest details on the resource Most resources can be queried by their name or ID. We recommend sticking with IDs where possible, as names are fragile and prone to being changed by your doc's users. ### List Endpoints Endpoints supporting listing of resources have the following fields: - `items`: An array containing the listed resources, limited by the `limit` or `pageToken` query parameters - `nextPageLink`: If more results are available, an API link to the next page of results - `nextPageToken`: If more results are available, a page token that can be passed into the `pageToken` query parameter **The maximum page size may change at any time, and may be different for different endpoints.** Please do not rely on it for any behavior of your application. If you pass a `limit` parameter that is larger than our maximum allowed limit, we will only return as many results as our maximum limit. You should look for the presence of the `nextPageToken` on the response to see if there are more results available, rather than relying on a result set that matches your provided limit. To fetch a subsequent page of results, pass the `pageToken` parameter. Set this parameter to the value given to you as the `nextPageToken` in a page response. If no value is provided, there are no more results available. You only need to pass the `pageToken` to get the next page of results, you don't need to pass any of the parameters from your original request, as they are all implied by the `pageToken`. Any other parameters provided alongside a `pageToken` will be ignored. ### Doc IDs While most object IDs will have to be discovered via the API, you may find yourself frequently wanting to get the ID of a specific Coda doc. Here's a handy tool that will extract it for you. (See if you can find the pattern!)
Doc ID Extractor Your doc ID is:   
## Rate Limiting The Coda API sets a reasonable limit on the number of requests that can be made per minute. Once this limit is reached, calls to the API will start returning errors with an HTTP status code of 429. These are the current rate limits. They are subject to change at any time without notice. For robustness, all API scripts should check for HTTP 429 Too Many Requests errors and back off and retry the request. Limits apply per-user across all endpoints that share the same limit and across all docs. Reading data (with the exceptions below): {{READ_RATE_LIMIT}}
Writing data (POST/PUT/PATCH): {{WRITE_RATE_LIMIT}}
Writing doc content data (POST/PUT/PATCH): {{WRITE_DOC_CONTENT_RATE_LIMIT}}
Listing docs: {{LIST_DOCS_RATE_LIMIT}}
Reading analytics: {{ANALYTICS_RATE_LIMIT}} ## Consistency While edits made in Coda are shared with other collaborators in real-time, it can take a few seconds for them to become available via the API. You may also notice that changes made via the API, such as updating a row, are not immediate. These endpoints all return an HTTP 202 status code, instead of a standard 200, indicating that the edit has been accepted and queued for processing. This generally takes a few seconds, and the edit may fail if invalid. Each such edit will return a `requestId` in the response, and you can pass this `requestId` to the [`#getMutationStatus`](#operation/getMutationStatus) endpoint to find out if it has been applied. Similarly, when you get doc data from the API (rows, pages, columns, etc), the data you receive comes from the most recent "snapshot" of the doc, which might be slightly stale relative to the data you observe in your browser. If you want to ensure that the data you receive is up to date and are ok getting an error if not, you can pass this header in your request: `X-Coda-Doc-Version: latest`. If the API's view of the doc is not up to date, the API will return an HTTP 400 response. ## Volatile Formulas Coda exposes a number of "volatile" formulas, as as `Today()`, `Now()`, and `User()`. When used in a live Coda doc, these formulas affect what's visible in realtime, tailored to the current user. Such formulas behave differently with the API. Time-based values may only be current to the last edit made to the doc. User-based values may be blank or invalid. ## Free and Paid Workspaces We make the Coda API available to all of our users free of charge, in both free and paid workspaces. However, API usage is subject to the role of the user associated with the API token in the workspace applicable to each API request. What this means is: - For the [`#createDoc`](#operation/createDoc) endpoint specifically, the owner of the API token must be a Doc Maker (or Admin) in the workspace. If the "Any member can create docs" option in enabled in the workspace settings, they can be an Editor and will get auto-promoted to Doc Maker upon using this endpoint. Lastly, if in addition, the API key owner matches the "Auto-join email domains" setting, they will be auto-added to the workspace and promoted to Doc Maker upon using this endpoint This behavior applies to the API as well as any integrations that may use it, such as Zapier. ## Examples To help you get started, this documentation provides code examples in Python, Unix shell, and Google Apps Script. These examples are based on a simple doc that looks something like this: ![](https://cdn.coda.io/external/img/api_example_doc.png) ### Python examples These examples use Python 3.6+. If you don't already have the `requests` module, use `pip` or `easy_install` to get it. ### Shell examples The shell examples are intended to be run in a Unix shell. If you're on Windows, you will need to install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10). These examples use the standard cURL utility to pull from the API, and then process it with `jq` to extract and format example output. If you don't already have it, you can either [install it](https://stedolan.github.io/jq/) or run the command without it to see the raw JSON output. ### Google Apps Script examples ![](https://cdn.coda.io/external/img/api_gas.png) [Google Apps Script](https://script.google.com/) makes it easy to write code in a JavaScript-like syntax and easily access many Google products with built-in libraries. You can set up your scripts to run periodically, which makes it a good environment for writing tools without maintaining your own server. Coda provides a library for Google Apps Script. To use it, go into `Resources -> Libraries...` and enter the following library ID: `15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl`. If you want to see the library's source code, it's available [here](https://script.google.com/d/15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl/edit). Google provides autocomplete for API functions as well as generated docs. You can access these docs via the Libraries dialog by clicking on the library name. Required parameters that would be included in the URL path are positional arguments in each of these functions, followed by the request body, if applicable. All remaining parameters can be specified in the options object. ## OpenAPI/Swagger Spec In an effort to standardize our API and make it accessible, we offer an OpenAPI 3.0 specification: - [OpenAPI 3.0 spec - YAML](https://coda.io/apis/v1/openapi.yaml) - [OpenAPI 3.0 spec - JSON](https://coda.io/apis/v1/openapi.json) #### Postman collection To get started with prototyping the API quickly in Postman, you can use one of links above to import the Coda API into a collection. You'll then need to set the [appropriate header](#section/Authentication) and environment variables. ## Client libraries We do not currently support client libraries apart from Google Apps Script. To work with the Coda API, you can either use standard network libraries for your language, or use the appropriate Swagger Generator tool to auto-generate Coda API client libraries for your language of choice. We do not provide any guarantees that these autogenerated libraries are compatible with our API (e.g., some libraries may not work with Bearer authentication). ### OpenAPI 3.0 [Swagger Generator 3](https://generator3.swagger.io/) (that link takes you to the docs for the generator API) can generate client libraries for [these languages](https://generator3.swagger.io/v2/clients). It's relatively new and thus only has support for a limited set of languages at this time. ### Third-party client libraries Some members of our amazing community have written libraries to work with our API. These aren't officially supported by Coda, but are listed here for convenience. (Please let us know if you've written a library and would like to have it included here.) - [PHP](https://github.com/danielstieber/CodaPHP) by Daniel Stieber - [Node-RED](https://github.com/serene-water/node-red-contrib-coda-io) by Mori Sugimoto - [NodeJS](https://www.npmjs.com/package/coda-js) by Parker McMullin - [Ruby](https://rubygems.org/gems/coda_docs/) by Carlos Muñoz at Getro - [Python](https://github.com/Blasterai/codaio) by Mikhail Beliansky - [Go](https://github.com/artsafin/coda-schema-generator) by Artur Safin ```yaml # Coda API # Version: 1.5.0 # Introduction The Coda API is a RESTful API that lets you programmatically interact with Coda docs: * List and search Coda docs * Create new docs and copy existing ones * Share and publish docs * Discover pages, tables, formulas, and controls * Read, insert, upsert, update, and delete rows If you plan to integrate Coda with an AI tool, you may also want to consider using the [Coda MCP server](https://coda.io/resources/guides/getting_started_with_coda_mcp). It's optimized for LLM usage patterns and often exposes more granular methods for accessing and modifying data. # Getting Started Our [Getting Started Guide](https://coda.io/@oleg/getting-started-guide-coda-api) helps you learn the basic of working with the API and shows a few ways you can use it. Check it out, and learn how to: - Read data from Coda tables and write back to them - Build a one-way sync from one Coda doc to another - Automate reminders - Sync your Google Calendar to Coda # Changes to the API As we update and release newer versions of the API, we reserve the right to remove older APIs and functionality with a 3-month deprecation notice. We will post about such changes as well as announce new features in the [Developers Central](https://community.coda.io/c/developers-central) section of our Community, and update the [API updates](https://coda.io/api-updates) doc. # Using the API Coda's REST API is designed to be straightforward to use. You can use the language and platform of your choice to make requests. To get a feel for the API, you can also use a tool like [Postman](https://www.getpostman.com/) or [Insomnia](https://insomnia.rest/). ## API Endpoint This API uses a base path of `https://coda.io/apis/v1`. ## Resource IDs and Links Each resource instance retrieved via the API has the following fields: - `id`: The resource's immutable ID, which can be used to refer to it within its context - `type`: The type of resource, useful for identifying it in a heterogenous collection of results - `href`: A fully qualified URI that can be used to refer to and get the latest details on the resource Most resources can be queried by their name or ID. We recommend sticking with IDs where possible, as names are fragile and prone to being changed by your doc's users. ### List Endpoints Endpoints supporting listing of resources have the following fields: - `items`: An array containing the listed resources, limited by the `limit` or `pageToken` query parameters - `nextPageLink`: If more results are available, an API link to the next page of results - `nextPageToken`: If more results are available, a page token that can be passed into the `pageToken` query parameter **The maximum page size may change at any time, and may be different for different endpoints.** Please do not rely on it for any behavior of your application. If you pass a `limit` parameter that is larger than our maximum allowed limit, we will only return as many results as our maximum limit. You should look for the presence of the `nextPageToken` on the response to see if there are more results available, rather than relying on a result set that matches your provided limit. To fetch a subsequent page of results, pass the `pageToken` parameter. Set this parameter to the value given to you as the `nextPageToken` in a page response. If no value is provided, there are no more results available. You only need to pass the `pageToken` to get the next page of results, you don't need to pass any of the parameters from your original request, as they are all implied by the `pageToken`. Any other parameters provided alongside a `pageToken` will be ignored. ### Doc IDs While most object IDs will have to be discovered via the API, you may find yourself frequently wanting to get the ID of a specific Coda doc. Here's a handy tool that will extract it for you. (See if you can find the pattern!)
Doc ID Extractor Your doc ID is:   
## Rate Limiting The Coda API sets a reasonable limit on the number of requests that can be made per minute. Once this limit is reached, calls to the API will start returning errors with an HTTP status code of 429. These are the current rate limits. They are subject to change at any time without notice. For robustness, all API scripts should check for HTTP 429 Too Many Requests errors and back off and retry the request. Limits apply per-user across all endpoints that share the same limit and across all docs. Reading data (with the exceptions below): {{READ_RATE_LIMIT}}
Writing data (POST/PUT/PATCH): {{WRITE_RATE_LIMIT}}
Writing doc content data (POST/PUT/PATCH): {{WRITE_DOC_CONTENT_RATE_LIMIT}}
Listing docs: {{LIST_DOCS_RATE_LIMIT}}
Reading analytics: {{ANALYTICS_RATE_LIMIT}} ## Consistency While edits made in Coda are shared with other collaborators in real-time, it can take a few seconds for them to become available via the API. You may also notice that changes made via the API, such as updating a row, are not immediate. These endpoints all return an HTTP 202 status code, instead of a standard 200, indicating that the edit has been accepted and queued for processing. This generally takes a few seconds, and the edit may fail if invalid. Each such edit will return a `requestId` in the response, and you can pass this `requestId` to the [`#getMutationStatus`](#operation/getMutationStatus) endpoint to find out if it has been applied. Similarly, when you get doc data from the API (rows, pages, columns, etc), the data you receive comes from the most recent "snapshot" of the doc, which might be slightly stale relative to the data you observe in your browser. If you want to ensure that the data you receive is up to date and are ok getting an error if not, you can pass this header in your request: `X-Coda-Doc-Version: latest`. If the API's view of the doc is not up to date, the API will return an HTTP 400 response. ## Volatile Formulas Coda exposes a number of "volatile" formulas, as as `Today()`, `Now()`, and `User()`. When used in a live Coda doc, these formulas affect what's visible in realtime, tailored to the current user. Such formulas behave differently with the API. Time-based values may only be current to the last edit made to the doc. User-based values may be blank or invalid. ## Free and Paid Workspaces We make the Coda API available to all of our users free of charge, in both free and paid workspaces. However, API usage is subject to the role of the user associated with the API token in the workspace applicable to each API request. What this means is: - For the [`#createDoc`](#operation/createDoc) endpoint specifically, the owner of the API token must be a Doc Maker (or Admin) in the workspace. If the "Any member can create docs" option in enabled in the workspace settings, they can be an Editor and will get auto-promoted to Doc Maker upon using this endpoint. Lastly, if in addition, the API key owner matches the "Auto-join email domains" setting, they will be auto-added to the workspace and promoted to Doc Maker upon using this endpoint This behavior applies to the API as well as any integrations that may use it, such as Zapier. ## Examples To help you get started, this documentation provides code examples in Python, Unix shell, and Google Apps Script. These examples are based on a simple doc that looks something like this: ![](https://cdn.coda.io/external/img/api_example_doc.png) ### Python examples These examples use Python 3.6+. If you don't already have the `requests` module, use `pip` or `easy_install` to get it. ### Shell examples The shell examples are intended to be run in a Unix shell. If you're on Windows, you will need to install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10). These examples use the standard cURL utility to pull from the API, and then process it with `jq` to extract and format example output. If you don't already have it, you can either [install it](https://stedolan.github.io/jq/) or run the command without it to see the raw JSON output. ### Google Apps Script examples ![](https://cdn.coda.io/external/img/api_gas.png) [Google Apps Script](https://script.google.com/) makes it easy to write code in a JavaScript-like syntax and easily access many Google products with built-in libraries. You can set up your scripts to run periodically, which makes it a good environment for writing tools without maintaining your own server. Coda provides a library for Google Apps Script. To use it, go into `Resources -> Libraries...` and enter the following library ID: `15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl`. If you want to see the library's source code, it's available [here](https://script.google.com/d/15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl/edit). Google provides autocomplete for API functions as well as generated docs. You can access these docs via the Libraries dialog by clicking on the library name. Required parameters that would be included in the URL path are positional arguments in each of these functions, followed by the request body, if applicable. All remaining parameters can be specified in the options object. ## OpenAPI/Swagger Spec In an effort to standardize our API and make it accessible, we offer an OpenAPI 3.0 specification: - [OpenAPI 3.0 spec - YAML](https://coda.io/apis/v1/openapi.yaml) - [OpenAPI 3.0 spec - JSON](https://coda.io/apis/v1/openapi.json) #### Postman collection To get started with prototyping the API quickly in Postman, you can use one of links above to import the Coda API into a collection. You'll then need to set the [appropriate header](#section/Authentication) and environment variables. ## Client libraries We do not currently support client libraries apart from Google Apps Script. To work with the Coda API, you can either use standard network libraries for your language, or use the appropriate Swagger Generator tool to auto-generate Coda API client libraries for your language of choice. We do not provide any guarantees that these autogenerated libraries are compatible with our API (e.g., some libraries may not work with Bearer authentication). ### OpenAPI 3.0 [Swagger Generator 3](https://generator3.swagger.io/) (that link takes you to the docs for the generator API) can generate client libraries for [these languages](https://generator3.swagger.io/v2/clients). It's relatively new and thus only has support for a limited set of languages at this time. ### Third-party client libraries Some members of our amazing community have written libraries to work with our API. These aren't officially supported by Coda, but are listed here for convenience. (Please let us know if you've written a library and would like to have it included here.) - [PHP](https://github.com/danielstieber/CodaPHP) by Daniel Stieber - [Node-RED](https://github.com/serene-water/node-red-contrib-coda-io) by Mori Sugimoto - [NodeJS](https://www.npmjs.com/package/coda-js) by Parker McMullin - [Ruby](https://rubygems.org/gems/coda_docs/) by Carlos Muñoz at Getro - [Python](https://github.com/Blasterai/codaio) by Mikhail Beliansky - [Go](https://github.com/artsafin/coda-schema-generator) by Artur Safin # Base URL: https://coda.io/apis/v1 ``` -------------------------------- ### GET /categories Source: https://coda.io/apis/v1/openapi.json Gets all available doc categories. ```markdown ### Responses #### 200 - List of doc categories **DocCategoryList** - **items** (array (DocCategory)) (required): Categories for the doc. Array items: - **name** (string) (required): Name of the category. (example: "Project Management") #### 401 - response #### 404 - response #### 429 - response ### Example Usage ```bash curl -X GET "https://coda.io/apis/v1/categories" ``` ``` -------------------------------- ### GET /folders Source: https://coda.io/apis/v1/openapi.json Returns a list of folders the user has access to. ```markdown ### Parameters - **workspaceId** (string, query, optional): Show only folders belonging to the given workspace. - **isStarred** (boolean, query, optional): If true, returns folders that are starred. If false, returns folders that are not starred. If not specified, returns all folders. - **limit** (integer, query, optional): Maximum number of results to return in this query. - **pageToken** (string, query, optional): An opaque token used to fetch the next page of results. ### Responses #### 200 - List of folders. **FolderList** - **items** (array (Folder)) (required) Array items: - **id** (string) (required): ID of the Coda folder. (example: "fl-1Ab234") - **type** (string (folder)) (required): The type of this resource. ("folder") - **name** (string) (required): The name of the folder. (example: "Projects") - **browserLink** (string (url)) (required): Browser-friendly link to the folder. (example: "https://coda.io/folders/fl-1Ab234") - **description** (string): The description of the folder. (example: "A collection of project docs.") - **icon** (object): Info about the icon. - **name** (string) (required): Name of the icon. - **type** (string) (required): MIME type of the icon - **browserLink** (string (url)) (required): Browser-friendly link to an icon. (example: "https://cdn.coda.io/icons/png/color/icon-32.png") - **createdAt** (string (date-time)): Timestamp for when the folder was created. (example: "2018-04-11T00:18:57.946Z") - **canEdit** (boolean): Whether the folder settings can be edited. E.g., some folder types (like personal folders - "My Docs") cannot be edited. (example: true) - **workspace** (object) (required): Reference to a Coda workspace. - **id** (string) (required): ID of the Coda workspace. (example: "ws-1Ab234") - **type** (string (workspace)) (required): The type of this resource. ("workspace") - **organizationId** (string): ID of the organization bound to this workspace, if any. (example: "org-2Bc456") - **browserLink** (string (url)) (required): Browser-friendly link to the Coda workspace. (example: "https://coda.io/docs?workspaceId=ws-1Ab234") - **name** (string): Name of the workspace; included if the user has access to the workspace. (example: "My workspace") - **href** (string (url)): API link to these results. (example: "https://coda.io/apis/v1/folders?workspaceId=ws-1Ab234") - **nextPageToken** (string): If specified, an opaque token used to fetch the next page of results. (example: "eyJsaW1pd") - **nextPageLink** (string (url)): If specified, a link that can be used to fetch the next page of results. (example: "https://coda.io/apis/v1/folders?pageToken=xyz") #### 400 - response #### 401 - response #### 403 - response #### 429 - response ### Example Usage ```bash curl -X GET "https://coda.io/apis/v1/folders?workspaceId=string&isStarred=true&limit=25&pageToken=string" ``` ``` -------------------------------- ### GET /docs/{docId}/controls/{controlIdOrName} Source: https://coda.io/apis/v1/openapi.json Returns info on a control. ```markdown ### Parameters - **docId** (string, path, required): ID of the doc. - **controlIdOrName** (string, path, required): ID or name of the control. Names are discouraged because they're easily prone to being changed by users. If you're using a name, be sure to URI-encode it. ### Responses #### 200 - Details about a control. **Control** - **id** (string) (required): ID of the control. (example: "ctrl-cDefGhij") - **type** (string (control)) (required): The type of this resource. ("control") - **href** (string (url)) (required): API link to the control. (example: "https://coda.io/apis/v1/docs/AbCDeFGH/controls/ctrl-cDefGhij") - **name** (string) (required): Name of the control. (example: "Cost") - **parent** (object): Reference to a page. - **id** (string) (required): ID of the page. (example: "canvas-IjkLmnO") - **type** (string (page)) (required): The type of this resource. ("page") - **href** (string (url)) (required): API link to the page. (example: "https://coda.io/apis/v1/docs/AbCDeFGH/pages/canvas-IjkLmnO") - **browserLink** (string (url)) (required): Browser-friendly link to the page. (example: "https://coda.io/d/_dAbCDeFGH/Launch-Status_sumnO") - **name** (string) (required): Name of the page. (example: "Launch Status") - **controlType** (string (aiBlock|button|checkbox|datePicker|dateRangePicker|dateTimePicker|lookup|multiselect|select|scale|slider|reaction|textbox|timePicker)) (required): Type of the control. (example: "slider") ("aiBlock"|"button"|"checkbox"|"datePicker"|"dateRangePicker"|"dateTimePicker"|"lookup"|"multiselect"|"select"|"scale"|"slider"|"reaction"|"textbox"|"timePicker") - **value** (string) (required) (example: "$12.34") #### 401 - response #### 403 - response #### 404 - response #### 429 - response ### Example Usage ```bash curl -X GET "https://coda.io/apis/v1/docs/{docId}/controls/{controlIdOrName}" ``` ``` -------------------------------- ### Schema: AclSettings Source: https://coda.io/apis/v1/openapi.json Sharing settings for the doc. ```markdown ## Schema: AclSettings Sharing settings for the doc. **Type:** object - **allowEditorsToChangePermissions** (boolean) (required): When true, allows editors to change doc permissions. When false, only doc owner can change doc permissions. - **allowCopying** (boolean) (required): When true, allows doc viewers to copy the doc. - **allowViewersToRequestEditing** (boolean) (required): When true, allows doc viewers to request editing permissions. ``` -------------------------------- ### GET /packs Source: https://coda.io/apis/v1/openapi.json Get the list of accessible Packs. ```markdown ### Parameters - **accessType** (PackAccessType, query, optional): Deprecated, use accessTypes instead. Filter to only return the Packs for which the current user has this access type - **accessTypes** (array (PackAccessType), query, optional): Filter to only return the Packs for which the current user has these access types. - **sortBy** (PacksSortBy, query, optional): The sort order of the Packs returned. - **limit** (integer, query, optional): Maximum number of results to return in this query. - **direction** (SortDirection, query, optional): Direction to sort results in. - **pageToken** (string, query, optional): An opaque token used to fetch the next page of results. - **onlyWorkspaceId** (string, query, optional): Use only this workspace (not all of a user's workspaces) to check for Packs shared via workspace ACL. - **parentWorkspaceIds** (array (string), query, optional): Filter to only Packs whose parent workspace is one of the given IDs. - **excludePublicPacks** (boolean, query, optional): Only get Packs shared with users/workspaces, not publicly. - **excludeIndividualAcls** (boolean, query, optional): Do not include Packs that are only shared with the user individually. - **excludeWorkspaceAcls** (boolean, query, optional): Do not include Packs that are only shared with workspaces. - **excludeNomosOrganizationAcls** (boolean, query, optional): Do not include Packs that are only shared with the user's NOMOS organization. - **excludeGrammarlyInstitutionAcls** (boolean, query, optional): Do not include Packs that are only shared with the user's Grammarly institution. - **packEntrypoint** (PackEntrypoint, query, optional): Entrypoint for which this pack call is being made. Used to filter non relevant packs ### Responses #### 200 - List of Pack summaries. **PackSummaryList** - **items** (array (PackSummary)) (required) Array items: - **id** (number) (required): ID of the Pack. (example: 1003) - **logoUrl** (string (url)): The link to the logo of the Pack. - **coverUrl** (string (url)): The link to the cover photo of the Pack. - **exampleImages** (array (PackImageFile)): The example images for the Pack. Array items: - **filename** (string) (required): The name of the image file. - **imageUrl** (string (url)) (required): The URL to the image file. - **assetId** (string) (required): The asset id of the Pack's image. - **altText** (string): The alt text for the image. - **mimeType** (string): The media type of the image. (example: "image/jpeg") - **agentImages** (array (PackImageFile)): The agent images for the Pack. Array items: - **workspaceId** (string) (required): The parent workspace for the Pack. (example: "ws-asdf") - **categories** (array (PublishingCategory)) (required): Publishing categories associated with this Pack. Array items: - **categoryId** (string) (required): The ID for this category. (example: "aBCdEFg") - **categoryName** (string) (required): The name of the category. (example: "Project management") - **categorySlug** (string): The URL identifier of the category. (example: "project-management") - **certified** (boolean): Denotes if the pack is certified by Coda. - **certifiedAgent** (boolean): Denotes if the pack is certified by Grammarly to be optimized for agent usage. - **sourceCodeVisibility** (string (private|shared)): Visibility of a pack's source code. ("private"|"shared") - **packEntrypoints** (array (PackEntrypoint)): Pack entrypoints where this pack is available - **verifiedVersion** (string): The latest released pack version that has been verified (approved) for use. For agent packs, this is the most recent release that passed review. For non-agent packs or legacy releases, this is the most recent release. (example: "1.0.0") - **name** (string) (required): The name of the Pack. (example: "Cool Geometry Formulas") - **description** (string) (required): The full description of the Pack. (example: "This Pack allows users to calculate the surface area and volume of a few common 3D shapes, like cubes and pyramids.") - **shortDescription** (string) (required): A short version of the description of the Pack. (example: "Calculate cool geometric formulas like surface area.") - **agentShortDescription** (string): A short description for the pack as an agent. (example: "Chat with a tool that can calculate cool geometric formulas like surface area.") - **agentDescription** (string): A full description for the pack as an agent. (example: "Chat with a comprehensive tool that can calculate cool geometric formulas like surface area, volume, and other mathematical operations. This agent can help with complex calculations and provide detailed explanations.") - **supportEmail** (string): A contact email for the Pack. (example: "user@email.com") - **termsOfServiceUrl** (string (url)): A Terms of Service URL for the Pack. - **privacyPolicyUrl** (string (url)): A Privacy Policy URL for the Pack. - **nextPageToken** (string): If specified, an opaque token used to fetch the next page of results. (example: "eyJsaW1pd") - **nextPageLink** (string (url)): If specified, a link that can be used to fetch the next page of results. (example: "https://coda.io/apis/v1/packs?pageToken=xyz") #### 400 - response #### 401 - response #### 429 - response ### Example Usage ```bash curl -X GET "https://coda.io/apis/v1/packs?accessType=value&accessTypes=item1,item2&sortBy=value&limit=25&direction=value&pageToken=string&onlyWorkspaceId=string&parentWorkspaceIds=item1,item2&excludePublicPacks=true&excludeIndividualAcls=true&excludeWorkspaceAcls=true&excludeNomosOrganizationAcls=true&excludeGrammarlyInstitutionAcls=true&packEntrypoint=value" ``` ``` -------------------------------- ### Schema: MakerSummary Source: https://coda.io/apis/v1/openapi.json Summary about a maker ```markdown ## Schema: MakerSummary Summary about a maker **Type:** object - **name** (string) (required): Name of the maker. (example: "John Doe") - **pictureLink** (string (url)): Browser-friendly link to the maker's avatar image. (example: "https://cdn.coda.io/avatars/default_avatar.png") - **slug** (string): Maker profile identifier for the maker. - **jobTitle** (string): Job title for maker. - **employer** (string): Employer for maker. - **description** (string): Description for the maker. ``` -------------------------------- ### POST /folders Source: https://coda.io/apis/v1/openapi.json Creates a new folder. ```markdown ### Request Body **Content-Type:** application/json - **name** (string) (required): Name of the folder. (example: "Projects") - **workspaceId** (string) (required): ID of the workspace where the folder should be created. (example: "ws-1Ab234") - **description** (string): Description of the folder. (example: "A collection of project docs.") ### Responses #### 201 - The created folder. **Folder** - **id** (string) (required): ID of the Coda folder. (example: "fl-1Ab234") - **type** (string (folder)) (required): The type of this resource. ("folder") - **name** (string) (required): The name of the folder. (example: "Projects") - **browserLink** (string (url)) (required): Browser-friendly link to the folder. (example: "https://coda.io/folders/fl-1Ab234") - **description** (string): The description of the folder. (example: "A collection of project docs.") - **icon** (object): Info about the icon. - **name** (string) (required): Name of the icon. - **type** (string) (required): MIME type of the icon - **browserLink** (string (url)) (required): Browser-friendly link to an icon. (example: "https://cdn.coda.io/icons/png/color/icon-32.png") - **createdAt** (string (date-time)): Timestamp for when the folder was created. (example: "2018-04-11T00:18:57.946Z") - **canEdit** (boolean): Whether the folder settings can be edited. E.g., some folder types (like personal folders - "My Docs") cannot be edited. (example: true) - **workspace** (object) (required): Reference to a Coda workspace. - **id** (string) (required): ID of the Coda workspace. (example: "ws-1Ab234") - **type** (string (workspace)) (required): The type of this resource. ("workspace") - **organizationId** (string): ID of the organization bound to this workspace, if any. (example: "org-2Bc456") - **browserLink** (string (url)) (required): Browser-friendly link to the Coda workspace. (example: "https://coda.io/docs?workspaceId=ws-1Ab234") - **name** (string): Name of the workspace; included if the user has access to the workspace. (example: "My workspace") #### 400 - response #### 401 - response #### 403 - response #### 429 - response ### Example Usage ```bash curl -X POST "https://coda.io/apis/v1/folders" \ -H "Content-Type: application/json" \ -d '{ "name": "Projects", "workspaceId": "ws-1Ab234", "description": "A collection of project docs." }' ``` ```