> This is a page from the ElevenLabs documentation. For an index of the documentation, fetch https://elevenlabs.io/docs/llms.txt.

# API pochodzenia treści (beta)

Audio generowane przez ElevenLabs zawiera niesłyszalny znak wodny osadzony bezpośrednio w próbkach audio. Endpoint pochodzenia treści, `POST /v1/content-provenance/watermark`, odczytuje przesłany plik i informuje, czy go wykrył.

Gdy znak wodny pasuje do rekordu generowania, odpowiedź podaje produkt i model, które utworzyły audio, czas jego wygenerowania oraz identyfikator generowania. Nigdy nie zawiera promptu, konta ani użytkownika, który utworzył generowanie.

## Co zwraca znak wodny

Zakończone sprawdzenie zwraca dwa pola: `is_detected` i `details`.

**`is_detected`** ma wartość `true`, gdy dekoder rozpoznał w pliku znak wodny ElevenLabs, a `false`, gdy go nie rozpoznał.

**`details`** jest uzupełniane tylko wtedy, gdy ze znaku wodnego można odzyskać szczegóły generowania, co może nie być możliwe w przypadku krótkiego lub mocno zmienionego audio. Zawiera wtedy `product`, `model`, `generated_at` i `unique_id`. Każde z tych czterech pól może mieć wartość `null`. Jeśli nie znaleziono pasującego rekordu lub znaku wodnego, `details` ma wartość `null`.

Możesz też wysłać `version`, aby wybrać dekoder odczytujący plik. Pomiń je lub wyślij `latest`, aby użyć najnowszego dekodera. Obecnie obsługiwane jest tylko `latest`.

## Sprawdź plik

Prześlij audio jako formularz multipart z polem o nazwie `file` i ustaw typ MIME części, na przykład `audio/mpeg`. Twój klucz API musi mieć uprawnienie do znaku wodnego. Tokeny dostępu OAuth nie są akceptowane.

```bash
curl -X POST https://api.elevenlabs.io/v1/content-provenance/watermark \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -F "file=@./example.mp3;type=audio/mpeg"
```

`version` jest opcjonalne. Aby wysłać je jawnie:

```bash
curl -X POST https://api.elevenlabs.io/v1/content-provenance/watermark \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -F "file=@./example.mp3;type=audio/mpeg" \
  -F "version=latest"
```

Plik ze znakiem wodnym zwraca coś takiego:

```json
{
  "is_detected": true,
  "details": {
    "product": "Music",
    "model": "Eleven Music v2",
    "generated_at": "2026-07-27T18:34:12+00:00",
    "unique_id": "row-123"
  }
}
```

## Limity

**Akceptowane pliki.** Dowolny typ `audio/*`, który dekoder może odczytać, w tym MP3, WAV, FLAC, AAC i Ogg. Możesz też pominąć typ MIME lub wysłać `application/octet-stream`. Obraz lub inny typ niebędący audio zwraca `400` ze statusem `invalid_file_type`.

**Rozmiar i długość.** Każdy plik może mieć maksymalnie 50 MB oraz od 0,5 sekundy do 5 minut po zdekodowaniu. Wysyłaj jeden plik na żądanie.

**Limit żądań.** Każdy użytkownik klucza API może przesłać 25 sprawdzeń w ciągu 24 godzin. Żądania ponad limit zwracają `429`. Jeśli potrzebujesz wyższego limitu, [skontaktuj się z nami](https://elevenlabs.io/docs/help-center/other/how-can-i-contact-support).

## Obsługa błędów

Warto ponowić próbę później po otrzymaniu `429`. Kod `400` lub `422` oznacza, że trzeba zmienić samo żądanie, na przykład plik nie jest audio albo `version` ma wartość inną niż `latest`.

## Korzystanie z wyniku

Endpoint odczytuje tylko znak wodny, który już znajduje się w pliku. Odpowiedź nie zawiera promptu ani konta, więc przy każdej decyzji zależnej od pochodzenia audio uwzględnij człowieka.