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

# API de procedencia del contenido (beta)

El audio generado por ElevenLabs lleva una marca de agua inaudible integrada en las propias muestras de audio. La ruta de API de procedencia del contenido, `POST /v1/content-provenance/watermark`, lee un archivo que subas y te indica si encuentra una.

Cuando la marca de agua coincide con un registro de generación, la respuesta indica el producto y el modelo que produjeron el audio, cuándo se generó y un identificador de esa generación. Nunca incluye el prompt, la cuenta ni el usuario responsable de la generación.

## Qué informa la marca de agua

Una comprobación finalizada devuelve dos campos: `is_detected` y `details`.

**`is_detected`** es `true` cuando el decodificador reconoce una marca de agua de ElevenLabs en el archivo y `false` cuando no la reconoce.

**`details`** solo se rellena cuando se pueden recuperar los detalles de la generación a partir de la marca de agua, algo que puede no ser posible con audio corto o muy modificado. En ese caso, contiene `product`, `model`, `generated_at` y `unique_id`. Cualquiera de estos cuatro puede ser `null`. Si no coincide ningún registro o no se encuentra ninguna marca de agua, `details` es `null`.

También puedes enviar `version` para elegir qué decodificador lee el archivo. Omítelo o envía `latest` para usar el decodificador más reciente. Actualmente, solo se admite `latest`.

## Comprueba un archivo

Sube el audio como un formulario multipart con el nombre de campo `file` y establece el tipo de medio de la parte, por ejemplo, `audio/mpeg`. Tu clave de API necesita el permiso de marca de agua. No se aceptan tokens de acceso OAuth.

```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` es opcional. Para enviarlo explícitamente:

```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"
```

Un archivo que lleva una marca de agua devuelve algo como esto:

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

## Límites

**Archivos aceptados.** Cualquier tipo `audio/*` que el decodificador pueda leer, incluidos MP3, WAV, FLAC, AAC y Ogg. También puedes omitir el tipo de medio o enviar `application/octet-stream`. Una imagen u otro tipo que no sea audio devuelve `400` con el estado `invalid_file_type`.

**Tamaño y duración.** Cada archivo puede tener como máximo 50 MB y durar entre 0,5 segundos y 5 minutos tras la decodificación. Envía un archivo por solicitud.

**Límite de frecuencia.** Cada usuario de clave de API puede enviar 25 comprobaciones cada 24 horas. Las solicitudes que superen ese límite devuelven `429`. Si necesitas un límite mayor, [contacta con nosotros](https://elevenlabs.io/docs/help-center/other/how-can-i-contact-support).

## Gestión de errores

Merece la pena volver a intentar un `429` más tarde. Un `400` o `422` significa que la propia solicitud debe cambiar, por ejemplo, porque contiene un archivo que no es de audio o un `version` distinto de `latest`.

## Uso del resultado

La ruta de API lee la marca de agua que ya está en el archivo, nada más. La respuesta no incluye ningún prompt ni cuenta, así que, para cualquier decisión que dependa de la procedencia del audio, mantén a una persona involucrada.