What can we help you with?

Does monday.com have an API?

We most certainly do! Our API is built on GraphQL and will give you a ton of flexibility for accessing and changing information in your monday.com account. 

 Note: We also have a REST-based API that is out-of-date and will eventually be deprecated. For best results, we'd suggest using our GraphQL API -- it is better maintained and will give you access to a lot more data in your account. A guide to our REST API can be found here if you're still interested.


Why GraphQL?

Our users use monday.com to manage all sorts of information, and we wanted to build an API that is as flexible as our platform. Therefore, we built an API that could handle expressive queries to get exactly the information you need, when you need it. If you want to know more about GraphQL as a query language, check out graphql.org :)

Documentation and Testing

To make using our API easier, we have written documentation explaining the queries and mutations you can do to your data here. You can also test your queries in our GraphQL explorer here

Authenticating with your API Token

Any request to our API must be accompanied by an API token, to let us know you're you :) Each admin on the account has their own API token -- make sure to keep this safe!

To generate your API token: 

  1. Log into your monday.com account.
  2. Click on your avatar in the bottom left corner.
  3. Select Admin.
  4. Select "API" on the left side of the admin page.
  5. Scroll down to the "API V2 Token" section, and click "Generate".
  6. Copy this token. This is what you should be looking at:

v2-api-token.png

You can use this API token to authenticate all your requests to our API, as well as in our testing environment. If you need to, you can regenerate the token at any time (causing the old one to expire). 

Accessing our GraphQL API

We know that our users like to test things out before implementing them, so we included a query editor directly in our platform! You can use this to try queries and mutations before implementing them in your application. To use the API explorer, go to this link :)

Once you've opened the explorer page, enter your API token in this field: 

Screen_Shot_2019-05-13_at_12.51.33_PM.png

After supplying your token, you will enter our testing environment. The left pane of the explorer is where you enter your query or mutation, and when you press "Play" at the top left, the right pane will contain your results. 

 graphQL_query_results.png

You can also click the "Docs" button in the top right to access our documentation directly from the explorer :) To access our documentation outside the explorer, check out this link!

Sending Requests

So, you've tested your queries and you're ready to send them directly from your application? Well, you've come to the right place :)

All requests to our server should be POST requests sent to api.monday.com/v2. 

Be sure to use the application/json content type, and pass your API key as an "Authorization" parameter in the headers:

{
"Content-Type" : "application/json",
"Authorization" : "mySuperSecretAPIKey"
}

The request body is where your query and variables are passed. It should look like this:

{ 
"query" : "...",
"variables" : {"myVariable" : "foo", "yourVariable" : "bar"}
}  

Simple Example in cURL

Putting all this together, we can use the following cURL command to get a user's name using the GraphQL API: 

curl -X "POST" -H "Content-Type:application/json" -H "Authorization:XXXXX" -d '{"query":"{me{name}}"}' 'https://api.monday.com/v2'

Happy coding :)

Now that you've got a basic understanding of sending requests to our API, go ahead and check out our documentation here. You can also play around with our testing environment here!