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

# Nasynchronisatieprojecten weergeven

GET https://api.elevenlabs.io/v1/dubbing/project

Lijst de nasynchronisatieprojecten in je workspace op waartoe je toegang hebt, nieuwste eerst en cursor-gepagineerd. Vermelde projecten bevatten geen `language_ids`; haal een project op of vermeld de taaldoelen om deze te bekijken.

Reference: https://elevenlabs.io/docs/api-reference/dubbing/list-projects

## 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, nullable) — Geef de `next_cursor` uit een vorig antwoord door om de daaropvolgende pagina op te halen. Laat deze weg voor de eerste pagina.
- `page_size` (integer, optional, default: 20) — Aantal projecten per pagina. Wordt begrensd tussen 1 en 100 in plaats van afgewezen, zodat een grotere waarde een volledige pagina retourneert.
- `status` (string, optional, nullable) — Filter op projecten met deze status: `queued`, `preparing`, `ready` of `failed`. Laat weg om alle statussen te retourneren.
- `sort_direction` (enum, optional, default: DESCENDING) — Sorteer op aanmaaktijd; standaard eerst de nieuwste.
  - Allowed values: `ASCENDING`, `DESCENDING`

## Response

### 200

Geslaagde response

- `projects` (list of DubbingProjectResponse, required) — De pagina met nasynchronisatieprojecten waartoe de aanroeper toegang heeft.
- `next_cursor` (string, optional, nullable) — Ondoorzichtige cursor om als `cursor` terug te geven voor de volgende pagina, of null wanneer er geen resultaten meer zijn.

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### DubbingProjectResponse

- `project_id` (string, required) — Unieke identificatiecode van het nasynchronisatieproject.
- `status` (enum, required) — Levenscyclusstatus van het project: `queued` voordat de bron wordt opgepakt, `preparing` tijdens de transcriptie, `ready` zodra de transcriptie klaar is en taaldoelen kunnen starten, of `failed`. Een project wordt nooit gerapporteerd als `processing` — die waarde hoort bij taaldoelen.
  - Allowed values: `queued`, `preparing`, `processing`, `ready`, `failed`
- `revision` (integer, required) — Monotone teller die wordt verhoogd wanneer het brontanscript wordt bewerkt (segment toevoegen/bewerken/verwijderen).
- `created_at` (string, required) — Wanneer het project is gemaakt.
- `updated_at` (string, required) — Wanneer het project voor het laatst is bijgewerkt.
- `reference` (string, optional, nullable) — De vrije tekenreeks die je bij het maken van het project hebt opgegeven als `reference`, of null als je niets hebt opgegeven.
- `source_language` (string, optional, nullable) — BCP-47-taaltag van de bronmedia (null indien automatisch gedetecteerd).
- `model_id` (string, optional, nullable) — Nasynchronisatiemodel waarmee elk taaldoel van dit project van nasynchronisatie wordt voorzien. Wordt vastgelegd bij het maken en kan niet per taal worden geselecteerd.
- `media` (DubbingSourceMediaInfo, optional, nullable) — Metadata van bronmedia, ingevuld zodra de bron is opgehaald en gedecodeerd (kort na create, voordat het project `ready` is); tot die tijd null.
- `language_ids` (list of string, optional, default: []) — ID's van de taaldoelen onder dit project. Wordt ingevuld wanneer één project wordt opgehaald en bij het maken wanneer `target_language` er een maakt. Is altijd leeg in lijstreacties — vraag in plaats daarvan de taaldoelen van het project op.
- `webhook_ids` (list of string, optional, default: []) — ID's van de workspace-webhooks die een melding ontvangen wanneer dit project en de bijbehorende talen de status `ready`, `completed` of `failed` bereiken.
- `error` (DubbingError, optional, nullable) — Waarom het project is mislukt; null tenzij `status` `failed` is. Ook null voor de enkele projecten die mislukten voordat foutmeldingrapportage werd geïntroduceerd.
- `warnings` (list of VoicesNotPermittedWarning, optional) — Niet-fatale omstandigheden die zijn opgetreden tijdens het voorbereiden van de bron, of leeg als er geen zijn. Weerspiegelt de nieuwste voorbereiding. Omstandigheden die zijn opgetreden tijdens het nasynchroniseren van een specifieke taal worden in plaats daarvan bij die taal gerapporteerd.

### ValidationError

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

### DubbingSourceMediaInfo

Metadata over de bronmedia van het project.

- `filename` (string, optional, nullable) — Oorspronkelijke bestandsnaam van de geüploade bronmedia (null voor URL-bronnen).
- `duration_s` (double, optional, nullable) — Duur van de bronmedia, in seconden.
- `has_video` (boolean, optional, nullable) — Of de bronmedia een videostream bevatten.
- `mime_type` (string, optional, nullable) — MIME type of the uploaded source media (null for URL sources).

### DubbingError

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

### VoicesNotPermittedWarning

- `type` ("voices_not_permitted", required) — Identificeert deze waarschuwing; gebruik dit om te vertakken en de andere velden te lezen.
- `speaker_ids` (list of string, required) — Speakers waarvan de stemmen niet mochten worden gekloond. De dub gebruikte voor elk van hen een vervangende stem; alle andere speakers blijven ongewijzigd.
- `message` (string, required) — Voor mensen leesbare beschrijving van de waarschuwing, voor weergave. De formulering kan op elk moment veranderen, dus we raden aan in plaats daarvan te vertakken op `type`.

### ValidationErrorLocItems

## Examples

**Response**

```json
{
  "projects": [
    {
      "project_id": "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3",
      "status": "ready",
      "revision": 3,
      "created_at": "2026-07-03T10:15:30Z",
      "updated_at": "2026-07-03T10:17:12Z",
      "reference": "Q3 marketing video",
      "source_language": "en",
      "model_id": "dubbing_v2",
      "media": {
        "filename": "promo.mp4",
        "duration_s": 42.5,
        "has_video": true,
        "mime_type": "video/mp4"
      },
      "language_ids": [
        "lang_1001kwkyxp0je6ktn4knsfrasx5s"
      ],
      "webhook_ids": [],
      "warnings": [
        {
          "type": "voices_not_permitted",
          "speaker_ids": [
            "speaker_1"
          ],
          "message": "Voice cloning was not permitted for speaker speaker_1, so a replacement voice was used."
        }
      ]
    }
  ]
}
```

**SDK Code**

```python
import requests

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

querystring = {"page_size":"20"}

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

print(response.json())
```

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

	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?page_size=20")

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?page_size=20")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/dubbing/project?page_size=20');

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

```csharp
using RestSharp;

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