- List the flows in your workspace
- Read a flow’s inputs and outputs so you know what to send
- Start a run with your own inputs
- Poll a run and download its results: images, video, audio, and more
A flow is a canvas you’ve turned into a reusable tool by marking its input and output nodes. Anyone can fill in the inputs and run it. Learn more in Concepts.
The app calls these flows; the REST resource underneath is still
/v1/apps (a name it kept from before the rename). GET /v1/apps, POST /v1/apps/{appId}/runs, and so on all refer to flows: the endpoints themselves aren’t renamed.Base URL
All API requests are made to the following base URL:Authentication
Authenticate every request by sending your API key as a Bearer token in theAuthorization header:
flowy_…) for your server. See Authentication to create one and Permissions to scope it to exactly what it needs.
Browser-safe publishable keys (
flowy_pk_…), locked to an allowlist of domains, are coming soon.Error handling
The Flowy API uses conventional HTTP status codes to indicate success or failure, and returns a human-readable message on every error:2xx means success, a 4xx means the request was rejected (and usually tells you how to fix it), and a 5xx means something went wrong on our end. See Errors for the full list, and Rate limits for the 429 and the X-RateLimit-* headers.
SDKs
There’s no official SDK yet, but the API is described by an OpenAPI 3 document (served publicly, no key required). Use it to generate a typed client in your language of choice, or import the API into Postman or Insomnia.Next steps
Create an API key
Mint, scope, and revoke keys from your workspace settings.
Authentication
Send your key as a Bearer token on every request.
Permissions
Scope a key to exactly what it needs: read flows, read runs, start runs.
Run a flow
The end-to-end path: list flows, start a run, poll for the result.
Rate limits
Per-minute limits, the
X-RateLimit-* headers, and backing off on 429.Errors
Every status code the API returns, and how to fix each one.