## Start a top-level technique run `client.runs.startTechnique(RunStartTechniqueParamsbody, RequestOptionsoptions?): RunStartTechniqueResponse` **post** `/runs/technique` Starts a technique run through the normalized top-level run resource. Mutating public API requests support an optional Idempotency-Key header for client retries; duplicate keys within two hours return idempotency_duplicate. ### Parameters - `body: RunStartTechniqueParams` - `inputs: Record` Technique inputs - `technique_id: string` Technique identifier - `workspace_id: string` Workspace identifier ### Returns - `RunStartTechniqueResponse` - `charged_cost: number` - `estimated_seconds: number | null` - `run_id: string` Run identifier - `type: "generation" | "technique" | "action"` Run type - `"generation"` - `"technique"` - `"action"` - `action?: Action | null` - `action_id: "split-text" | "find-and-replace-text" | "concat-text" | 34 more` Action identifier - `"split-text"` - `"find-and-replace-text"` - `"concat-text"` - `"ken-burns-video"` - `"color-grade-image"` - `"change-image-ar"` - `"rotate-image"` - `"flip-image"` - `"color-filter-image"` - `"color-tint-image"` - `"filter-color-image"` - `"blur-image"` - `"duplicate-image"` - `"side-by-side-composite"` - `"add-shape-to-image"` - `"generate-shape-image"` - `"add-text-to-image"` - `"generate-text-image"` - `"qr-code-generator"` - `"stitch-videos"` - `"split-video"` - `"extract-video-frames"` - `"color-grade-video"` - `"video-to-frame-grid"` - `"boomerang-video"` - `"reverse-video"` - `"video-to-long-exposure"` - `"video-effect"` - `"color-filter-video"` - `"speed-up-video"` - `"slow-down-video"` - `"duplicate-video"` - `"greenscreen-video"` - `"resize-video"` - `"change-video-ar"` - `"split-audio-from-video"` - `"merge-audio-into-video"` - `model?: Model | null` - `model_id: string` Model identifier - `poll_url?: string | null` - `project_id?: string | null` Project identifier - `technique?: Technique | null` - `name: string` Technique name - `technique_id: string` Technique identifier ### Example ```typescript import Flora from '@flora-ai/flora'; const client = new Flora({ apiKey: process.env['FLORA_API_KEY'], // This is the default and can be omitted }); const response = await client.runs.startTechnique({ inputs: { foo: 'bar' }, technique_id: 'tech_abcd1234', workspace_id: 'ws_abc123', }); console.log(response.run_id); ``` #### Response ```json { "charged_cost": 0, "estimated_seconds": 0, "run_id": "run_abc123", "type": "generation", "action": { "action_id": "split-text" }, "model": { "model_id": "t2i-flux-2-pro" }, "poll_url": "https://example.com", "project_id": "prj_abc123", "technique": { "name": "name", "technique_id": "tech_abcd1234" } } ```