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

# Lister les exécutions de tests

GET https://api.elevenlabs.io/v1/convai/test-invocations

Répertorie toutes les invocations de test, avec prise en charge de la pagination et filtrage de recherche facultatif.

Reference: https://elevenlabs.io/docs/api-reference/tests/test-invocations/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

- `agent_id` (string, optional, nullable) — Filtrer par ID d'agent
- `branch_id` (string, optional, nullable) — Filtrer par ID de branche
- `test_id` (string, optional, nullable) — Filtrer les invocations qui incluent une exécution de cet ID de test
- `start_time` (integer, optional, nullable) — Inclusive lower bound on created_at, in unix seconds
- `end_time` (integer, optional, nullable) — Inclusive upper bound on created_at, in unix seconds
- `version_id` (string, optional, nullable) — Filtrer selon la version de l’agent sur laquelle les tests ont été exécutés
- `page_size` (integer, optional, default: 30) — Nombre maximal de tests à renvoyer. Ne peut pas dépasser 100 ; 30 par défaut.
- `search` (string, optional, nullable) — Requête de recherche pour filtrer les tests et les dossiers par nom.
- `cursor` (string, optional, nullable) — Utilisé pour récupérer la page suivante. Le curseur est renvoyé dans la réponse.

## Response

### 200

Réponse réussie

- `results` (list of TestInvocationSummaryResponseModel, required)
- `has_more` (boolean, required) — Indique si d’autres résultats sont disponibles
- `meta` (ListResponseMeta, optional)
- `next_cursor` (string, optional, nullable) — Curseur pour la page suivante de résultats

## Errors

### 422 Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### TestInvocationSummaryResponseModel

- `id` (string, required) — L’ID de l’invocation de test
- `created_at_unix_secs` (integer, required) — Date de création de l'exécution du test en secondes Unix
- `test_run_count` (integer, required) — Nombre d’exécutions de test dans cette invocation
- `passed_count` (integer, required) — Nombre d’exécutions de test réussies
- `failed_count` (integer, required) — Nombre d’exécutions de test ayant échoué
- `pending_count` (integer, required) — Nombre d’exécutions de test en attente
- `cancelled_count` (integer, required) — Nombre d’exécutions de test annulées
- `title` (string, required) — Titre de l’invocation de test : nom du dossier pour les exécutions de dossiers, sinon nom du test unique ou nombre de tests
- `agent_id` (string, optional, nullable) — L’ID de l’agent auquel appartient cette exécution de test
- `branch_id` (string, optional, nullable) — L’ID de la branche sur laquelle cette invocation de test a été exécutée
- `version_id` (string, optional, nullable) — L’ID de la version de l’agent sur laquelle cette exécution de test a été effectuée. Pour les exécutions de brouillon ou avec remplacement de configuration, il s’agit de la version sur laquelle ces modifications non validées ont été appliquées. None uniquement pour les exécutions enregistrées avant l’existence de ce champ.
- `ran_against_draft` (boolean, optional, default: false) — Indique si l’exécution incluait des modifications non validées, telles qu’un brouillon enregistré ou un remplacement de configuration ad hoc, appliquées sur version_id.
- `runs_diverged_from_version` (boolean, optional, default: false) — Indique si les exécutions de test de cette invocation n’ont pas toutes été effectuées sur la même version, ce qui se produit lorsqu’un sous-ensemble d’exécutions est soumis à nouveau après l’exécution d’origine. Lorsque cette valeur est true, version_id décrit la soumission à nouveau la plus récente plutôt que chaque exécution.
- `access_info` (ResourceAccessInfo, optional, nullable) — Informations d’accès de l’exécution du test
- `repeat_count` (integer, optional, default: 1) — Nombre de répétitions de chaque test dans cette invocation
- `cancelled` (boolean, optional, default: false) — Indique si cette invocation de test a été annulée
- `credits_used` (integer, optional, nullable) — Total des crédits facturés pour les exécutions de test de cette invocation. None lorsqu’aucune exécution ne dispose de données de coût.
- `total_price` (double, optional, nullable) — Prix total en USD pour les exécutions de test de cette invocation. None lorsqu’aucune exécution ne dispose de données de prix.

### 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) — Indique si l’utilisateur effectuant la requête est le créateur de l’agent
- `creator_name` (string, required) — Nom du créateur de l’agent
- `creator_email` (string, required) — Email du créateur de l’agent
- `role` (enum, required) — Le rôle de l'utilisateur effectuant la requête
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — Niveau d’accès des utilisateurs anonymes. Si la valeur est None, la ressource n’est pas partagée publiquement.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Motif pour lequel l’utilisateur demandeur a accès à cette ressource. 'creator' = l’appelant est le propriétaire. 'explicit' = l’appelant, ou l’un de ses groupes du Workspace, figure dans role_to_group_ids en plus du groupe everyone à l’échelle du Workspace. 'workspace_default' = le groupe everyone à l’échelle du Workspace figure dans role_to_group_ids, chaque membre non anonyme du Workspace, y compris les administrateurs, voit cette ressource. 'workspace_admin' = l’appelant est administrateur du Workspace et le siège administrateur est le *seul* moyen d’accès ; réservé aux documents que personne d’autre ne peut voir. Permet à l’interface d’indiquer pourquoi un administrateur bénéficiant d’un accès dérogatoire voit un document qui ne lui a pas été explicitement partagé.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ValidationErrorLocItems

- string
- integer

## Examples

**Response**

```json
{
  "results": [
    {
      "id": "string",
      "created_at_unix_secs": 1,
      "test_run_count": 1,
      "passed_count": 1,
      "failed_count": 1,
      "pending_count": 1,
      "cancelled_count": 1,
      "title": "string",
      "agent_id": "string",
      "branch_id": "string",
      "version_id": "string",
      "ran_against_draft": false,
      "runs_diverged_from_version": false,
      "access_info": {
        "is_creator": true,
        "creator_name": "John Doe",
        "creator_email": "john.doe@example.com",
        "role": "admin",
        "access_source": "creator"
      },
      "repeat_count": 1,
      "cancelled": false,
      "credits_used": 1,
      "total_price": 1.1
    }
  ],
  "has_more": true,
  "meta": {
    "total": 1,
    "page": 1,
    "page_size": 1
  },
  "next_cursor": "string"
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/test-invocations"

response = requests.get(url)

print(response.json())
```

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

	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/test-invocations")

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/test-invocations")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/test-invocations');

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

```csharp
using RestSharp;

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