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 use the API to get a list of your tasks.

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

You’ll also need to pass along an access token that you have created that has access to the organization you are fetching tasks for. This is done through setting a HTTP header with your access token. The header's key must be Authorization and the value must be your token with the word Bearer (and a space) before it.

Authorization: Bearer 8d848ff0b5922ba394fb02c63fba807c831772343cf531635dfeb5ccf92a463

Once all that is in place, send the GET request. You should get a response body back with a listing of your tasks in JSON format. 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.