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

# Listar pruebas de respuesta del agente

GET https://api.elevenlabs.io/v1/convai/agent-testing

Enumera todas las pruebas de respuesta de agentes con compatibilidad con paginación y filtrado de búsqueda opcional.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/tests/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) — Se usa para obtener la página siguiente. El cursor se devuelve en la respuesta.
- `page_size` (integer, optional, default: 30) — Número máximo de pruebas que se devolverán. No puede superar 100; el valor predeterminado es 30.
- `search` (string, optional) — Consulta de búsqueda para filtrar pruebas y carpetas por nombre.
- `parent_folder_id` (string, optional) — Filtra por ID de carpeta principal. Utiliza 'root' para obtener elementos de la carpeta raíz.
- `types` (enum, optional) — Si está presente, la ruta de API devolverá solo pruebas/carpetas de los tipos indicados.
  - Allowed values: `llm`, `tool`, `simulation`, `folder`
- `include_folders` (boolean, optional, deprecated) — Obsoleto. Usa el parámetro de consulta `types` e incluye `folder` en su lugar.
- `sort_mode` (enum, optional, default: default) — Modo de ordenación para listar pruebas. Usa 'folders_first' para situar las carpetas antes que las pruebas.
  - Allowed values: `default`, `folders_first`
- `sharing_mode` (enum, optional) — Filtra la visibilidad de las pruebas. Usa `shared_with_me` para devolver solo las pruebas o carpetas compartidas con el usuario actual que este no haya creado.
  - Allowed values: `all`, `shared_with_me`
- `created_by_user_id` (string, optional) — Filtra pruebas y carpetas por el ID de usuario del creador. Usa '@me' para referirte al usuario autenticado.

## Response

### 200

Respuesta correcta.

- `tests` (list of UnitTestSummaryResponseModel, required)
- `has_more` (boolean, required)
- `next_cursor` (string, optional)

## Errors

### 422 Tests List Request Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### UnitTestSummaryResponseModel

- `id` (string, required) — El ID de la prueba
- `name` (string, required) — Nombre de la prueba
- `created_at_unix_secs` (integer, required) — Hora de creación de la prueba en segundos Unix
- `last_updated_at_unix_secs` (integer, required) — Hora de la última actualización de la prueba en segundos Unix
- `type` (enum, required) — Tipo de prueba o entidad
  - Allowed values: `llm`, `tool`, `simulation`, `folder`
- `access_info` (ResourceAccessInfo, optional) — La información de acceso de la prueba.
- `entity_type` (enum, optional, default: test) — El tipo de entidad (prueba o carpeta)
  - Allowed values: `test`, `folder`
- `folder_parent_id` (string, optional) — El ID de la carpeta principal
- `folder_path` (list of AgentTestFolderPathSegmentResponseModel, optional) — Los segmentos de la ruta de la carpeta desde la raíz hasta esta entidad
- `children_count` (integer, optional) — Número de elementos secundarios directos (pruebas y subcarpetas), solo para carpetas
- `conversation_initiation_source` (enum, optional, default: unknown) — Canal como el que la prueba simula la conversación. Null para carpetas o el comportamiento predeterminado.
  - Allowed values: `unknown`, `android_sdk`, `node_js_sdk`, `react_native_sdk`, `react_sdk`, `js_sdk`, `python_sdk`, `widget`, `sip_trunk`, `twilio`, `exotel`, `genesys`, `avaya`, `audiocodes`, `swift_sdk`, `whatsapp`, `twilio_sms`, `flutter_sdk`, `zendesk_integration`, `slack_integration`, `telegram_integration`, `intercom_integration`, `freshdesk_integration`, `salesforce_integration`, `template_preview`, `genesys_bot_connector`, `subagent_tool`

### ValidationError

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

### ResourceAccessInfo

- `is_creator` (boolean, required) — Indica si el usuario que realiza la solicitud es el creador del agente
- `creator_name` (string, required) — Nombre del creador del agente
- `creator_email` (string, required) — Correo electrónico del creador del agente
- `role` (enum, required) — El rol del usuario que realiza la solicitud
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — El nivel de acceso para usuarios anónimos. Si es None, el recurso no se comparte públicamente.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — Por qué el usuario solicitante tiene acceso a este recurso. 'creator' = quien realiza la llamada es el propietario. 'explicit' = quien realiza la llamada (o uno de sus grupos del espacio de trabajo) figura en role_to_group_ids, además del grupo general de todos del espacio de trabajo. 'workspace_default' = el grupo general de todos del espacio de trabajo figura en role_to_group_ids (todos los miembros no anónimos del espacio de trabajo, incluidos los administradores, ven este recurso). 'workspace_admin' = quien realiza la llamada es administrador del espacio de trabajo y el puesto de administrador es la *única* vía de acceso; reservado para documentos que nadie más puede ver. Permite que la interfaz revele por qué un usuario que omite los permisos de administrador ve un documento que no se compartió explícitamente con él.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### AgentTestFolderPathSegmentResponseModel

- `id` (string, required)
- `name` (string, optional, default: )

### ValidationErrorLocItem

## Examples

**Response**

```json
{
  "tests": [
    {
      "id": "id",
      "name": "name",
      "created_at_unix_secs": 1,
      "last_updated_at_unix_secs": 1,
      "type": "llm",
      "access_info": {
        "is_creator": true,
        "creator_name": "John Doe",
        "creator_email": "john.doe@example.com",
        "role": "admin",
        "access_source": "creator"
      },
      "entity_type": "test",
      "folder_parent_id": "folder_parent_id",
      "folder_path": [
        {
          "id": "id"
        }
      ],
      "children_count": 1,
      "conversation_initiation_source": "unknown"
    }
  ],
  "has_more": true,
  "next_cursor": "next_cursor"
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/agent-testing"

querystring = {"created_by_user_id":"created_by_user_id","cursor":"cursor","include_folders":"true","page_size":"1","parent_folder_id":"parent_folder_id","search":"search","sharing_mode":"all","sort_mode":"default","types":"[\"llm\"]"}

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

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D';
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/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D"

	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/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D")

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/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D");
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/agent-testing?created_by_user_id=created_by_user_id&cursor=cursor&include_folders=true&page_size=1&parent_folder_id=parent_folder_id&search=search&sharing_mode=all&sort_mode=default&types=%5B%22llm%22%5D")! 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()
```