The monday API is a GraphQL API with one endpoint, https://api.monday.com/v2, and every query and mutation is sent to it as a POST request with a JSON body. You put your access token in the Authorization header, your GraphQL in a query key, and you can call a specific API version with the API-Version header.
Here's the detail that saves you a bug later. Many newer fields only exist in recent API versions, such as the 2026-04, 2026-07 and 2026-10 releases, and monday's own getting started example still pins version 2023-07. If a field from the reference comes back as unknown, check the version header before you check your code.
Set up your account and Developer mode
Start with a monday.com account. For building and testing apps or API integrations, monday recommends a developer account. Then switch on Developer mode, which exposes the template IDs, column IDs and doc IDs that many API methods need:
- Click your profile picture in the top-right corner of your monday account.
- Type Developer mode in the search bar.
- Click Activate and close the modal.
- Wait for the page to refresh, then refresh again and reopen your profile menu.
Next, you authenticate with an access token. Your apps need one too, and monday's authentication docs cover how they should get it. You can explore the full GraphQL schema in monday's API playground before you write anything.
The request rules for the monday API
| Rule | What to send |
|---|---|
| Method | POST, with a JSON-formatted body |
| Authorization header | Your access token |
| query key | Every query and mutation goes in the query key of the JSON body |
| variables key | Optional variables for your query |
| API-Version header | The API version you want to call |
| Content-Type header | application/json |
Unlike a REST API, there's no separate URL for boards, items or users. Everything goes to the same endpoint, and the query decides what comes back.
Your first request: read a board's name
This is monday's own cURL example, with your token and board ID swapped in:
curl --location 'https://api.monday.com/v2/' --header 'Authorization:YOUR_API_KEY_HERE' --header 'API-Version: 2023-07' --header 'Content-Type: application/json' --data '{"query":"query { boards (ids: 1234567890) {name}}"}'
If it works, you get JSON back with a data object holding the board's name, which in monday's example is My Amazing CRM Board. The same request works in any language that can make a POST request, and monday also publishes an official JavaScript API client.
Querying boards: arguments and useful fields
Reading boards needs the boards:read scope. The boards query returns metadata about one or many boards, and you can run it at the root or nested inside another query, such as items.
| Argument | What it does |
|---|---|
| ids | Returns specific boards by ID |
| limit | How many boards to return. The default is 25 |
| page | Which page of results to return, starting at 1 |
| state | Board state. The default is active |
| workspace_ids | Only boards in those workspaces |
| board_kind | Filters by board type |
| order_by | Sort order, such as by creation date |
| hierarchy_type | Classic or multi-level. Leave it out and you only get classic boards, unless you pass IDs |
That last one catches people: multi-level boards won't show in a plain boards query unless you ask for them. Useful fields to request include id, name, url, columns, groups, items_count, items_page for the items themselves, owners and updated_at. A workspace of null means the board is in the Main workspace, and the owner field is deprecated in favour of owners.
Creating and changing boards
Writing needs the boards:write scope. The create_board mutation needs a board_name and a board_kind, and it has its own extra limit of 40 mutations per minute, so space out bulk board creation. The person who creates the board is added as an owner automatically. From version 2026-04, a prompt argument lets AI generate the board's columns, groups and items.
Other board mutations cover duplicating a board with its structure, items or updates, updating attributes such as the description, archiving and deleting. Role updates handle up to 50 teams or 200 users per call, and only for people already subscribed to the board. Setting a board's default permissions only works for board owners on an Enterprise plan.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Exporting a board to CSV
Board export needs API version 2026-10 or later and is only available on Enterprise plans, as of October 2026. Other accounts get a FORBIDDEN_EXCEPTION error. The create_board_export mutation returns one of two types: ExportFile with a download_url when it finishes straight away, or ExportAsyncJob with a job_id you poll using export_job_status. Which one you get depends on board size and server load, so monday says a client that selects only one branch will break.
Three more traps from the reference. A null from export_job_status doesn't mean the job failed; it's also what you get for an ID from another account. The download_url expires, can't be refreshed and works for anyone who has it, so treat it as a secret. And columns_order selects columns as well as ordering them, so any column you don't list is left out of the file.
My verdict on the monday API
I'd start in the API playground with Developer mode on, get a single boards query working with an explicit API-Version header, and only then build anything bigger. Pin the version you tested against, and read the version note on every field you use. If you're still learning how boards, groups and items fit together, read how to use monday.com first, because the API mirrors that structure exactly. For which plan unlocks Enterprise-only features like export, see monday.com pricing.
The API is where monday stops being a to-do board and starts running your team's workflows for you. I run AI training and workshops for teams, and help businesses with AI enablement and workflow automation, so the busywork runs itself and people get time back. Most of that work is with SaaS marketing teams and small businesses. Here's how we can work together.
Frequently asked questions
What is the monday API endpoint?
https://api.monday.com/v2. It's a GraphQL API, so every query and mutation goes to that single endpoint as a POST request.
How do I authenticate with the monday API?
Send your access token in the Authorization header of every request, along with a JSON body that holds your GraphQL in the query key.
How many boards does a monday API boards query return?
25 by default. Use the limit argument to change it and the page argument, starting at 1, to move through results.
Is there a rate limit on creating boards with the monday API?
Yes. The create_board mutation has an additional limit of 40 mutations per minute.
Can every monday account export boards through the API?
No. Board export is only available on Enterprise plans, and other accounts receive a FORBIDDEN_EXCEPTION error.


