The Flow API allows you to programatically create, modify, and delete objects in Flow using tools like Zapier or by writing applications in your favourite programming language.

For example, you could use the Flow API to integrate Flow with a legacy in-house system, or mark tasks as complete from external triggers like Github or other tools.

Our API is RESTful with endpoints centered around resources like tasks, projects, and teams. It talks over HTTP and accepts standard verbs like GET or POST, and replies with data formatted in JSON. Authentication is done through personal access tokens, which must be sent with every request.

In addition to our RESTful interface, we support Webhooks on tasks or projects. This allows an endpoint (your server/application, Zapier, etc) to be notified in real-time whenever anything changes about a Task or Project.

Getting Started

The first thing you need is to be a member of a Flow organization. If you aren’t using Flow yet, go to and start a free trial.

Once you’re in Flow, you need to generate a Personal Access Token. It’s a long string that looks something like 8d848ff0c1dbc6f3f5356576116b00c521e8f0212e245bd36900c37eace375e1. To generate and manage tokens, go to your Account Preferences within Flow. Every request needs a valid access token in order to ensure that the request is properly authenticated as you.

Never give your token to anyone else! Anyone who has your token can access Flow as you, so keep it secret and safe. If you have reason to suspect that someone else might have your token, go to your Account Preferences and Revoke the token to disable its use.

In addition to your token, the ID of your Flow organization is required with every request, and can be found in your Account Preferences for each access token you’ve generated. It will be a number, like 67890.

In order to try out the API, it’s helpful to use a REST client like Insomnia or Postman. With all that in hand, you can try your first API call.

Your First API Call

Let’s try getting all data for a task.

Select a task in Flow and click on the link icon in the upper right of the task pane to get the task ID. This will be a number like 12345. You’ll also need your organization ID, which looks something like 67890.

We can use the tasks endpoint by issuing a GET to (substitute your actual organization ID and task ID in place of the examples).

You’ll also need to pass along your access token. This is done through setting an Authorization HTTP header with your access token

Authorization: Bearer 8d848ff0…

Once all that is in place, send the GET request. You should get a response body back with all of the data for that task. Neat!

This is just the start of what’s possible with the API. Explore the full documentation for more ideas. Happy API-ing!


The API documentation is an informative resource and should be your first point of reference when you encounter any problems. If the docs don’t resolve your problem, please reach out to our support team with the following information:

The more information you provide, the better we can assist you.