Make your first request
Setting up a monday.com Account
If you’re not already a monday.com user, the first step is to sign up and create a trial account here.
If you'd like to create an account strictly for developing apps, you can sign up for a developer account here: monday.com Developer Signup
Authenticating with the API
Once you set up your account, the next step is to authenticate with an Access Token. Skip to the Authentication section to learn how your apps should authenticate with our API.
Using the API
If you are already familiar with the monday.com building blocks, check out our API playground to explore our GraphQL schema.
If you’re new to monday.com, it’s best to start by learning the basics of the platform. Our Help Center is great for that: Getting started with monday
GraphQL APIs use a single endpoint for all operations (unlike REST APIs). Our API endpoint is:
https://api.monday.com/v2
Requests to the API should follow these rules:
- POST request with a JSON-formatted body
- Access token must be sent in the Authorization header. Learn more here: Authentication
- All queries (including mutations) should be sent with the
query
key in your JSON body - Optional variables should use the
variables
key - Content Type header must be
application/json
, unless you're uploading Files
Your JSON request body should look like this:
{
"query": "query {...},"
"variables": {"var1":"value1", "var2":"value2", ...}
}
Examples
Below are some examples of how to access the monday.com API using different languages:
curl \
-X POST \
-H "Content-Type:application/json" \
-H "Authorization:YOUR_SUPER_SECRET_API_KEY" \
-d '{"query":"query{boards(limit:1){id name}}"}' \
"https://api.monday.com/v2/"
fetch ("https://api.monday.com/v2", {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization' : 'YOUR_API_KEY_HERE'
},
body: JSON.stringify({
'query' : 'query{boards (limit:1) {id name} }'
})
});
<?php
$token = 'YOUR_TOKEN_HERE';
$apiUrl = 'https://api.monday.com/v2';
$headers = ['Content-Type: application/json', 'Authorization: ' . $token];
$query = 'query { boards (limit:1) {id name} }';
$data = @file_get_contents($apiUrl, false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => $headers,
'content' => json_encode(['query' => $query]),
]
]));
$responseContent = json_decode($data, true);
echo json_encode($responseContent);
?>
import requests
import json
apiKey = "YOUR_API_KEY_HERE"
apiUrl = "https://api.monday.com/v2"
headers = {"Authorization" : apiKey}
query2 = 'query { boards (limit:1) {id name} }'
data = {'query' : query2}
r = requests.post(url=apiUrl, json=data, headers=headers)
Below is an example of what the data returned looks like. Notice that GraphQL will return data in the same structure defined in your query:
{
"data": {
"boards": [
{
"id": "12345678",
"name": "My Amazing CRM Board"
}
]
},
"account_id": 98765
}
More in-depth tutorials in PHP, Python and Javascript can be found in our Developers' Community.
Developer Mode
Use monday.labs to activate "Developer Mode" in order to see template IDs, column IDs, and more. These will come in handy when using different methods in our API. For more details, check out this article: How to find board, item and column IDs.
Updated 17 days ago