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

# Agent-Branches auflisten

GET https://api.elevenlabs.io/v1/convai/agents/{agent_id}/branches

Gibt eine Liste der Branches eines Agenten zurück

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/agents/branches/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

### Path parameters

- `agent_id` (string, required) — Die ID eines Agenten. Sie wird beim Erstellen des Agenten zurückgegeben.

### Query parameters

- `include_archived` (boolean, optional, default: false) — Gibt an, ob archivierte Branches einbezogen werden sollen.
- `limit` (integer, optional, default: 100) — Maximale Anzahl zurückzugebender Ergebnisse
- `include_commit_status` (boolean, optional, default: false) — Ob berechnet werden soll, wie weit jeder Branch von main abweicht (commits_ahead/commits_behind). Dabei wird der Versions-DAG jedes Branches durchlaufen. Das ist bei Agenten mit langer Historie langsam und standardmäßig deaktiviert, sodass diese Felder null bleiben.

## Response

### 200

Erfolgreiche Antwort

- `results` (list of AgentBranchSummary, required)
- `meta` (ListResponseMeta, optional)

## Errors

### 422 Branches List Request Unprocessable Entity Error

Validierungsfehler

- `detail` (list of ValidationError, optional)

## Types

### AgentBranchSummary

- `id` (string, required)
- `name` (string, required)
- `agent_id` (string, required)
- `description` (string, required)
- `created_at` (integer, required)
- `last_committed_at` (integer, required)
- `is_archived` (boolean, required)
- `protection_status` (enum, optional, default: writer_perms_required)
  - Allowed values: `writer_perms_required`, `admin_perms_required`
- `auto_rebase` (boolean, optional, default: false)
- `access_info` (ResourceAccessInfo, optional) — Zugriffsinformationen für den Branch
- `current_live_percentage` (double, optional, default: 0) — Prozentsatz des Datenverkehrs, der auf dem Branch live ist
- `parent_branch_id` (string, optional) — ID des übergeordneten Branches
- `draft_exists` (boolean, optional, default: false) — Gibt an, ob ein Entwurf für den Branch vorhanden ist.
- `draft_created_at` (integer, optional) — Unix-Sekunden, zu denen der Entwurf des Aufrufers in diesem Branch erstmals erstellt wurde, oder null, wenn kein Entwurf vorhanden ist. Ein vor last_committed_at erstellter Entwurf basiert auf einer Konfiguration, die der Branch inzwischen überholt hat. Daher entspricht er möglicherweise nicht der aktuellen Konfiguration.
- `draft_is_behind_tip` (boolean, optional, default: false) — Gibt an, ob der Entwurf des Aufrufers in diesem Branch vor dem letzten Commit des Branches erstellt wurde. Das bedeutet, dass er auf einer Konfiguration basiert, die der Branch inzwischen überschritten hat, und möglicherweise nicht die aktuelle Konfiguration widerspiegelt.
- `calls_7d` (integer, optional, default: 0) — Anzahl der Anrufe in den letzten 7 Tagen
- `commits_ahead` (integer, optional) — Anzahl der Commits in diesem Branch, die relativ zum gemeinsamen Vorgänger noch nicht auf main sind. Null, wenn dies nicht berechnet werden konnte, z. B. weil es keinen gemeinsamen Vorgänger gibt oder der Branch-Verlauf das Vergleichsbudget überschreitet.
- `commits_behind` (integer, optional) — Anzahl der Commits auf main, die relativ zum gemeinsamen Vorgänger noch nicht in diesen Branch übernommen wurden. Null, wenn dies nicht berechnet werden konnte, z. B. weil es keinen gemeinsamen Vorgänger gibt oder der Branch-Verlauf das Vergleichsbudget überschreitet.
- `merged_into_branch_id` (string, optional) — ID des Branches, in den die neueste Version dieses Branches gegebenenfalls zusammengeführt wurde

### ListResponseMeta

- `total` (integer, optional)
- `page` (integer, optional)
- `page_size` (integer, optional)

### ValidationError

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

### ResourceAccessInfo

- `is_creator` (boolean, required) — Ob der Nutzer, der die Anfrage stellt, den Agenten erstellt hat.
- `creator_name` (string, required) — Name des Erstellers des Agenten
- `creator_email` (string, required) — E-Mail-Adresse des Erstellers des Agents
- `role` (enum, required) — Die Rolle des Benutzers, der die Anfrage stellt
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — Die Zugriffsebene für anonyme Nutzer. Bei None ist die Ressource nicht öffentlich freigegeben.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — Warum der anfragende Nutzer Zugriff auf diese Ressource hat. 'creator' = der Aufrufer ist der Eigentümer. 'explicit' = der Aufrufer (oder eine seiner Workspace-Gruppen) ist zusätzlich zur workspaceweiten Gruppe „everyone“ in role_to_group_ids aufgeführt. 'workspace_default' = die workspaceweite Gruppe „everyone“ ist in role_to_group_ids aufgeführt (jedes nicht anonyme Workspace-Mitglied, einschließlich Administratoren, sieht diese Ressource). 'workspace_admin' = der Aufrufer ist Workspace-Administrator und der Administratorzugang ist der *einzige* Zugriffsweg; reserviert für Dokumente, die sonst niemand sehen kann. Ermöglicht der Benutzeroberfläche offenzulegen, warum ein Betrachter mit Administrator-Bypass ein Dokument sieht, das nicht explizit mit ihm geteilt wurde.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ValidationErrorLocItem

## Examples

**Response**

```json
{
  "results": [
    {
      "id": "id",
      "name": "name",
      "agent_id": "agent_id",
      "description": "description",
      "created_at": 1,
      "last_committed_at": 1,
      "is_archived": true,
      "protection_status": "writer_perms_required",
      "auto_rebase": true,
      "access_info": {
        "is_creator": true,
        "creator_name": "John Doe",
        "creator_email": "john.doe@example.com",
        "role": "admin",
        "access_source": "creator"
      },
      "current_live_percentage": 1.1,
      "parent_branch_id": "parent_branch_id",
      "draft_exists": true,
      "draft_created_at": 1,
      "draft_is_behind_tip": true,
      "calls_7d": 1,
      "commits_ahead": 1,
      "commits_behind": 1,
      "merged_into_branch_id": "merged_into_branch_id"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "page_size": 1
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches"

querystring = {"include_archived":"true","include_commit_status":"true","limit":"1"}

response = requests.get(url, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1';
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/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1"

	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/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1")

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/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1");
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/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches?include_archived=true&include_commit_status=true&limit=1")! 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()
```