El mensaje Your organization must be verified to use the model gpt-image-2 indica que la petición ha encontrado un requisito de verificación. Para resolverlo, comprueba primero qué servicio recibe la llamada y a qué organización y proyecto pertenece la clave que utiliza el programa. Después, atiende el estado de verificación de esa organización. Que otra organización del panel aparezca como verificada no resuelve esta solicitud.
Si ya completaste el trámite, no hay una regla general que obligue a esperar exactamente 30 minutos y crear otra clave. Hay que identificar qué sigue bloqueado antes de repetir generaciones. Esta guía, revisada el 8 de septiembre de 2026, también sirve para reconocer el mismo aviso cuando menciona gpt-image-1.
Empieza por la petición que ha fallado
Guarda el texto del error, el estado HTTP, el modelo solicitado y, si está disponible, el identificador de petición. No te quedes solo con un 403: dos respuestas con ese estado pueden requerir acciones distintas.
La guía oficial de generación de imágenes indica que el acceso a modelos GPT Image puede requerir verificación de organización. Eso no permite concluir que todas las cuentas tengan idénticos requisitos; el aviso recibido es el punto de partida para tu caso.
Antes de cambiar el código, contrasta estos datos:
| Dato | Dónde comprobarlo | Qué comparar |
|---|---|---|
| Servicio de destino | URL configurada en el cliente, SDK o aplicación | El dominio que recibe la llamada: por ejemplo, api.openai.com para la API directa |
| Procedencia de la clave API | Proyecto o servicio en el que se creó | Que pertenezca al servicio y proyecto que pretendes probar |
| Organización y proyecto | Selectores y configuración del panel de la API | Sus identificadores, no solo nombres que pueden parecerse |
| Configuración en ejecución | Variables y secretos del proceso o despliegue que falla | Que coincidan con los que acabas de revisar en local |
| Modelo | Cuerpo real de la solicitud | El identificador que se envía, no únicamente el que aparece en la interfaz de tu aplicación |
Por ejemplo, verificas la organización de trabajo, pero el servidor sigue cargando una clave de un proyecto personal. Cambiar el texto de la imagen o actualizar el SDK no corrige esa diferencia. Primero sustituye la configuración equivocada mediante el mecanismo habitual de tu despliegue y comprueba que el proceso la ha cargado. No imprimas claves completas ni cabeceras Authorization en los registros.
Si utilizas un intermediario, la verificación de tu organización de OpenAI y las condiciones de ese servicio son asuntos diferentes. Cambiar dominio y clave cambia el servicio probado. La elección de una alternativa se trata en usar GPT Image 2 sin verificar una organización propia.
Qué hacer según el estado de verificación

