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

# Obtener elementos generados

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

Devuelve una lista de tu audio generado (por ejemplo, texto a voz, voz a voz, Studio o doblaje). Las generaciones de música y efectos de sonido no se incluyen y actualmente no se pueden obtener mediante la 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) — Número máximo de elementos del historial que se devolverán. No puede superar 1000; el valor predeterminado es 100.
- `start_after_history_item_id` (string, optional, nullable) — ID a partir del cual empezar a recuperar elementos. Usa este parámetro para paginar una colección grande de elementos del historial. Si no se proporciona, los elementos del historial se recuperarán empezando por el creado más recientemente, ordenados de forma descendente por fecha de creación.
- `voice_id` (string, optional, nullable) — ID de la voz por la que se filtrará. Puedes usar la ruta de API [Obtener voces](/docs/api-reference/voices/search) para mostrar todas las voces disponibles.
- `model_id` (string, optional, nullable) — Término de búsqueda utilizado para filtrar elementos del historial. Si se proporciona, source pasa a ser obligatorio.
- `date_before_unix` (integer, optional, nullable) — Marca de tiempo Unix para filtrar elementos del historial anteriores a esta fecha (sin incluirla).
- `date_after_unix` (integer, optional, nullable) — Marca de tiempo Unix para filtrar elementos del historial posteriores a esta fecha (incluida).
- `sort_direction` (enum, optional, nullable, default: desc) — Dirección de ordenación de los resultados.
  - Allowed values: `asc`, `desc`
- `search` (string, optional, nullable) — término de búsqueda utilizado para filtrar
- `source` (enum, optional, nullable) — Origen del elemento de historial generado
  - Allowed values: `TTS`, `STS`, `Flows`

## Response

### 200

Respuesta correcta.

- `history` (list of SpeechHistoryItemResponseModel, required) — Una lista de elementos del historial de voz.
- `has_more` (boolean, required) — Indica si hay más elementos del historial que obtener.
- `last_history_item_id` (string, optional, nullable) — El ID del último elemento del historial.
- `scanned_until` (integer, optional, nullable) — La marca de tiempo del último elemento del historial.

## Errors

### 422 Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### SpeechHistoryItemResponseModel

- `history_item_id` (string, required) — El ID del elemento del historial.
- `date_unix` (integer, required) — Marca de tiempo Unix de creación del elemento.
- `character_count_change_from` (integer, required) — El cambio en el recuento de caracteres desde.
- `character_count_change_to` (integer, required) — El cambio en el recuento de caracteres hasta.
- `content_type` (string, required) — El tipo de contenido del elemento generado.
- `state` (any, required)
- `request_id` (string, optional, nullable) — El ID de la solicitud.
- `voice_id` (string, optional, nullable) — El ID de la voz utilizada.
- `model_id` (string, optional, nullable) — El ID del modelo.
- `voice_name` (string, optional, nullable) — El nombre de la voz.
- `voice_category` (enum, optional, nullable) — La categoría de la voz. Puede ser 'premade', 'cloned', 'generated' o 'professional'.
  - Allowed values: `premade`, `cloned`, `generated`, `professional`
- `text` (string, optional, nullable) — El texto utilizado para generar el elemento de audio.
- `settings` (map from string to any, optional, nullable) — La configuración del elemento del historial.
- `share_link_id` (string, optional, nullable) — El ID del enlace para compartir.
- `source` (enum, optional, nullable) — El origen del elemento del historial. Puede ser TTS (texto a voz), STS (voz a texto), AN (audio nativo), Proyectos, Doblaje, PlayAPI, PD (diccionario de pronunciación) o ConvAI (plataforma de agentes).
  - Allowed values: `TTS`, `STS`, `Projects`, `PD`, `AN`, `Dubbing`, `PlayAPI`, `ConvAI`, `VoiceGeneration`, `InVPC`, `Flows`, `VoicePreview`
- `alignments` (HistoryAlignmentsResponseModel, optional, nullable) — Las alineaciones del elemento del historial.
- `dialogue` (list of DialogueInputResponseModel, optional, nullable) — El diálogo (pares de voz y texto) utilizado para generar el elemento de audio. Si se establece, los campos de nivel superior `text` y `voice_id` estarán vacíos.
- `output_format` (string, optional, nullable) — El formato de salida en el que se generó originalmente el audio.

### ValidationError

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

### HistoryAlignmentsResponseModel

- `alignment` (HistoryAlignmentResponseModel, required) — La alineación del texto.
- `normalized_alignment` (HistoryAlignmentResponseModel, required) — La alineación normalizada del texto.

### DialogueInputResponseModel

- `text` (string, required) — El texto de la línea de entrada del diálogo.
- `voice_id` (string, required) — El ID de la voz utilizada para esta línea de entrada de diálogo.
- `voice_name` (string, required) — El nombre de la voz utilizada para esta línea de entrada de diálogo.

### ValidationErrorLocItems

### HistoryAlignmentResponseModel

- `characters` (list of string, required) — Los caracteres de la alineación.
- `character_start_times_seconds` (list of double, required) — Los tiempos de inicio de los caracteres en segundos.
- `character_end_times_seconds` (list of double, required) — Las horas de finalización de los caracteres en segundos.

## 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()
```