> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Skapa mallkörning

POST https://api.elevenlabs.io/v1/flows/templates/{template_id}/runs
Content-Type: application/json

Starta en körning av en flödesmall. Skicka `version_id` för att låsa en ögonblicksbild, eller utelämna det / skicka `latest` för att köra den senast publicerade versionen. Ange indatavärden under `inputs`, med indataportens id som nyckel. Svaret är körningen i dess ursprungliga tillstånd, där varje utdata redan listas under sitt port-id i `outputs`. Inkludera `webhook` för att ta emot en `flows_template_run`-händelse med den färdiga körningen när dess `status` är `completed` eller `failed`; det här är det rekommenderade sättet att vänta. Utan en webhook hämtar du `GET /v1/flows/templates/{template_id}/runs/{run_id}` med ett måttligt intervall tills `status` är slutgiltig.

Reference: https://elevenlabs.io/docs/api-reference/flows/templates/runs/create

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `template_id` (string, required) — ID:t för mallen, som visas i ElevenLabs-appen eller av `GET /v1/flows/templates`.

### Body (application/json)

This endpoint expects a TemplateRunCreateRequest.

- `inputs` (map from string to TemplateRunInput, required) — Indatavärden med indataportens ID som nyckel. Varje indataport i versionen som körs måste anges; ett saknat eller okänt ID avvisas. Ange `{}` för en mall utan indata.
- `version_id` (string, optional, nullable) — Mallögonblicksbilden som ska köras. Ange ett specifikt versions-id för att låsa den ögonblicksbilden, eller `latest` (standardvärdet när parametern utelämnas) för att köra mallens senast publicerade version. Endast publicerade versioner kan låsas, utom av mallens ägare, som också kan låsa en opublicerad sparad ögonblicksbild för att prova den före publicering. Det aktiva utkastet körs aldrig via detta API.
- `webhook` (WebhookTarget, optional, nullable) — Inkludera för att skicka körningens resultat till arbetsytans konfigurerade flows-webhooks när körningens `status` blir `completed` eller `failed`. En händelse för hela körningen: händelsens `flows_template_run`-`data` motsvarar det slutliga svaret från `GET /v1/flows/templates/{template_id}/runs/{run_id}`.

## Response

### 200

Lyckat svar

- `id` (string, required) — Den unika identifieraren för körningen.
- `template_id` (string, required) — Mallen som den här körningen körde, så att en webhook-mottagare som kör flera mallar kan skilja sina körningar åt utan att behöva behålla en mappning mellan körningar och mallar.
- `version_id` (string, required) — Mallversionen som den här körningen körde. Bestäms när körningen skapas, så en körning som startas med `latest` registrerar den konkreta version som kördes.
- `status` (enum, required) — Körningens status, sammanställd från dess utdata: `pending` tills en utdata startar, `generating` medan någon utdata är oavslutad, `completed` när varje utdata har slutförts och `failed` när varje utdata har avslutats och minst en har misslyckats. `completed` och `failed` är slutgiltiga: webhooken `flows_template_run` utlöses när körningen når något av dessa tillstånd.
  - Allowed values: `pending`, `generating`, `completed`, `failed`
- `outputs` (map from string to TemplateOutput, required) — Körningens utdata, indexerade efter utport-id. Varje utdata är en `TemplateOutput` som särskiljs av `type`, det `type` som dess ports `content_schema` har.

## Errors

### 422 Unprocessable Entity Error

Valideringsfel

- `detail` (list of ValidationError, optional)

## Types

### TemplateRunInput

Ett värde som är bundet till en inmatningsport i en mall, i det format som dess `content_schema` kräver. En `string`-port tar själva texten; `number`-, `integer`- och `boolean`-portar tar ett JSON-värde av den typen. Allt som lagras någon annanstans är en referens som särskiljs med `type`: en tidigare `generation`, en uppladdad `asset`, en `voice` eller media som skickas via `inline_base64`. En `array`-port tar en JSON-array med ett värde per element som är tillåtet enligt schemats `items`. `object`-portar kan ännu inte bindas via detta API. Här finns inga begränsningar utöver överföringsformatet: vad en port accepterar (en `enum`, en längd) anges av dess `content_schema`, och körningsvägen validerar mot samma schema.

### WebhookTarget

- `type`: `all` (WebhookTargetAll)
- `type`: `ids` (WebhookTargetIds)
  - `ids` (list of string, required) — ID:n för arbetsytans Flows-webhooks som resultatet ska levereras till. Varje webhook måste vara en av arbetsytans konfigurerade Flows-webhooks.

### TemplateOutput

En utdata från en mallkörning, särskild utifrån `type`: `type` för portens `content_schema`. Kontrollera `status` för att se var den befinner sig i sin livscykel.

- `type`: `array` (TemplateArrayOutput)
  - `has_more` (boolean, required) — Om listan har fler element än `content`.
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (list of TemplateOutput, optional, nullable) — De första elementen i listan, i ordning, där varje element följer formen för schemats `items`. Finns endast när `status` är `completed`. När `has_more` är true är detta inte hela listan. Reserverat: ingen mall producerar denna typ av utdata ännu; den har publicerats så att mallar som gör det kan köras med samma klient.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
  - `next_cursor` (string, optional, nullable) — Skicka som `cursor` till en senare slutpunkt för att hämta elementen efter `content`. `null` när `content` innehåller hela listan eller innan utdata är klar. Reserverat: ingen mall genererar denna typ av utdata ännu; den har publicerats så att mallar som gör det kan köras med samma klient.
