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

# Obtenir les éléments générés

GET https://api.elevenlabs.io/v1/history

Renvoie la liste de vos contenus audio générés, par exemple par synthèse vocale, conversion de parole en parole, Studio ou doublage. Les générations de musique et d’effets sonores ne sont pas incluses et ne peuvent actuellement pas être récupérées via l’API.

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

- `page_size` (integer, optional, default: 100) — Nombre maximal d’éléments d’historique à renvoyer. Ne peut pas dépasser 1 000 ; 100 par défaut.
- `start_after_history_item_id` (string, optional, nullable) — ID après lequel commencer la récupération. Utilisez ce paramètre pour paginer une vaste collection d'éléments d'historique. Si ce paramètre n'est pas fourni, les éléments d'historique sont récupérés à partir du plus récemment créé, par ordre décroissant de leur date de création.
- `voice_id` (string, optional, nullable) — ID de la voix selon laquelle filtrer. Vous pouvez utiliser le point de terminaison [Obtenir les voix](/docs/api-reference/voices/search) pour lister toutes les voix disponibles.
- `model_id` (string, optional, nullable) — Terme de recherche utilisé pour filtrer les éléments de l’historique. S’il est fourni, source devient obligatoire.
- `date_before_unix` (integer, optional, nullable) — Horodatage Unix permettant de filtrer les éléments de l’historique avant cette date, exclue.
- `date_after_unix` (integer, optional, nullable) — Horodatage Unix permettant de filtrer les éléments de l’historique après cette date, incluse.
- `sort_direction` (enum, optional, nullable, default: desc) — Sens du tri des résultats.
  - Allowed values: `asc`, `desc`
- `search` (string, optional, nullable) — terme de recherche utilisé pour le filtrage
- `source` (enum, optional, nullable) — Source de l’élément d’historique généré
  - Allowed values: `TTS`, `STS`, `Flows`

## Response

### 200

Réponse réussie

- `history` (list of SpeechHistoryItemResponseModel, required) — Liste des éléments de l'historique vocal.
- `has_more` (boolean, required) — Indique s’il y a d’autres éléments d’historique à récupérer.
- `last_history_item_id` (string, optional, nullable) — L’ID du dernier élément d’historique.
- `scanned_until` (integer, optional, nullable) — L’horodatage du dernier élément de l’historique.

## Errors

### 422 Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### SpeechHistoryItemResponseModel

- `history_item_id` (string, required) — L’ID de l’élément d’historique.
- `date_unix` (integer, required) — Horodatage Unix de création de l’élément.
- `character_count_change_from` (integer, required) — Nombre de caractères avant la modification.
- `character_count_change_to` (integer, required) — Nombre de caractères après la modification.
- `content_type` (string, required) — Type de contenu de l’élément généré.
- `state` (any, required)
- `request_id` (string, optional, nullable) — L’ID de la requête.
- `voice_id` (string, optional, nullable) — L’ID de la voix utilisée.
- `model_id` (string, optional, nullable) — L’ID du modèle.
- `voice_name` (string, optional, nullable) — Le nom de la voix.
- `voice_category` (enum, optional, nullable) — Catégorie de la voix. Valeur possible : 'premade', 'cloned', 'generated' ou 'professional'.
  - Allowed values: `premade`, `cloned`, `generated`, `professional`
- `text` (string, optional, nullable) — Le texte utilisé pour générer l’élément audio.
- `settings` (map from string to any, optional, nullable) — Les paramètres de l'élément d'historique.
- `share_link_id` (string, optional, nullable) — L’ID du lien de partage.
- `source` (enum, optional, nullable) — La source de l'élément d'historique : TTS (text to speech), STS (speech to text), AN (audio native), Projects, Dubbing, PlayAPI, PD (dictionnaire de prononciation) ou ConvAI (plateforme Agents).
  - Allowed values: `TTS`, `STS`, `Projects`, `PD`, `AN`, `Dubbing`, `PlayAPI`, `ConvAI`, `VoiceGeneration`, `InVPC`, `Flows`, `VoicePreview`
- `alignments` (HistoryAlignmentsResponseModel, optional, nullable) — Alignements de l’élément d’historique.
- `dialogue` (list of DialogueInputResponseModel, optional, nullable) — Le dialogue (paires voix-texte) utilisé pour générer l’élément audio. Si ce champ est défini, les champs `text` et `voice_id` de niveau supérieur seront vides.
- `output_format` (string, optional, nullable) — Le format de sortie dans lequel l’audio a été généré à l’origine.

### ValidationError

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

### HistoryAlignmentsResponseModel

- `alignment` (HistoryAlignmentResponseModel, required) — Alignement du texte.
- `normalized_alignment` (HistoryAlignmentResponseModel, required) — L’alignement normalisé du texte.

### DialogueInputResponseModel

- `text` (string, required) — Le texte de la ligne d’entrée du dialogue.
- `voice_id` (string, required) — L’ID de la voix utilisée pour cette ligne d’entrée de dialogue.
- `voice_name` (string, required) — Le nom de la voix utilisée pour cette ligne d’entrée de dialogue.

### ValidationErrorLocItems

- string
- integer

### HistoryAlignmentResponseModel

- `characters` (list of string, required) — Caractères de l’alignement.
- `character_start_times_seconds` (list of double, required) — Les heures de début des caractères en secondes.
- `character_end_times_seconds` (list of double, required) — Les heures de fin des caractères en secondes.

## Examples

**Response**

```json
{
  "history": [
    {
      "history_item_id": "ja9xsmfGhxYcymxGcOGB",
      "date_unix": 1714650306,
      "character_count_change_from": 17189,
      "character_count_change_to": 17231,
      "content_type": "audio/mpeg",
      "state": null,
      "request_id": "BF0BZg4IwLGBlaVjv9Im",
      "voice_id": "21m00Tcm4TlvDq8ikWAM",
      "model_id": "eleven_multilingual_v2",
      "voice_name": "Rachel",
      "voice_category": "premade",
      "text": "Hello, world!",
      "settings": {
        "similarity_boost": 0.5,
        "stability": 0.71,
        "style": 0,
        "use_speaker_boost": true
      },
      "source": "TTS"
    }
  ],
  "has_more": true,
  "last_history_item_id": "ja9xsmfGhxYcymxGcOGB",
  "scanned_until": 1714650306
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/history"

querystring = {"date_after_unix":"1640995200","date_before_unix":"1640995200","model_id":"eleven_turbo_v2","search":"In the land far far away","sort_direction":"desc","source":"TTS"}

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

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS';
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/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS"

	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/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS")

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/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS");
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/history?date_after_unix=1640995200&date_before_unix=1640995200&model_id=eleven_turbo_v2&search=In+the+land+far+far+away&sort_direction=desc&source=TTS")! 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()
```