Pricing: $0.2/request. Endpoint:
POST /v1/models/runflow/multi-angles/runs.Overview
- Endpoint: https://api.runflow.io/v1/models/runflow/multi-angles/runs
- Model ID: runflow/multi-angles
- Provider: Runflow
- License: commercial
- Last Updated: 2026-05-28
Pricing
- Base price: $0.2/request
- Note: Per image. Multi-angle camera rotation.
Multi Angles API
Endpoint:POST /v1/models/runflow/multi-angles/runs
Run the model
Python
Node.js
cURL
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
input | object | required | Model input parameters. See “Input schema” below. |
callback_url | string | null | optional | Webhook URL - POSTed when the run reaches a terminal state. |
metadata | object | null | optional | Arbitrary key-value pairs attached to the run. |
Input schema
| Field | Type | Required | Allowed values | Description |
|---|---|---|---|---|
image_url | image | required | Any | HTTPS URL of the source photo. A clear subject and even lighting work best. |
view | string | required | front view, front-right quarter view, right side view, back-right quarter view, back view, back-left quarter view, left side view, front-left quarter view | Where the camera sits horizontally around the subject. “front view” looks at the subject head-on; “right side view” rotates 90 degrees clockwise; “back view” looks from behind; and so on for the 8 cardinal + diagonal positions. |
angle | string | optional | low-angle shot, eye-level shot, elevated shot, high-angle shot | Vertical camera tilt. “low-angle shot” looks up from ground level (-30 degrees); “eye-level shot” matches the subject’s height; “elevated shot” sits slightly above (30 degrees); “high-angle shot” looks down from above (60 degrees). |
shot | string | optional | close-up, medium shot, wide shot | Camera distance. “close-up” fills the frame with surface and texture detail; “medium shot” is a balanced standard framing; “wide shot” pulls back to include context and environment. |
prompt | string | optional | Any | Optional extra phrase appended to the camera pose to nudge the output (e.g. “keep the original lighting”). Leave blank for default behavior. |
match_input_aspect | string | optional | true, false | Keep the output at the source image’s aspect ratio. Default. Set to “false” if you want to force a specific aspect_ratio. |
aspect_ratio | string | optional | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 | Output aspect ratio. Only takes effect when match_input_aspect is “false”. |
Output schema
| Field | Type | Description |
|---|---|---|
outputs | json | Array of result items, each with at minimum a url field. |
seed | json | Random seed used (null if N/A). |
timing | json | Provider timing breakdown (null if not surfaced). |
nsfw_detected | json | Provider NSFW flag (null if not surfaced). |
Callback payload
When you provide acallback_url, Runflow POSTs to it once the run reaches a terminal state.
| Field | Type | Description |
|---|---|---|
event | string | Event type: “run.completed”, “run.failed”, or “run.cancelled”. |
run_id | string | The unique identifier of the run. |
status | string | Terminal status: “succeeded”, “failed”, or “cancelled”. |
output | object | null | The run output. Null if the run failed or was cancelled. |
duration_ms | number | null | Total run duration in milliseconds. |
created_at | string | null | ISO 8601 timestamp when the run was created. |
completed_at | string | null | ISO 8601 timestamp when the run reached terminal state. |
metadata | object | null | The metadata object passed at run creation, if any. |
- Retries: 3 attempts with exponential backoff (1s, 2s). Retries on 5xx / network errors only.
- Headers:
Runflow-Request-Idis always sent.Runflow-Signatureis sent if a signing secret is configured.
Additional Resources
Related
Browse all models
Browse the catalog.
Run lifecycle
Callbacks, polling, statuses.
Callbacks
Handle async results.
Pricing
How requests bill out.