Grist API#

Grist has an API for manipulating documents, workspaces, and team sites. To access this API, you’ll need an API key. An API key is owned by a single user, and has the same permissions as that user. To enable API access for yourself, click on the circle with your profile picture or initial on the top right of the screen. Then select the “Profile Settings” option.


This shows a dialog with an “API key” section.


Click on the “Create” button to create an api key.


You can now copy this key for use when making API calls. To be clear, copy the key you get when clicking “Create”, not the key in the above screenshot, which isn’t a real one. You can revoke your API key by clicking “Remove” from Profile Settings at any time. You’ll then have the option to create a new one if you wish.

To test your api key, try this from the command-line (substituting your api key):

curl -H "Authorization: Bearer <API-KEY-GOES HERE>"

This should return a list of organizations, which is what the API calls team sites and your personal site. Your personal site is accessible at Team sites are accessible at <TEAM>

To access documents on your personal site via the API, simply continue using the domain. To access documents and workspaces on a team site, use <TEAM>

For example, to list all the workspaces and documents you have access to on a site, do:

curl -H "Authorization: Bearer <API-KEY-GOES-HERE>" \

When making changes via the API, and passing data via the request body, be sure to set the Content-Type header to application/json. For example, to change the name of a document, you could do:

curl -XPATCH \
  -H "Authorization: Bearer <API-KEY-GOES-HERE>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lesson Plans"}' \

For details of the endpoints available, see our API docs.

There are also client libraries available: