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

# Hämta mall

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

Hämta en flödesmall tillsammans med in- och utdata för varje körbar version. `versions` är tom när ingen publicerad version kan köras via detta API. Fungerar för alla mallar du kan öppna, inklusive mallar som delas med dig via länk eller publiceras till Explore från en annan arbetsyta, som `GET /v1/flows/templates` inte listar.

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) — ID:t för mallen, som visas i ElevenLabs-appen eller av `GET /v1/flows/templates`.

### Query parameters

- `versions_per_template` (integer, optional, default: 10) — 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.

## Response

### 200

Lyckat svar

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

## Errors

### 422 Unprocessable Entity Error

Valideringsfel

- `detail` (list of ValidationError, optional)

## Types

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

### ValidationError

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

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

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