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

# Agentbranches weergeven

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

Retourneert een lijst met branches van een agent

Reference: https://elevenlabs.io/docs/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) — De id van een agent. Deze wordt teruggegeven wanneer de agent wordt gemaakt.

### Query parameters

- `include_archived` (boolean, optional, default: false) — Of gearchiveerde branches moeten worden opgenomen
- `limit` (integer, optional, default: 100) — Het maximale aantal resultaten dat moet worden geretourneerd
- `include_commit_status` (boolean, optional, default: false) — Of moet worden berekend in hoeverre elke branch afwijkt van main (commits_ahead/commits_behind). Hiervoor wordt de versie-DAG van elke branch doorlopen, dus dit is traag voor agents met een lange geschiedenis en staat standaard uit, waardoor deze velden null blijven.

## Response

### 200

Geslaagde response

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

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `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, nullable) — Toegangsinformatie voor de branch
- `current_live_percentage` (double, optional, default: 0) — Percentage van het verkeer dat live is op de branch
- `parent_branch_id` (string, optional, nullable) — ID van de bovenliggende branch
- `draft_exists` (boolean, optional, default: false) — Of er een concept bestaat voor de branch
- `draft_created_at` (integer, optional, nullable) — Unix-seconden waarop de conceptversie van de aanroeper op deze branch voor het eerst is gemaakt, of null als er geen conceptversie is. Een conceptversie die vóór last_committed_at is gemaakt, is geschreven voor een configuratie die de branch inmiddels heeft verlaten en weerspiegelt daarom mogelijk niet de huidige configuratie.
- `draft_is_behind_tip` (boolean, optional, default: false) — Of het concept van de aanroeper op deze branch is gemaakt vóór de laatste commit van de branch, wat betekent dat het is geschreven op basis van een configuratie waar de branch sindsdien van is afgeweken en mogelijk niet de huidige configuratie weerspiegelt.
- `calls_7d` (integer, optional, default: 0) — Aantal gesprekken in de afgelopen 7 dagen
- `commits_ahead` (integer, optional, nullable) — Aantal commits op deze branch dat nog niet op main staat, ten opzichte van hun gemeenschappelijke voorouder. Null als dit niet kon worden berekend (bijv. geen gemeenschappelijke voorouder of de branchgeschiedenis overschrijdt het vergelijkingsbudget).
- `commits_behind` (integer, optional, nullable) — Aantal commits op main dat nog niet in deze branch is opgenomen, ten opzichte van hun gemeenschappelijke voorouder. Null als dit niet kon worden berekend (bijv. geen gemeenschappelijke voorouder of de branchgeschiedenis overschrijdt het vergelijkingsbudget).
- `merged_into_branch_id` (string, optional, nullable) — ID van de branch waarin de meest recente versie van deze branch is samengevoegd, indien van toepassing

### ListResponseMeta

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

### ValidationError

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

### ResourceAccessInfo

- `is_creator` (boolean, required) — Of de gebruiker die de request doet de maker van de agent is
- `creator_name` (string, required) — Naam van de maker van de agent
- `creator_email` (string, required) — E-mailadres van de maker van de agent
- `role` (enum, required) — De rol van de gebruiker die de request uitvoert
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — Het toegangsniveau voor anonieme gebruikers. Als dit None is, wordt de resource niet openbaar gedeeld.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Waarom de aanvragende gebruiker toegang heeft tot deze resource. 'creator' = de aanroeper is de eigenaar. 'explicit' = de aanroeper (of een van diens workspacegroepen) staat in role_to_group_ids, naast de workspacebrede everyone-groep. 'workspace_default' = de workspacebrede everyone-groep staat in role_to_group_ids (elk niet-anoniem workspacelid, inclusief beheerders, ziet deze resource). 'workspace_admin' = de aanroeper is een workspacebeheerder en de beheerdersrol is de *enige* manier om toegang te krijgen; gereserveerd voor documenten die niemand anders kan zien. Hiermee kan de UI uitleggen waarom een kijker die beheerdersrechten omzeilt een document ziet dat niet expliciet met diegene is gedeeld.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ValidationErrorLocItems

## Examples

**Response**

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

**SDK Code**

```python
import requests

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

response = requests.get(url)

print(response.json())
```

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

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

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")
  .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');

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

```csharp
using RestSharp;

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