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

# Template ophalen

GET https://api.elevenlabs.io/v1/flows/templates/{template_id}

Haal één flows-template op, samen met de inputs en outputs van elke uitvoerbare versie. `versions` is leeg wanneer geen gepubliceerde versie via deze API uitvoerbaar is. Werkt voor elke template die je kunt openen, waaronder templates die via een link met je zijn gedeeld of vanuit een andere workspace naar Explore zijn gepubliceerd en die niet worden vermeld door `GET /v1/flows/templates`.

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

## 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) — De ID van de template, zoals weergegeven in de ElevenLabs-app of door `GET /v1/flows/templates`.

### Query parameters

- `versions_per_template` (integer, optional, default: 10) — Hoeveel gepubliceerde versies van elke template moeten worden geretourneerd, nieuwste eerst. `has_more_versions` geeft aan wanneer een template er meer heeft.

## Response

### 200

Geslaagde response

- `id` (string, required) — Geef door als `template_id` bij `POST /v1/flows/templates/{template_id}/runs`.
- `name` (string, required) — De naam van de template.
- `versions` (list of TemplateVersion, required) — De gepubliceerde versies die deze aanroeper kan uitvoeren, nieuwste eerst. Een versie waarvan de grafiek een model gebruikt dat niet via de API voor je beschikbaar is, wordt weggelaten, net als een versie waarvan de opgeslagen snapshot verdwenen is. In beide gevallen kan de lijst leeg zijn terwijl de template nog steeds versies heeft die de ElevenLabs-app kan uitvoeren.
- `has_more_versions` (boolean, required) — Of deze template meer gepubliceerde versies heeft dan de hier geretourneerde `versions_per_template`. Haal `GET /v1/flows/templates/{template_id}` op met een grotere `versions_per_template` om er meer te zien.
- `description` (string, optional, nullable) — De beschrijving van de template, indien aanwezig.

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### TemplateVersion

Een gepubliceerde momentopname van een template en de poorten waarop deze draait.

- `version_id` (string, required) — Geef door als `version_id` bij `POST /v1/flows/templates/{template_id}/runs` om een run aan deze snapshot vast te zetten.
- `published_at_unix` (integer, required) — Wanneer deze versie is gepubliceerd, als Unix-timestamp in seconden.
- `is_latest` (boolean, required) — Of dit de versie is die een run krijgt wanneer `version_id` wordt weggelaten of ingesteld op `latest`.
- `inputs` (list of TemplatePort, required) — De invoer die deze versie accepteert, in canvasvolgorde. Elke invoer is vereist voor een run.
- `outputs` (list of TemplatePort, required) — De uitvoer die deze versie produceert, in canvasvolgorde.

### ValidationError

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

### TemplatePort

Een input- of outputpoort van een gepubliceerde templateversie.

- `id` (string, required) — De poort-id. Invoer-id's zijn de sleutels van de `inputs`-map bij `POST /v1/flows/templates/{template_id}/runs`; uitvoer-id's zijn de sleutels van de `outputs`-map in de runrespons.
- `content_schema` (ContentSchema, required) — Wat deze poort accepteert of produceert, als een `ContentSchema`. De `title` is de weergavenaam van de poort en de `description` is de helptekst die de templateauteur heeft geschreven. Voor een invoer bepaalt de `type` welke waarde wordt geaccepteerd: `string` accepteert een losse tekenreeks of een `generation`-referentie, `voice` accepteert een `voice`-referentie en `image`/`video`/`audio` accepteren een `asset`-, `generation`- of `inline_base64`-referentie. `number`, `integer` en `boolean` accepteren een JSON-waarde van dat type. Een `array`-invoer accepteert een JSON-array met één waarde per element, waarbij elke waarde geldig is voor de bijbehorende `items`. `object`-invoer kan nog niet via deze API worden gekoppeld. Een `string`-schema kan een `enum` bevatten met de enige geaccepteerde waarden. Voor een uitvoer bepaalt de `type` welke vorm van `Template<Kind>Output` het run-antwoord onder de poort-id bevat.

### ValidationErrorLocItems

### ContentSchema

- `type`: `array` (ArraySchema)
  - `items` (ContentSchema, required)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `audio` (AudioSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `boolean` (BooleanSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `image` (ImageSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `integer` (IntegerSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `number` (NumberSchema)
  - `description` (string, optional, nullable)
  - `enum` (list of double, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `object` (ObjectSchema)
  - `description` (string, optional, nullable)
  - `properties` (map from string to ContentSchema, optional)
  - `required` (list of string, optional)
  - `title` (string, optional, nullable)
- `type`: `string` (StringSchema)
  - `description` (string, optional, nullable)
  - `enum` (list of string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `video` (VideoSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)
- `type`: `voice` (VoiceSchema)
  - `description` (string, optional, nullable)
  - `title` (string, optional, nullable)

## Examples

**Response**

```json
{
  "id": "tmpl_abc123",
  "name": "Product shot",
  "versions": [
    {
      "version_id": "ver_01hxyz",
      "published_at_unix": 1,
      "is_latest": true,
      "inputs": [
        {
          "id": "prompt",
          "content_schema": {
            "type": "string",
            "description": "string",
            "enum": [
              "string"
            ],
            "title": "string"
          }
        }
      ],
      "outputs": [
        {
          "id": "prompt",
          "content_schema": {
            "type": "string",
            "description": "string",
            "enum": [
              "string"
            ],
            "title": "string"
          }
        }
      ]
    }
  ],
  "has_more_versions": true,
  "description": "string"
}
```

**SDK Code**

```python
import requests

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

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/flows/templates/template_id';
const options = {method: 'GET'};

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"
	"net/http"
	"io"
)

func main() {

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

	req, _ := http.NewRequest("GET", url, nil)

	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")

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

request = Net::HTTP::Get.new(url)

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.get("https://api.elevenlabs.io/v1/flows/templates/template_id")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/flows/templates/template_id');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/flows/templates/template_id");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/flows/templates/template_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

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()
```