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

# Lista mallar

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

Lista de publicerade flödesmallarna i din arbetsyta tillsammans med varje körbar versions indata och utdata. Använd id:na här som `template_id` / `version_id` i `POST /v1/flows/templates/{template_id}/runs`. Versioner som bygger på modeller som inte är tillgängliga för dig via API:et utelämnas, så `versions` är tom när ingen av en malls publicerade versioner kan köras via detta API. Mallar som delas med dig via länk eller publiceras till Explore från en annan arbetsyta listas inte, men kan fortfarande hämtas och köras med `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) — Pagineringens markör: värdet `next_cursor` från föregående sidas svar. Utelämna det för första sidan.
- `page_size` (integer, optional, default: 10) — Hur många mallar som ska returneras per sida. Lägre än gränsen för körningslistan eftersom varje rad expanderar sina versioners in- och utmatningsscheman.
- `versions_per_template` (integer, optional, default: 3) — Hur många av varje malls publicerade versioner som ska returneras, med de nyaste först. `has_more_versions` visar när en mall har fler.
- `search` (string, optional, nullable) — Returnera endast mallar vars namn eller beskrivning innehåller denna text.

## Response

### 200

Lyckat svar

- `templates` (list of TemplateSummary, required) — Mallar på den här sidan, med de senast uppdaterade först. En sida kan innehålla färre än `page_size` mallar, eller inga alls, eftersom mallar som du inte kan köra filtreras bort efter att sidan har lästs — fortsätt paginera medan `has_more` är true.
- `next_cursor` (string, required, nullable) — Skicka som `cursor` för att hämta nästa sida. `null` när det inte finns någon ytterligare sida.
- `has_more` (boolean, required) — Om fler mallar finns efter den här sidan.

## Errors

### 422 Unprocessable Entity Error

Valideringsfel

- `detail` (list of ValidationError, optional)

## Types

### TemplateSummary

En mall som anroparen kan köra, samt dess körbara versioner.

- `id` (string, required) — Skicka som `template_id` i `POST /v1/flows/templates/{template_id}/runs`.
- `name` (string, required) — Mallens namn.
- `versions` (list of TemplateVersion, required) — De publicerade versioner som anroparen kan köra, med den nyaste först. En version vars graf använder en modell som inte är tillgänglig för dig via API:t utelämnas, liksom en vars lagrade ögonblicksbild saknas. Listan kan därför vara tom även om mallen fortfarande har versioner som ElevenLabs-appen kan köra.
- `has_more_versions` (boolean, required) — Om denna mall har fler publicerade versioner utöver de `versions_per_template` som returneras här. Hämta `GET /v1/flows/templates/{template_id}` med ett större `versions_per_template` för att se fler.
- `description` (string, optional, nullable) — Mallens beskrivning, om den har någon.

### ValidationError

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

### TemplateVersion

En publicerad ögonblicksbild av en mall och portarna den körs med.

- `version_id` (string, required) — Skicka som `version_id` i `POST /v1/flows/templates/{template_id}/runs` för att låsa en körning till den här ögonblicksbilden.
- `published_at_unix` (integer, required) — När den här versionen publicerades, som en Unix-tidsstämpel i sekunder.
- `is_latest` (boolean, required) — Om detta är den version som en körning får när `version_id` utelämnas eller anges som `latest`.
- `inputs` (list of TemplatePort, required) — Indata som denna version accepterar, i arbetsyteordning. All indata krävs för en körning.
- `outputs` (list of TemplatePort, required) — Utdata som denna version producerar, i canvasordning.

### ValidationErrorLocItems

### TemplatePort

En in- eller utport för en publicerad mallversion.

- `id` (string, required) — Port-id:t. Indata-id:n är nycklarna i mappningen `inputs` på `POST /v1/flows/templates/{template_id}/runs`; utdata-id:n är nycklarna i mappningen `outputs` i körningssvaret.
- `content_schema` (ContentSchema, required) — Vad denna port accepterar eller producerar, som ett `ContentSchema`. Dess `title` är portens visningsnamn och dess `description` är hjälptexten som mallförfattaren skrev. För en indata avgör dess `type` vilket värde som accepteras: `string` tar en vanlig sträng eller en `generation`-referens, `voice` tar en `voice`-referens och `image`/`video`/`audio` tar en `asset`-, `generation`- eller `inline_base64`-referens. `number`, `integer` och `boolean` tar ett JSON-värde av den typen. En `array`-indata tar en JSON-array med ett värde per element, där varje värde är tillåtet för dess `items`. `object`-indata kan ännu inte bindas via detta API. Ett `string`-schema kan innehålla en `enum` med de enda värden som accepteras. För en utdata avgör dess `type` vilken `Template<Kind>Output`-form körningssvaret innehåller under port-ID:t.

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