Usa la API de procedencia del contenido para comprobar si un archivo de imagen o audio contiene
señales de procedencia de OpenAI compatibles. Envía un archivo a
POST /v1/content_provenance_checks para recibir los resultados completos de la verificación
en la misma respuesta. Usa estas señales en flujos de trabajo de revisión de contenido,
verificación de hechos, etiquetado, y confianza y seguridad.
Para verificar un archivo en tu navegador, usa la herramienta web en openai.com/verify.
Para conocer los parámetros de las solicitudes y los esquemas de las respuestas, consulta la referencia de la API de procedencia del contenido.
Un resultado not_detected significa que la herramienta no encontró señales compatibles en el
archivo cargado. Aun así, el contenido podría haberse generado con OpenAI si sus metadatos
se eliminaron o muestran indicios de manipulación, si su marca de agua se degradó, si
proviene de un modelo de generación antiguo o si se creó antes de que las señales de procedencia
estuvieran disponibles. Actualmente, la herramienta no detecta contenido generado por
modelos de IA de otras empresas, por lo que un resultado not_detected tampoco descarta
esa posibilidad.
Qué verifica la herramienta de procedencia del contenido
La herramienta de procedencia del contenido busca las siguientes señales en los archivos compatibles:
| Señal | Se aplica a | Qué verifica |
|---|---|---|
| Credenciales de contenido C2PA | Imágenes | Metadatos firmados con detalles sobre el emisor y el uso de IA |
| SynthID | Imágenes y audio | Una marca de agua integrada directamente en los medios compatibles |
Los metadatos C2PA proporcionan más contexto sobre el origen de un archivo. Editar, convertir o compartir un archivo puede eliminar sus metadatos. Una marca de agua SynthID forma parte de la imagen o del audio en sí y puede persistir tras algunas transformaciones.
La API busca señales de OpenAI compatibles. No es un detector de IA de uso general ni identifica contenido generado por todos los sistemas de IA. Las marcas de agua visibles y las etiquetas son distintas de las señales de procedencia que verifica la API.
Verificar un archivo
Envía un archivo de imagen o audio en el campo file con el SDK de OpenAI. El SDK
construye la solicitud multiparte y lee tu clave de API de la variable de entorno
OPENAI_API_KEY:
import { createReadStream } from "node:fs";
import OpenAI, { toStreamingFile } from "openai";
const client = new OpenAI();
const result = await client.contentProvenanceChecks.create({
file: toStreamingFile(createReadStream("myimage.png"), "myimage.png", {
type: "image/png",
}),
});
console.log(result);Usa estas versiones del SDK de OpenAI o posteriores: Python 2.52.0, Go 3.49.0 y Ruby 0.75.0.
Para verificar audio Opus, usa el mismo punto de acceso y establece el tipo de medio
del archivo cargado en audio/ogg:
curl https://api.openai.com/v1/content_provenance_checks \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F "file=@./example.opus;type=audio/ogg"
La respuesta contiene el resultado completo. Por ejemplo, al verificar una imagen se devuelve:
{
"object": "content_provenance_check",
"created_at": 1778000000,
"results": [
{
"type": "c2pa",
"outcome": "detected",
"validation_state": "trusted",
"issuer": "OpenAI OpCo, LLC",
"model": "gpt-image",
"generated_at": "2026-07-27T18:34:12Z"
},
{
"type": "synthid",
"outcome": "not_detected",
"model": null,
"generated_at": null
}
]
}
El campo object identifica la respuesta, y created_at indica cuándo se creó la verificación
mediante una marca de tiempo Unix en segundos. Las entradas de results dependen del
archivo cargado: las imágenes incluyen resultados de C2PA y SynthID, y el audio incluye un
resultado de SynthID. La API omite las verificaciones que no se aplican en lugar de devolver
not_detected.
La API completa la verificación antes de responder. No necesitas crear una tarea en segundo plano, consultar periódicamente otro punto de acceso ni cargar el archivo en la API de archivos.
Si una solicitud falla, revisa el estado HTTP y error.code cuando esté disponible. Un
archivo mal formado, no compatible o bloqueado devuelve 400; una organización sin
acceso recibe 404; y las solicitudes que superan el límite de solicitudes devuelven 429. Reintenta solo ante
fallas transitorias, como límites de solicitudes o errores del servidor. Para obtener orientación general,
consulta Códigos de error de la API.
Comprender los resultados de la verificación
Lee por separado cada entrada aplicable de results. Los resultados de imágenes incluyen
entradas de C2PA y SynthID, mientras que los resultados de audio incluyen una entrada de SynthID. La
respuesta no incluye un campo outcome en el nivel superior.
Resultados de C2PA
Un resultado de C2PA describe el estado de las credenciales de contenido de una imagen:
{
"type": "c2pa",
"outcome": "detected",
"validation_state": "trusted",
"issuer": "OpenAI OpCo, LLC",
"model": "gpt-image",
"generated_at": "2026-07-27T18:34:12Z"
}
Usa los campos de la siguiente manera:
outcomeindica si se detectaron credenciales de generación con IA emitidas por OpenAI, con el valordetectedonot_detected.validation_stateindica si el estado del archivo de manifiesto estrusted,valid,invalidonot_present.issueridentifica al emisor del archivo de manifiesto cuando esa información está disponible.modelidentifica el modelo que generó el contenido cuando esa información está disponible.generated_atindica cuándo se generó el contenido si esa información está disponible.
El resultado es detected solo cuando un archivo de manifiesto con estado trusted o valid identifica a
OpenAI como su emisor e incluye una acción de generación con IA. Un archivo de manifiesto de terceros,
uno sin una acción de generación con IA, uno con estado invalid o
uno con estado not_present produce not_detected. Los campos issuer y
validation_state pueden describir un archivo de manifiesto incluso cuando el resultado es
not_detected.
No consideres un archivo de manifiesto con estado invalid como evidencia confiable de procedencia. Un
resultado not_present significa que la imagen no tiene un archivo de manifiesto C2PA disponible.
Resultados de SynthID
Un resultado de SynthID indica si el verificador detectó una marca de agua compatible en un archivo de imagen o audio:
{
"type": "synthid",
"outcome": "detected",
"model": null,
"generated_at": null
}
Un resultado detected significa que el archivo contiene una marca de agua reconocida. Un
resultado not_detected significa que el verificador no detectó esa marca de agua. Esto
no descarta que el contenido se haya generado o modificado con IA. Los campos model y
generated_at proporcionan el modelo que generó el contenido y el momento de generación cuando esos datos están disponibles;
cualquiera de los dos campos puede tener el valor null.
Formatos compatibles y disponibilidad
La API admite los siguientes formatos de archivo:
- Imágenes: PNG, JPEG y WebP.
- Audio: MP3, Opus, AAC, FLAC, WAV y PCM.
Limita cada archivo cargado a 50 MiB. El audio debe durar 60 segundos o menos después de la decodificación.
Establece el tipo de medio de la parte file cargada. Por ejemplo, usa image/png para una imagen PNG
o audio/ogg para audio Opus. No agregues un campo type independiente ni
establezcas manualmente el encabezado de solicitud multipart/form-data. La opción -F de curl
establece el tipo de contenido de la solicitud y el delimitador multiparte. Envía un archivo por solicitud.
Las verificaciones de procedencia del contenido no pueden acogerse a la retención cero de datos.
Los límites de solicitudes estrictos ayudan a proteger la API contra el uso indebido. Las organizaciones pueden solicitar límites más altos, y OpenAI revisa cada solicitud de forma individual.
Si la API devuelve 429 rate_limit_exceeded, reduce la frecuencia de tus solicitudes y
respeta el encabezado Retry-After cuando esté presente. Consulta
Límites de solicitudes para obtener orientación general sobre los reintentos.
Usar los resultados de la verificación de forma responsable
Usa los resultados de la verificación como evidencia dentro de un proceso de revisión más amplio:
- Considera
detectedcomo evidencia de una señal compatible específica, no como el historial completo de un archivo. - Interpreta
not_detectedcomo la ausencia de evidencia detectada, no como prueba de que el contenido fue creado por una persona o de que no se generó con OpenAI. - Revisa el emisor de C2PA antes de atribuir una imagen a un proveedor específico.
- Verifica el archivo original cuando sea posible. La compresión, el recorte, las capturas de pantalla, la eliminación de metadatos y las conversiones de formato pueden borrar o debilitar una señal.
- Ten en cuenta el producto de origen, el modelo, el formato del archivo y la fecha de creación. No todo el contenido generado con OpenAI contiene una señal compatible.
- Combina las decisiones automatizadas con la revisión humana en flujos de trabajo donde haya mucho en juego.
- No uses consultas repetidas para aplicar ingeniería inversa a una marca de agua, eliminarla o evadirla.
- No deduzcas el prompt, la cuenta ni la identidad del creador a partir de un resultado de verificación.
El uso de la API de procedencia del contenido está sujeto al Acuerdo de servicios de OpenAI.
Para obtener información sobre la configuración de monitoreo y retención en toda la plataforma, consulta los controles de datos.