Abre el aviso de verificación desde la cuenta y el producto que lo solicitaron. La ayuda oficial de verificación distingue estos casos:
| Estado | Siguiente acción |
|---|---|
| Pendiente de completar | Sigue el trámite mostrado en la cuenta prevista |
| No aparece la opción | Comprueba la cuenta, vuelve al producto que la solicitó y revisa más tarde |
| El trámite no carga | Ábrelo desde el aviso original; actualiza el navegador o dispositivo y vuelve a iniciar sesión |
| Fallida o rechazada | Sigue la notificación; reintenta o recurre solo si se ofrece esa opción |
| Completada, pero sin acceso | Confirma cuenta, organización, proyecto, producto y modelo; actualiza la sesión |
La verificación puede ser empresarial, de identidad o ambas. Una «organización» de la API no significa necesariamente que debas constituir una empresa. Para identidad se solicita un documento físico original, válido y expedido por un organismo público de un país admitido; puede requerirse un selfi. No se limita al pasaporte. Cada persona solo puede verificar una cuenta u organización.
Una decisión de rechazo no puede anularse manualmente. Para problemas técnicos del trámite, describe el paso que falla al contactar con soporte. No envíes documentos de identidad ni claves en foros públicos.
Ya está verificada: cómo localizar la diferencia
Conviene comparar dos situaciones concretas: el entorno en el que ves la verificación y el que envía la petición. Hazlo sin cambiar varias cosas a la vez, para poder relacionar cada resultado con su causa.
El panel y la aplicación usan cuentas o proyectos distintos
Anota la organización seleccionada en el panel y localiza el proyecto al que pertenece la clave del programa. Si estás en varios equipos, confirma cuál posee ese proyecto. Si no puedes identificar la procedencia de una credencial, crear una clave en el proyecto correcto permite sustituir esa configuración incierta; hacerlo no verifica una organización ni concede permisos adicionales.
La referencia de autenticación contempla las cabeceras OpenAI-Organization y OpenAI-Project para elegir contexto cuando perteneces a varias organizaciones o usas claves de usuario antiguas. Revisa las que ya envía tu integración. No añadas identificadores supuestos: seleccionar un proyecto no otorga acceso a él.
Comprueba también si el cliente tiene una URL personalizada. Una variable corregida en tu terminal no cambia por sí sola los secretos guardados en el servidor. Si existen varios procesos o trabajadores, localiza el que produjo el error por su registro y hora.
El panel funciona y el programa no
Una generación correcta en Playground confirma lo que hizo esa sesión con el modelo seleccionado. Úsala como punto de comparación: ¿coinciden la organización, el proyecto, el modelo y el servicio con los del programa?
Si alguno difiere, corrígelo antes de otra prueba. Si coinciden, revisa los permisos y restricciones del proyecto y la configuración efectiva del cliente. No es necesario producir otra imagen en Playground cada vez que cambias una variable local.
Todo coincide y la verificación es reciente
La documentación de autenticación dice que la mayoría de los cambios que afectan a una clave se propagan en 15 minutos, aunque pueden tardar más. Ese plazo no garantiza la aprobación de una verificación ni acceso al modelo al cumplirse el minuto 15. Tampoco respalda una regla universal de 30 minutos.
Registra cuándo completaste el trámite y cuándo ocurrió la petición posterior. Si el bloqueo persiste, esos tiempos sirven para explicar el caso; repetir la misma llamada en bucle no aporta información nueva.
Comprueba además el acceso aplicable al modelo. La ficha de GPT Image 2 no admite el nivel gratuito de la API y enumera límites desde Tier 1. Pertenecer a un nivel compatible no sustituye otros requisitos de acceso.
Una prueba que termina en un archivo, no en otro bucle

