West Elm
Product swap
image → video · ~3 min · 0 runs
API
Product swap
FLOWY_API_KEY.Create key 1. Calling the API
Base URL & auth#
The API is plain REST. No client library required. Every request is authenticated with a bearer token and points at a single base URL:
Submit a request#
Start a run by POSTing the inputs to the flow's /runs endpoint. The response returns a runId you poll for the result.
2. Authentication
API Key#
Pass your key in the Authorization header as a bearer token on every request. Keep it server-side, never ship it to a browser or mobile client.
3. Queue
Runs are asynchronous: submitting enqueues the run and returns immediately; you poll the queue until it settles, then read the result.
Submit a request#
Fetch request status#
Poll /runs/{runId} until status is completed or failed (from queued / running).
Get the result#
Once completed, the result slots are the nodeResults entries flagged isOutput. Each carries a url (media) or text.
4. Files
Hosted files (URL)#
Media inputs are passed by URL. Set asset_url to any publicly reachable image/video/audio link. Host the file yourself (S3, a CDN, etc.) or reuse a URL Flowy already returned from a previous run; there's no separate upload step for the API.
5. Schema
Input#
Each entry in inputs has a node_id (the input's API id, below) plus its value asset_url (a media URL) for media inputs, or prompt for text inputs. A variable input appears ONCE, with its value as a JSON array of min–max entries.
input-imageInput ImagerequiredOutput#
The result is an array of output records. Each has a name (the output title), a kind, and the produced url or text.
final-renderFinal RenderOther#
A run record also carries runId, status (queued → running → completed | failed), an error string when it fails, and nodeResults (every executed node's verdict; the isOutput ones are the results above).