Placed Object in Static Space
Swaps furniture, decor, and wall finishes into a slow dolly shot of an interior while keeping the room layout locked.
7 images → 6 videos · ~26 min · 2 runs
API
Swaps furniture, decor, and wall finishes into a slow dolly shot of an interior while keeping the room layout locked.
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#
Alongside inputs, this flow exposes 6 settings you can override in params, the advanced options from the Run tab. The example below sends each at its published default; omit any key to use that default. See Schema for the allowed values of each.
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-roomBase room photorequiredinput-wall-colorWall color samplerequiredinput-sofa-imageSofa photorequiredinput-wall-artWall art imagerequiredinput-floor-rugRug patternrequiredinput-kitchen-imageKitchen referencerequiredinput-mixer-colorAppliance color samplerequiredParams
Optional. Each key in params is one of the names below; omitting a key uses its default.
replaced-wall-color-resolutionWall color pass resolution480p, 720p, 1080p, 4k · default 720preplaced-sofa-resolutionSofa replacement clip resolution480p, 720p, 1080p, 4k · default 720preplaced-wall-art-resolutionArt swap clip resolution480p, 720p, 1080p, 4k · default 720preplaced-wall-rug-resolutionRug swap clip resolution480p, 720p, 1080p, 4k · default 720plight-variation-resolutionRelit room clip resolution480p, 720p, 1080p, 4k · default 720preplaced-mixer-color-resolutionAppliance swap clip resolution480p, 720p, 1080p, 4k · default 720pOutput#
The result is an array of output records. Each has a name (the output title), a kind, and the produced url or text.
replaced-wall-colorWall color passreplaced-sofaSofa replacement clipreplaced-wall-artArt swap clipreplaced-wall-rugRug swap cliplight-variationRelit room clipreplaced-mixer-colorAppliance swap clipOther#
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).