Tras corregir una diferencia concreta, realiza una única generación desde el entorno que necesitas validar. El siguiente ejemplo usa Python 3 sin instalar un SDK, apunta a la API directa de OpenAI y toma OPENAI_API_KEY del entorno. Debe ser una clave ya configurada en el servidor o terminal privado; no la pegues en el archivo.
La llamada puede generar un cargo. El ejemplo sigue el formato documentado de Images API; no representa una prueba ejecutada con tu cuenta. Crea una carpeta nueva para no confundir una imagen antigua con el resultado actual y no incorpora reintentos automáticos.
pythonimport base64 import binascii import json import os import tempfile from pathlib import Path from urllib.error import HTTPError, URLError from urllib.request import Request, urlopen key = os.environ.get("OPENAI_API_KEY") if not key: raise SystemExit("Falta OPENAI_API_KEY en este entorno") folder = Path(tempfile.mkdtemp(prefix="prueba-imagen-")) request = Request( "https://api.openai.com/v1/images/generations", data=json.dumps({ "model": "gpt-image-2", "prompt": "Un círculo azul sobre fondo blanco", "n": 1, "output_format": "png", }).encode("utf-8"), headers={ "Authorization": "Bearer " + key, "Content-Type": "application/json", }, method="POST", ) try: response = urlopen(request, timeout=300) except HTTPError as error: response = error except URLError as error: raise SystemExit("No se recibió respuesta HTTP: " + str(error.reason)) with response: status = response.code print("HTTP:", status) for name in ("x-request-id", "openai-organization"): print(name + ":", response.headers.get(name, "no disponible")) raw = response.read() (folder / "respuesta.json").write_bytes(raw) print("Carpeta:", folder) try: body = json.loads(raw) except (ValueError, UnicodeDecodeError): raise SystemExit("La respuesta no es JSON; consulta el archivo guardado") if not 200 <= status < 300: detail = body.get("error", {}) if isinstance(body, dict) else {} if isinstance(detail, dict): print("Código:", detail.get("code")) print("Mensaje:", detail.get("message")) raise SystemExit("Petición rechazada; no se repite automáticamente") try: encoded = body["data"][0]["b64_json"] image = base64.b64decode(encoded, validate=True) except (KeyError, IndexError, TypeError, ValueError, binascii.Error): raise SystemExit("No se obtuvo una imagen base64 válida") if not image: raise SystemExit("La imagen recibida está vacía") output = folder / "imagen.png" output.write_bytes(image) print("Abre este archivo para comprobar la imagen:", output)
Si tu integración requiere seleccionar explícitamente organización o proyecto, conserva únicamente las cabeceras necesarias con los identificadores que hayas confirmado. El ejemplo no las inventa. Tampoco prueba un intermediario: su dominio está fijado a OpenAI.
Los campos de imagen se basan en la guía de Images API; los identificadores de respuesta se explican en la documentación de diagnóstico. Algunas cabeceras pueden no aparecer.
Interpreta el resultado de esta forma:
- Vuelve el mismo aviso: el requisito continúa afectando a esa petición. Conserva sus identificadores y revisa lo que realmente cambió.
- Aparece otro error: sigue la causa nueva; no des por hecho que toda la configuración está resuelta.
- Hay respuesta correcta y el archivo se abre como imagen: esa llamada ha entregado una imagen con esa configuración.
- Hay HTTP 200, pero no una imagen utilizable: revisa el cuerpo, el formato y el guardado. El estado HTTP por sí solo no demuestra entrega.
- Se corta la conexión o vence el tiempo de espera: el cliente no conoce el resultado final. Consulta los registros antes de enviar otra generación.
Cuando esta prueba funcione, vuelve a la operación real de tu aplicación. Si necesitas ampliar el ejemplo a otros flujos, continúa con el tutorial de OpenAI Image API.
Si cambia el error, cambia también la solución
La guía oficial de errores ayuda a interpretar la respuesta completa. El estado HTTP orienta; el mensaje y error.code, cuando exista, concretan la causa.
| Respuesta o señal | Qué revisar |
|---|---|
401 o credencial inválida | Clave cargada, servicio al que pertenece y autenticación |
| Aviso explícito de verificación | Organización de la petición y estado del trámite |
Restricción de país o región, posible 403 | Disponibilidad geográfica aplicable al acceso |
429 con cuota, saldo o gasto | Facturación y límites; repetir no añade crédito |
429 por velocidad de solicitudes | Ritmo de peticiones y límites del modelo |
500 o 503 | Posible fallo del servicio; consultar su estado y aplicar una política de reintentos adecuada |
España figura en la lista de países y territorios admitidos. Eso no permite deducir desde dónde sale tu servidor ni la elegibilidad de una cuenta concreta. Verificar la organización no modifica una restricción geográfica.
Para incidencias del servicio consulta OpenAI Status en el momento del fallo. Si el problema es económico, revisa los precios de generación de imágenes antes de aumentar el uso.
Qué enviar a soporte si el bloqueo continúa
Prepara una descripción que permita localizar una petición concreta: fecha y hora con zona horaria, dominio de destino, modelo, estado HTTP, mensaje y x-request-id. Añade los identificadores de organización y proyecto por el canal privado apropiado, cuándo completaste la verificación y qué mostraba el panel.
Explica la corrección que probaste y su resultado. «El panel y el servidor usan el mismo proyecto; después de actualizar la configuración, esta petición sigue devolviendo el aviso» es más útil que «ya lo he intentado muchas veces». Adjunta capturas con los secretos ocultos. La respuesta JSON puede contener datos de tu petición: revísala antes de compartirla.
Dudas frecuentes
¿Sirve esta guía si el error menciona gpt-image-1?
Sí, para comprobar servicio, organización, proyecto y verificación. Conserva el modelo que aparece en el registro y verifica cuál envía realmente tu programa. Cambiarlo a gpt-image-2 no es una solución demostrada para un requisito de acceso pendiente.
¿Cambiar de Images API a Responses API evita la verificación?
No hay un parámetro documentado que la omita. Images API selecciona el modelo de imagen directamente; Responses API utiliza un modelo principal con la herramienta image_generation. Son formas distintas de integrar la generación, no una garantía de acceso alternativo al mismo servicio.
¿Tengo que crear una clave nueva después de verificar?
No como paso obligatorio. Tiene sentido sustituir una credencial equivocada o cuya procedencia no puedes confirmar. Si ya corresponde al proyecto previsto, crear más claves no demuestra ni corrige por sí solo el estado de verificación.
¿Ver el modelo en una lista confirma que puedo generar?
No confirma que una generación vaya a entregar una imagen. La comprobación útil es una petición al modelo previsto y su salida real, después de resolver el bloqueo identificado.



