> 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.

# Vorlagenausführung erstellen

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

Starten Sie einen Durchlauf einer Flows-Vorlage. Übergeben Sie `version_id`, um einen Snapshot festzulegen, oder lassen Sie ihn weg bzw. übergeben Sie `latest`, um die zuletzt veröffentlichte Version auszuführen. Legen Sie Eingabewerte unter `inputs` fest, mit der ID des Eingabeports als Schlüssel. Die Antwort ist der Durchlauf im Anfangszustand; jede Ausgabe ist bereits unter ihrer Port-ID in `outputs` aufgeführt. Fügen Sie `webhook` ein, um ein `flows_template_run`-Ereignis mit dem abgeschlossenen Durchlauf zu erhalten, sobald dessen `status` `completed` oder `failed` lautet; dies ist die empfohlene Warteweise. Ohne Webhook rufen Sie `GET /v1/flows/templates/{template_id}/runs/{run_id}` in angemessenen Abständen ab, bis der `status` endgültig ist.

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) — Die ID der Vorlage, wie sie in der ElevenLabs-App oder über `GET /v1/flows/templates` angezeigt wird.

### Body (application/json)

This endpoint expects a TemplateRunCreateRequest.

- `inputs` (map from string to TemplateRunInput, required) — Eingabewerte, aufgeschlüsselt nach Eingabeport-ID. Jeder Eingabeport der ausgeführten Version muss angegeben werden; eine fehlende oder unbekannte ID wird abgelehnt. Übergeben Sie `{}` für eine Vorlage ohne Eingaben.
- `version_id` (string, optional, nullable) — Der auszuführende Template-Snapshot. Übergeben Sie eine bestimmte Versions-ID, um diesen Snapshot festzulegen, oder `latest` (der Standardwert, wenn nicht angegeben), um die zuletzt veröffentlichte Version des Templates auszuführen. Nur veröffentlichte Versionen können festgelegt werden. Der Eigentümer des Templates kann jedoch auch einen unveröffentlichten gespeicherten Snapshot festlegen, um ihn vor der Veröffentlichung zu testen. Der Live-Entwurf wird niemals über diese API ausgeführt.
- `webhook` (WebhookTarget, optional, nullable) — Fügen Sie dies ein, um das Ergebnis des Runs an die konfigurierten Flows-Webhooks des Workspace zu senden, sobald der `status` des Runs `completed` oder `failed` erreicht. Ein Ereignis für den gesamten Run: Die `data` des Ereignisses `flows_template_run` entsprechen der finalen Antwort von `GET /v1/flows/templates/{template_id}/runs/{run_id}`.

## Response

### 200

Erfolgreiche Antwort

- `id` (string, required) — Die eindeutige Kennung des Durchlaufs.
- `template_id` (string, required) — Das Template, das bei diesem Durchlauf ausgeführt wurde. So kann ein Webhook-Consumer mit mehreren Templates deren Durchläufe unterscheiden, ohne eine Zuordnung von Durchläufen zu Templates zu speichern.
- `version_id` (string, required) — Die Template-Version, die bei diesem Durchlauf ausgeführt wurde. Sie wird beim Erstellen des Durchlaufs aufgelöst. Daher speichert ein mit `latest` gestarteter Durchlauf die konkrete ausgeführte Version.
- `status` (enum, required) — Der aus seinen Ausgaben zusammengefasste Status des Runs: `pending`, bis eine Ausgabe startet; `generating`, solange eine Ausgabe nicht abgeschlossen ist; `completed`, sobald alle Ausgaben abgeschlossen sind; und `failed`, sobald alle Ausgaben abgeschlossen sind und mindestens eine fehlgeschlagen ist. `completed` und `failed` sind Endzustände: Der Webhook `flows_template_run` wird ausgelöst, sobald der Run einen dieser Zustände erreicht.
  - Allowed values: `pending`, `generating`, `completed`, `failed`
- `outputs` (map from string to TemplateOutput, required) — Die Ausgaben des Runs, gruppiert nach Ausgabe-Port-ID. Jede Ausgabe ist ein `TemplateOutput`, unterschieden nach `type`, dem `type` des `content_schema` ihres Ports.

## Errors

### 422 Unprocessable Entity Error

Validierungsfehler

- `detail` (list of ValidationError, optional)

## Types

### TemplateRunInput

Ein Wert, der an einen Vorlageneingabeport gebunden ist, in der von seiner `content_schema` geforderten Form. Ein `string`-Port nimmt den Text selbst entgegen; `number`-, `integer`- und `boolean`-Ports nehmen einen JSON-Wert dieses Typs entgegen. Alles, was an anderer Stelle gespeichert ist, ist eine nach `type` unterschiedene Referenz: eine vorherige `generation`, ein hochgeladenes `asset`, eine `voice` oder per `inline_base64` übergebene Medien. Ein `array`-Port nimmt ein JSON-Array mit einem Wert pro Element entgegen, der für die `items` des Schemas zulässig ist. `object`-Ports können über diese API noch nicht gebunden werden. Hier gelten keine Einschränkungen über die Wire-Form hinaus: Was ein Port akzeptiert (ein `enum`, eine Länge), wird durch seine `content_schema` angegeben, und der Ausführungspfad validiert gegen dasselbe Schema.