- `type`: `audio` (TemplateAudioOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — MIME-typen för det genererade mediet. Finns endast när `status` är `completed`.
  - `content_url` (string, optional, nullable) — En signerad URL för att ladda ner det genererade mediet. Finns bara när `status` är `completed`. Den upphör att gälla ungefär en timme efter att detta svar returnerats; hämta körningen igen för en ny URL.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `boolean` (TemplateBooleanOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (boolean, optional, nullable) — Det genererade booleska värdet. Finns endast när `status` är `completed`. Reserverat: ingen mall producerar denna typ av utdata ännu; den har publicerats så att mallar som gör det kan köras med samma klient.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `image` (TemplateImageOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — MIME-typen för det genererade mediet. Finns endast när `status` är `completed`.
  - `content_url` (string, optional, nullable) — En signerad URL för att ladda ner det genererade mediet. Finns bara när `status` är `completed`. Den upphör att gälla ungefär en timme efter att detta svar returnerats; hämta körningen igen för en ny URL.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `integer` (TemplateIntegerOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (integer, optional, nullable) — Det genererade heltalet. Finns endast när `status` är `completed`. Reserverat: ingen mall producerar denna typ av utdata ännu; den har publicerats så att mallar som gör det kan köras med samma klient.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `number` (TemplateNumberOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (double, optional, nullable) — Det genererade talet. Finns endast när `status` är `completed`. Reserverat: ingen mall producerar denna typ av utdata ännu; den har publicerats så att mallar som gör det kan köras med samma klient.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `object` (TemplateObjectOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (map from string to TemplateOutput, optional, nullable) — En utdata per fält, med fältnamnet som nyckel, där varje utdata följer formen för fältets schema. Finns endast när `status` är `completed`. Reserverat: ingen mall producerar den här typen av utdata ännu; den är publicerad så att mallar som gör det kan köras med samma klient.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `string` (TemplateStringOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (string, optional, nullable) — Den genererade texten. Finns endast när `status` är `completed`.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `video` (TemplateVideoOutput)
  - `id` (string, required) — ID:t för genereringen bakom denna utdata. Skicka det som en `generation`-referens för att använda utdata som indata på annat håll.
  - `status` (enum, required) — Utdataobjektets livscykelstatus. Den avslutas med `completed` när utdataobjektets innehållsfält är angivna, eller `failed` när `failure_reason` och `error_message` är angivna.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — MIME-typen för det genererade mediet. Finns endast när `status` är `completed`.
  - `content_url` (string, optional, nullable) — En signerad URL för att ladda ner det genererade mediet. Finns bara när `status` är `completed`. Den upphör att gälla ungefär en timme efter att detta svar returnerats; hämta körningen igen för en ny URL.
  - `error_message` (string, optional, nullable) — En läsbar beskrivning av felet. Finns endast när `status` är `failed`. Misslyckade genereringar debiteras inte.
  - `failure_reason` (enum, optional, nullable) — Felkategorin. Finns endast när `status` är `failed`.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### ValidationErrorLocItems

## Examples

**Request**

```json
{
  "inputs": {
    "prompt": "a corgi on a surfboard",
    "reference": {
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    }
  },
  "version_id": "latest",
  "webhook": {
    "type": "all"
  }
}
```

**Response**

```json
{
  "id": "sess_JWr5N6X9ZTqf8jD2LmQb",
  "template_id": "tmpl_abc123",
  "version_id": "ver_01hxyz",
  "status": "generating",
  "outputs": {
    "marketing_title": {
      "type": "string",
      "id": "Kx2mP7Y4WVrg9kE3NnRc",
      "status": "completed",
      "content": "Ride the wave."
    },
    "product_demo": {
      "type": "video",
      "id": "QWr5N6X9ZTqf8jD2La3B",
      "status": "generating"
    },
    "product_still": {
      "type": "image",
      "id": "JWr5N6X9ZTqf8jD2LmQb",
      "status": "completed",
      "content_mime_type": "image/png",
      "content_url": "https://storage.googleapis.com/generations/JWr5N6X9ZTqf8jD2LmQb"
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/flows/templates/template_id/runs"

payload = {
    "inputs": {
        "prompt": "a corgi on a surfboard",
        "reference": {
            "asset_id": "5xM2KqOnZyce22SPZ9d4",
            "type": "asset"
        }
    },
    "version_id": "latest",
    "webhook": { "type": "all" }
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/flows/templates/template_id/runs';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"inputs":{"prompt":"a corgi on a surfboard","reference":{"asset_id":"5xM2KqOnZyce22SPZ9d4","type":"asset"}},"version_id":"latest","webhook":{"type":"all"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/flows/templates/template_id/runs"

	payload := strings.NewReader("{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/flows/templates/template_id/runs")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/flows/templates/template_id/runs")
  .header("Content-Type", "application/json")
  .body("{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/flows/templates/template_id/runs', [
  'body' => '{
  "inputs": {
    "prompt": "a corgi on a surfboard",
    "reference": {
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    }
  },
  "version_id": "latest",
  "webhook": {
    "type": "all"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/flows/templates/template_id/runs");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "inputs": [
    "prompt": "a corgi on a surfboard",
    "reference": [
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    ]
  ],
  "version_id": "latest",
  "webhook": ["type": "all"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/flows/templates/template_id/runs")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```