## Start a technique run **post** `/techniques/{techniqueId}/runs` Starts a run for a specific technique using the backward-compatible nested route. Mutating public API requests support an optional Idempotency-Key header for client retries; duplicate keys within two hours return idempotency_duplicate. ### Path Parameters - `techniqueId: string` Technique identifier or slug ### Body Parameters - `inputs: array of object { id, type, value }` Technique inputs - `id: string` Technique input identifier - `type: "text" or "imageUrl" or "videoUrl"` Technique input type - `"text"` - `"imageUrl"` - `"videoUrl"` - `value: string` Technique input value - `mode: "async" or "stream"` Technique run execution mode - `"async"` - `"stream"` - `callback_url: optional string` HTTPS callback URL for asynchronous run completion notifications - `idempotency_key: optional string` Idempotency key for safely retrying requests ### Returns - `created_at: number` - `progress: number` - `run_id: string` Run identifier - `status: "pending" or "running" or "completed" or "failed"` - `"pending"` - `"running"` - `"completed"` - `"failed"` - `charged_cost: optional number` - `completed_at: optional number` - `error_code: optional string` Machine-readable run error code - `error_message: optional string` Human-readable run error message - `outputs: optional array of object { output_id, type, url }` - `output_id: string` Run output identifier - `type: "imageUrl" or "videoUrl" or "audioUrl" or 2 more` Run output media type - `"imageUrl"` - `"videoUrl"` - `"audioUrl"` - `"text"` - `"documentUrl"` - `url: string` Run output URL - `poll_url: optional string` - `started_at: optional number` ### Example ```http curl https://app.flora.ai/api/v1/techniques/$TECHNIQUE_ID/runs \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $FLORA_API_KEY" \ -d '{ "inputs": [ { "id": "id", "type": "text", "value": "value" } ], "mode": "async" }' ``` #### Response ```json { "created_at": 0, "progress": 0, "run_id": "run_abc123", "status": "pending", "charged_cost": 0, "completed_at": 0, "error_code": "provider_error", "error_message": "The provider failed to complete the generation.", "outputs": [ { "output_id": "output_1", "type": "imageUrl", "url": "https://media.flora.ai/output.png" } ], "poll_url": "https://example.com", "started_at": 0 } ```