API Connector Documentation
Import Monday Data to Google Sheets
In this guide, we’ll walk through how to pull data from the Monday API directly into Google Sheets, using the API Connector add-on for Sheets.
We'll first get an API token from Monday, and then set up a request to pull in data from Monday to your spreadsheet.
Contents
- Before You Begin
- Part 1: Get Monday API Token
- Part 2: Get Monday Board ID
- Part 3: Pull Monday API Data into Sheets
- Part 4: API Documentation
Before You Begin
Click here to install the API Connector add-on from the Google Marketplace.
Part 1: Get Your Monday API Token
- Log in to Monday and click the avatar menu > Developers from the right hand corner
- From the Developers page, click My access tokens
- There should be a token waiting for you, or you can click Regenerate. Copy and keep it handy as you'll need it in a moment. Congrats! You're now ready to use the Monday API.
Part 2: Get your Monday Board ID
Many queries will require that you include your board ID, so let's get that now. While logged into Monday, navigate to your board. The board ID will be shown in the URL bar.
Part 3: Pull Monday API Data into Sheets
We'll now get the items from the board. Substitute in your own board ID where it says your_board_id
, and your own API token where it says your_api_token
- Open up Google Sheets and click Extensions > API Connector > Open > Create request.
- In the request form enter the following:
- Application:
Custom
- Method:
POST
- Request URL:
https://api.monday.com/v2
- Headers:
Authorization
:your_api_token
API-Version
:2024-01
- Request body:
{"query":"{boards(ids:your_board_id){items_page (limit: 500) {cursor items { id name }}}}"}
- Application:
- Create a new tab and click Set current to use that tab as your data destination.
- Under output options, set the Report style to Grid.
- Name your request and click Run. A moment later you’ll see tasks from your board populate your sheet.
Variation
If you would like to fetch the item details on the board as well, change the request body to {"query": "{ boards(ids: your_board_id) { items_page(limit: 500) { cursor items { id name column_values { id text value } } } } }"}
Monday's API doesn't send item data back in a format that works well with Sheets, so let's clean it up a bit. Still under Output options, enable the Flatten field to header option with these settings:
- Path to header:
data.boards.items_page.items.column_values.id
- Path to value:
data.boards.items_page.items.column_values.text
Note
The Monday API is a GraphQL API. This means the request URL always stays the same, while the data response is defined via the request body. Check the API documentation for the full list of available data points.
Part 4: API Documentation
Official API documentation: https://developer.monday.com/api-reference/docs/basics
Hi, I'm having trouble getting this request to work. I am receiving the following error: Field 'items' doesn't exist on type 'Board'
Do you have any recommendations? It has worked in the past. Thanks in advance!
Hi Ryan, this comment says you need to add a request Header where the key =
API-Version
and the value =2023-10
. Can you please check if that resolves the issue?Hi Ana,
Thank you for your response. So, I did forget to add in the API-Version initially, but even after adding it in, I still was unable to complete the request. I regenerated my API token as well just in case and double checked my board id.
It looks like I had changed terminology on my original board from "items" to "features", so I tried to revert the existing board to "items" and also created a new board using "items" and I am still receiving the error.
Sorry, you're right, they made more significant changes to their API than I previously noted. I've just tested and updated the article, please see the revised request example above.