Skip to main content
Flow’s customer API lets you read and update project data over HTTPS. Start with a read request, then use the endpoint reference to explore the operations available to your account.

Before you start

You need a Flow account, a workspace identifier, and a personal API key. Follow Authentication to create a key and find your workspace identifier. Set these variables in your terminal. Load the key from your secret manager or enter it without echoing it:
The key-entry command above uses Bash. In zsh, use read -r -s 'FLOW_API_KEY?Flow API key: ' instead.
The API URL shown in Flow settings ends in /customer-api. That path opens Swagger. Use the URL’s origin, without /customer-api, as FLOW_API_URL.
The cURL examples run in Bash. Python examples use requests (python3 -m pip install requests). JavaScript examples use Node.js 22 or later; save them as .mjs files and run them with node. Each example reads the variables configured above.

Identify your user

A successful response returns the authenticated user’s profile. The key acts as its creator, so requests use that person’s permissions.

Find a project

Choose an accessible project’s id from the response:

Read entities

The response contains an items array and pagination metadata. Omit branch_id to read Base. See Read entities to filter by entity type and fetch the next page.

Try the playground

Open an endpoint under Endpoints and enter your API key and customer header. The playground uses https://backend.branch.flowengineering.com. Start with a GET request. Requests use your permissions; write requests change live data. Use a test project and branch for write examples. See API conventions for branch identifiers and error handling.