> 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 idioma de destino de doblaje

GET https://api.elevenlabs.io/v1/dubbing/project/{project_id}/language/{language_id}

Información completa del idioma de destino. Cuando el destino indique `completed`, `outputs` incluirá las URL de descarga firmadas. Para saber cuándo ocurre, recomendamos suscribirte a los `webhook_ids` del proyecto en lugar de consultar esta ruta de API periódicamente; consulta aquí cuando una URL entregada haya caducado o para conciliar tras una edición.

Reference: https://elevenlabs.io/docs/api-reference/dubbing/language-targets/get-language-target

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

- `project_id` (string, required) — Identificador del proyecto de doblaje principal.
- `language_id` (string, required) — Identificador del idioma de destino que se recuperará.

## Response

### 200

Respuesta correcta.

- `language_id` (string, required) — Identificador único del idioma de destino.
- `project_id` (string, required) — Identificador del proyecto de doblaje principal.
- `target_language` (string, required) — Etiqueta de idioma BCP-47 al que se dobla este destino.
- `status` (enum, required) — Estado del ciclo de vida: `queued` (esperando a que el proyecto esté listo o a un trabajador), `processing` mientras se dobla, `completed` cuando su resultado está disponible, `stale` cuando la transcripción ha cambiado después de generar el resultado, o `failed`.
  - Allowed values: `queued`, `processing`, `completed`, `stale`, `failed`
- `revision` (integer, required) — Contador monotónico que aumenta cada vez que cambia la transcripción de este destino (por una edición de origen que le afecta o una edición de su traducción).
- `created_at` (string, required) — Cuándo se creó el idioma de destino.
- `updated_at` (string, required) — Cuándo se actualizó por última vez el idioma de destino.
- `model_id` (string, optional, nullable) — Modelo de doblaje con el que se dobla este destino, heredado del proyecto y no seleccionable por idioma.
- `voice_settings` (VoiceSettings, optional, nullable) — Voice settings applied to every speaker in this language, or null if the defaults apply.
- `outputs` (DubbingLanguageOutputs, optional, nullable) — URL de salida firmadas; null hasta que el destino haya generado una salida (están presentes cuando `completed` y se conservan mientras `stale`; compara `output_revision` con `revision` para saber si la salida está actualizada).
- `output_revision` (integer, optional, nullable) — La `revision` a partir de la que se generó la salida doblada actual; es igual a `revision` cuando está actualizada y menor cuando está `stale`. Es nula hasta que se completa una generación.
- `error` (DubbingError, optional, nullable) — Por qué falló este idioma; null salvo que `status` sea `failed`, y también es null para los pocos idiomas que fallaron antes de que se introdujera el informe de errores. El código `project_failed` indica que falló el proyecto principal, así que consulta el proyecto para conocer la causa subyacente.
- `warnings` (list of VoicesNotPermittedWarning, optional) — Condiciones no críticas detectadas durante el doblaje de este idioma; está vacío si no hay ninguna. Refleja la generación más reciente. Las condiciones detectadas al preparar el origen se notifican en el proyecto.

## Errors

### 422 Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### VoiceSettings

- `cloning_strength` (integer, optional, default: 7) — Con qué intensidad los hablantes doblados clonan las voces de origen, de 0 a 10.

### DubbingLanguageOutputs

URL de descarga firmadas y con límite de tiempo para las salidas de un destino de idioma.

- `lossless_audio` (string, optional, nullable) — URL firmada para la pista de audio doblada sin pérdida, en FLAC. El enlace caduca una hora después de emitirse; vuelve a consultar el destino de idioma para obtener uno nuevo.
- `subtitles` (string, optional, nullable) — Signed URL for the translated lines as WebVTT subtitles, timed to the source speech. Null when none are available, such as for languages dubbed before subtitles were produced. The link expires one hour after it is issued.

### DubbingError

- `message_type` ("error", required)
- `error` (string, required)

### VoicesNotPermittedWarning

- `type` ("voices_not_permitted", required) — Identifica esta advertencia; úsalo para consultar los demás campos.
- `speaker_ids` (list of string, required) — Hablantes cuyas voces no estaban autorizadas para clonación. El doblaje utilizó una voz de sustitución para cada uno de ellos; los demás hablantes no se ven afectados.
- `message` (string, required) — Descripción legible de la advertencia para mostrar. El texto puede cambiar en cualquier momento, por lo que recomendamos crear ramificaciones según `type`.

### ValidationError

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

### ValidationErrorLocItems

## Examples

**Response**

```json
{
  "language_id": "lang_1001kwkyxp0je6ktn4knsfrasx5s",
  "project_id": "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3",
  "target_language": "es",
  "status": "completed",
  "revision": 3,
  "created_at": "2026-07-03T10:16:00Z",
  "updated_at": "2026-07-03T10:20:45Z",
  "model_id": "dubbing_v2",
  "outputs": {
    "lossless_audio": "https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/output.flac?X-Goog-Signature=...",
    "subtitles": "https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/subtitles.vtt?X-Goog-Signature=..."
  },
  "output_revision": 3,
  "warnings": []
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s';
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/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s"

	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/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s")

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/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s");
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/dubbing/project/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/language/lang_1001kwkyxp0je6ktn4knsfrasx5s")! 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()
```