### WebhookTarget

- `type`: `all` (WebhookTargetAll)
- `type`: `ids` (WebhookTargetIds)
  - `ids` (list of string, required) — Die IDs der Workspace-Flows-Webhooks, an die das Ergebnis gesendet werden soll. Jeder muss einer der konfigurierten Flows-Webhooks des Workspace sein.

### TemplateOutput

Eine Ausgabe eines Vorlagendurchlaufs, unterschieden nach `type`: dem `type` der `content_schema` des Ports. Prüfen Sie `status`, um den Stand im Lebenszyklus zu ermitteln.

- `type`: `array` (TemplateArrayOutput)
  - `has_more` (boolean, required) — Gibt an, ob die Liste Elemente über `content` hinaus enthält.
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (list of TemplateOutput, optional, nullable) — Die ersten Listenelemente in der angegebenen Reihenfolge. Jedes entspricht der Struktur von `items` im Schema. Nur vorhanden, wenn `status` den Wert `completed` hat. Wenn `has_more` wahr ist, handelt es sich nicht um die vollständige Liste. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe. Sie ist veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
  - `next_cursor` (string, optional, nullable) — Als `cursor` an einen späteren Endpunkt übergeben, um die Elemente nach `content` abzurufen. `null`, wenn `content` die gesamte Liste enthält oder bevor die Ausgabe abgeschlossen ist. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe; sie wird veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
- `type`: `audio` (TemplateAudioOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Der MIME-Typ der generierten Medien. Nur vorhanden, wenn `status` `completed` ist.
  - `content_url` (string, optional, nullable) — Eine signierte URL zum Herunterladen der generierten Medien. Nur vorhanden, wenn `status` auf `completed` gesetzt ist. Sie läuft etwa eine Stunde nach Rückgabe dieser Antwort ab; rufen Sie den Durchlauf erneut ab, um eine neue URL zu erhalten.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `boolean` (TemplateBooleanOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (boolean, optional, nullable) — Der generierte boolesche Wert. Nur vorhanden, wenn `status` den Wert `completed` hat. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe. Sie ist veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `image` (TemplateImageOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Der MIME-Typ der generierten Medien. Nur vorhanden, wenn `status` `completed` ist.
  - `content_url` (string, optional, nullable) — Eine signierte URL zum Herunterladen der generierten Medien. Nur vorhanden, wenn `status` auf `completed` gesetzt ist. Sie läuft etwa eine Stunde nach Rückgabe dieser Antwort ab; rufen Sie den Durchlauf erneut ab, um eine neue URL zu erhalten.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `integer` (TemplateIntegerOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (integer, optional, nullable) — Die generierte Ganzzahl. Nur vorhanden, wenn `status` den Wert `completed` hat. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe. Sie ist veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `number` (TemplateNumberOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (double, optional, nullable) — Die generierte Zahl. Nur vorhanden, wenn `status` den Wert `completed` hat. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe. Sie ist veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `object` (TemplateObjectOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (map from string to TemplateOutput, optional, nullable) — Eine Ausgabe pro Feld, nach Feldnamen zugeordnet und jeweils entsprechend dem Schema dieses Felds. Nur vorhanden, wenn `status` den Wert `completed` hat. Reserviert: Noch keine Vorlage erzeugt diese Art von Ausgabe. Sie wird veröffentlicht, damit Vorlagen, die dies tun, mit demselben Client ausgeführt werden können.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `string` (TemplateStringOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (string, optional, nullable) — Der generierte Text. Nur vorhanden, wenn `status` den Wert `completed` hat.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `video` (TemplateVideoOutput)
  - `id` (string, required) — Die ID der Generierung hinter dieser Ausgabe. Übergeben Sie sie als `generation`-Referenz, um die Ausgabe an anderer Stelle als Eingabe zu verwenden.
  - `status` (enum, required) — Der Lebenszyklusstatus der Ausgabe. Er endet bei `completed`, wenn die Inhaltsfelder der Ausgabe gesetzt sind, oder bei `failed`, wenn `failure_reason` und `error_message` gesetzt sind.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Der MIME-Typ der generierten Medien. Nur vorhanden, wenn `status` `completed` ist.
  - `content_url` (string, optional, nullable) — Eine signierte URL zum Herunterladen der generierten Medien. Nur vorhanden, wenn `status` auf `completed` gesetzt ist. Sie läuft etwa eine Stunde nach Rückgabe dieser Antwort ab; rufen Sie den Durchlauf erneut ab, um eine neue URL zu erhalten.
  - `error_message` (string, optional, nullable) — Eine lesbare Beschreibung des Fehlers. Nur vorhanden, wenn `status` auf `failed` gesetzt ist. Fehlgeschlagene Generierungen werden nicht berechnet.
  - `failure_reason` (enum, optional, nullable) — Die Fehlerkategorie. Nur vorhanden, wenn `status` den Wert `failed` hat.
    - 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()
```