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

# Templates weergeven

GET https://api.elevenlabs.io/v1/flows/templates

Lijst de gepubliceerde flowtemplates in je workspace op, samen met de invoer en uitvoer van elke uitvoerbare versie. Gebruik de id's hier als `template_id` / `version_id` bij `POST /v1/flows/templates/{template_id}/runs`. Versies die zijn gebouwd op modellen die voor jou niet beschikbaar zijn via de API, worden weggelaten. Daarom is `versions` leeg wanneer geen van de gepubliceerde versies van een template via deze API kan worden uitgevoerd. Templates die via een link met je zijn gedeeld of vanuit een andere workspace naar Explore zijn gepubliceerd, worden niet vermeld, maar kunnen nog steeds worden opgehaald en uitgevoerd via `template_id`.

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

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

### Query parameters

- `cursor` (string, optional, nullable) — Pagineringcursor: de waarde `next_cursor` uit het antwoord van de vorige pagina. Laat deze weg voor de eerste pagina.
- `page_size` (integer, optional, default: 10) — Het aantal templates dat per pagina moet worden geretourneerd. Lager dan de limiet van de runlijst, omdat elke rij de invoer- en uitvoerschema's van de versies uitbreidt.
- `versions_per_template` (integer, optional, default: 3) — Hoeveel gepubliceerde versies van elke template moeten worden geretourneerd, nieuwste eerst. `has_more_versions` geeft aan wanneer een template er meer heeft.
- `search` (string, optional, nullable) — Retourneer alleen templates waarvan de naam of beschrijving deze tekst bevat.

## Response

### 200

Geslaagde response

- `templates` (list of TemplateSummary, required) — De templates op deze pagina, met de meest recent bijgewerkte eerst. Een pagina kan minder dan `page_size` templates bevatten, of helemaal geen, omdat templates die je niet kunt uitvoeren worden weggefilterd nadat de pagina is gelezen — blijf pagineren zolang `has_more` true is.
- `next_cursor` (string, required, nullable) — Geef door als `cursor` om de volgende pagina op te halen. `null` als er geen volgende pagina is.
- `has_more` (boolean, required) — Of er na deze pagina meer templates bestaan.

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### TemplateSummary

Een template die de aanroeper kan uitvoeren, en de uitvoerbare versies ervan.

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

### ValidationError

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

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

### ValidationErrorLocItems

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

### 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
{
  "templates": [
    {
      "id": "tmpl_abc123",
      "name": "Product shot",
      "versions": [
        {
          "version_id": "ver_01hxyz",
          "published_at_unix": 1739721600,
          "is_latest": true,
          "inputs": [
            {
              "id": "prompt",
              "content_schema": {
                "type": "string",
                "title": "Prompt"
              }
            },
            {
              "id": "reference",
              "content_schema": {
                "type": "image",
                "description": "A clean product photo on any background.",
                "title": "Product photo"
              }
            }
          ],
          "outputs": [
            {
              "id": "product_still",
              "content_schema": {
                "type": "image",
                "title": "Final image"
              }
            }
          ]
        }
      ],
      "has_more_versions": false,
      "description": "Drop in a product photo, get a studio shot."
    }
  ],
  "next_cursor": "cGFnZXwx",
  "has_more": true
}
```

**SDK Code**

```python
import requests

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

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/flows/templates';
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"

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

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")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

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

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/flows/templates");
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")! 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()
```