Iniciar sesión con ChatGPT es el inicio de sesión OAuth 2.0 y OpenID Connect de OpenAI, disponible para usuarios de ChatGPT en todo el mundo. Tu aplicación obtiene un ID de cuenta estable, además del nombre, dirección de correo electrónico y foto de perfil de la persona. Desde el DevDay el 29 de septiembre de 2026, los usuarios Plus y Pro también pueden permitir que las aplicaciones participantes ejecuten solicitudes de IA en su plan de ChatGPT en lugar de tu clave de API, bajo un límite semanal que establecen por aplicación. Tu aplicación nunca recibe sus conversaciones, recuerdos o una clave de API.
La segunda parte afecta tu factura. Esta guía cubre el flujo, cómo el uso del plan se ve para el usuario, quién puede integrarse hoy, cuándo el plan de un usuario debería reemplazar tu clave y cómo probar el inicio de sesión y sus rutas de fallo en Apidog. Para el resto del evento, consulta el resumen del DevDay 2026; si la identidad versus la autorización es confusa, lee OAuth vs OpenID primero.
Iniciar sesión con ChatGPT de un vistazo
| Elemento | Lo que OpenAI documenta |
|---|---|
| Ámbitos de identidad | openid profile email |
| Ámbitos de uso del plan (flujo de código abierto) | offline_access resource.invoke chatgpt.tokens.use.direct, con resource=https://api.openai.com/v1 |
| Tu aplicación recibe | Un token de ID; con el uso del plan, un token de acceso y un token de actualización |
| Elegibilidad para el uso del plan | Plus y Pro, en aplicaciones participantes |
| Dónde cuenta el uso | El uso de ChatGPT Work y Codex del plan |
| Control por aplicación | Límite semanal como porcentaje del uso semanal total; los créditos después del límite están desactivados por defecto |
| Tokens de uso del plan | Token de acceso 1 hora; token de actualización 30 días, reemplazado en cada actualización |
| Acceso para desarrolladores | Aplicaciones comerciales: prueba limitada a través de un formulario de interés. Aplicaciones de código abierto: autoservicio |
Fuentes: la documentación de Iniciar sesión con ChatGPT, la referencia de tokens y el artículo de ayuda de OpenAI sobre el uso de tu plan de ChatGPT en otras aplicaciones.
Qué recibe tu aplicación y qué no
La identidad es el valor predeterminado. Un cliente que solicita openid profile email obtiene un token de ID. Según la guía del sitio web, profile cubre reclamaciones disponibles como nombre y foto de perfil, y email cubre reclamaciones de correo electrónico y verificación de correo electrónico. Los ámbitos de identidad no otorgan acceso a las conversaciones de ChatGPT ni a los recursos de la API de OpenAI.
Asocia la cuenta con el sub verificado más el emisor y el ID de cliente, no con el correo electrónico. OpenAI advierte que una coincidencia de correo electrónico por sí sola no es prueba de propiedad, así que pide a los usuarios existentes que confirmen un enlace.
El uso del plan es una concesión separada. Si el usuario aprueba los ámbitos adicionales, la respuesta del token añade un token de acceso para las solicitudes elegibles de la API de Respuestas. Los clientes de solo identidad no deberían requerir un access_token en absoluto: el id_token es el único artefacto requerido.
Cómo funciona el flujo de OAuth
El flujo del sitio web es la concesión de código de autorización estándar con PKCE más OIDC. Carga los puntos finales desde https://auth.openai.com/.well-known/openid-configuration. La documentación enumera estos valores de producción:
Issuer: https://auth.openai.com
Authorization endpoint: https://auth.openai.com/api/accounts/authorize
Token endpoint: https://auth.openai.com/api/accounts/oauth/token
JWKS URI: https://auth.openai.com/.well-known/jwks.json
- Tu backend genera un nuevo
state, un verificador PKCE con un desafío S256 y unnonce. - Redirige el navegador al punto final de autorización con tu ID de cliente, URI de redirección exacto y ámbitos.
- El usuario da su consentimiento y OpenAI devuelve un código a tu callback.
- Tu backend verifica
state, intercambia el código y verifica la firma, el emisor, la audiencia, la expiración y el nonce del token de ID. - Encuentra, crea o vincula la cuenta local y emite su propia sesión.
Los clientes públicos no envían secretos. Un cliente confidencial que usa client_secret_basic envía su secreto solo en el encabezado HTTP Basic.
Las herramientas de código abierto se registran de manera diferente. La guía de inicio de sesión de código abierto comienza con client_id=dynamic_agent_client, un agent_name_hint establecido con el nombre de tu aplicación y un ext_agent_host_id persistente por host. El callback devuelve un ID de cliente emitido (como oaiapp_...) para guardar y reutilizar; la redirección es un URI de loopback 127.0.0.1, y no se involucra ningún secreto de cliente.
Cómo funciona el uso del plan para el usuario
Lo que ven tus usuarios y lo que deben explicar tus documentos de soporte:
- Las solicitudes elegibles se contabilizan en el plan. Utilizan el uso de ChatGPT Work y Codex en el plan Plus o Pro del usuario.
- Cada aplicación tiene un límite semanal. El usuario lo establece como un porcentaje del uso semanal total (el ejemplo de configuración de la documentación va del 10% al 100%). Es un techo, no un grupo reservado, por lo que un uso intensivo en otro lugar puede agotar el plan primero.
- Los créditos son opcionales. Continuar con créditos después de alcanzar los límites está desactivado por defecto y requiere que el límite de la aplicación esté al 100%.
- Plus tiene un límite compartido de cinco horas. Según la página de cuentas y sesiones, abarca todas las aplicaciones que usan el plan. No se aplica a Pro.
- Desconectarse detiene el uso futuro. No revierte el uso ya consumido, y OpenAI no notifica a tu aplicación; te enteras cuando una solicitud o actualización falla.
Los usuarios gestionan todo esto en Configuración de ChatGPT, Uso (chatgpt.com/settings/usage), y las directrices de UI de OpenAI te piden que enlaces allí con Gestionar uso.
Quiénes están en el lanzamiento y cómo obtener un ID de cliente
El resumen del DevDay de OpenAI nombra a 16 socios de uso de planes, incluyendo Devin de Cognition, Notion, Vercel, T3, OpenClaw y Dactyl. The New Stack enumera a Amp, Warp, Kilo Code y OpenCode entre otros, con Lovable marcado como "próximamente". Si utilizas OpenClaw, está en ambas listas.
El discurso de Sam Altman en el escenario, según lo informó The New Stack: “ahora no tienes que cubrir sus costos de tokens para que empiecen a funcionar”.
Cómo acceder depende de lo que publiques:
- Aplicaciones comerciales o alojadas: el inicio de sesión es una prueba limitada. Solicitas un ID de cliente uniéndote a la lista de espera a través del formulario de interés de OpenAI, tanto si quieres solo identidad como también el uso del plan (las URLs de la documentación llaman al uso del plan "compartición de tokens").
- Herramientas de código abierto y alojadas localmente: el uso del plan está abierto a todos los socios de código abierto a través del flujo de autoservicio mencionado anteriormente.
Qué cambia para tu factura de API
Hoy pagas por token y lo recuperas a través de los precios. El uso del plan traslada el costo del modelo a la suscripción del usuario, por lo que tu margen deja de depender de cuánto usen la IA. La contrapartida es el control.
| Tu clave de API | El plan de ChatGPT del usuario | |
|---|---|---|
| Quién paga | Tú, por token | El plan del usuario (créditos solo si opta por ellos) |
| Quién puede usarlo | Cualquier usuario | Usuarios Plus y Pro que otorgan chatgpt.tokens.use.direct |
| Límites | Tu nivel de límite de tasa | Uso semanal del plan, el límite por aplicación, la ventana de cinco horas de Plus |
| Forma de la solicitud | La API completa de Respuestas | se requiere store: false y stream: true; sin temperature, max_output_tokens, búsqueda de archivos o Code Interpreter |
| Fallo típico | 429 cuando excedes tu nivel | 429 subscription_sharing_usage_limit_exceeded, o ese código en un response.failed a mitad del flujo |
| Alternativa | Tú la diseñas | Ninguna automática: OpenAI no cambia la facturación |
| Qué mostrar | Tu propio uso y precios | "Usando el plan de ChatGPT", un enlace a Gestionar uso, cuáles de tus planes lo soportan |
Las restricciones provienen de la página de limitaciones de la vista previa: las características que necesitan un estado de conversación almacenado o herramientas alojadas no se ejecutarán en el plan de un usuario hoy.
Un valor predeterminado sensato es híbrido: uso del plan para el trabajo interactivo de los usuarios Plus y Pro, tu clave para todos los demás y para trabajos en segundo plano, CI y agentes programados. Cuando se alcance el límite, muestra "Gestionar uso" y ofrece tus propios créditos como opción secundaria. La comparación entre clave API y OAuth cubre la compensación general, y OAuth para agentes de IA cubre la actuación en nombre del usuario de forma segura.
Cómo probar el flujo de inicio de sesión y las rutas de fallo en Apidog
Apidog no inicia sesión con ChatGPT a nadie. Ejercita tu configuración de OAuth, las llamadas de tokens y el manejo de errores. Descarga Apidog y crea un entorno.
1. Almacena el cliente como variables. Añade SIWC_CLIENT_ID, SIWC_REDIRECT_URI, y para un cliente confidencial SIWC_CLIENT_SECRET como valor sensible, además de ACCESS_TOKEN para el uso del plan. Refiéréncialos como {{SIWC_CLIENT_ID}} para que ningún secreto quede en una solicitud guardada.
2. Ejecuta el flujo de Código de Autorización. En la pestaña Auth, elige OAuth 2.0 con Código de Autorización con PKCE, introduce los puntos finales anteriores, establece el ámbito en openid profile email y usa una URL de callback registrada para tu cliente. La guía de OAuth 2.0 de Apidog explica cada campo.
3. Verifica el token de ID que recibiste. Guarda el intercambio de tokens como su propio POST al punto final de tokens (código, verificador, URI de redirección, ID de cliente) y añádele un post-procesador. Las comprobaciones de firma y nonce siguen perteneciendo a tu backend.
const body = pm.response.json();
pm.test("token exchange returned an ID token", () => {
pm.expect(pm.response.code).to.eql(200);
pm.expect(body.id_token).to.be.a("string");
});
const decode = require("atob");
const part = body.id_token.split(".")[1].replace(/-/g, "+").replace(/_/g, "/");
const claims = JSON.parse(decode(part + "=".repeat((4 - (part.length % 4)) % 4)));
pm.test("ID token claims match this client", () => {
pm.expect(claims.iss).to.eql("https://auth.openai.com");
pm.expect(claims.aud).to.include(pm.environment.get("SIWC_CLIENT_ID"));
pm.expect(claims.sub).to.be.a("string").and.not.empty;
pm.expect(claims.exp * 1000).to.be.above(Date.now());
});
Registra name, email y picture en lugar de verificarlos, ya que se devuelven cuando están disponibles. Para el uso del plan, verifica que body.scope contenga chatgpt.tokens.use.direct.
4. Simula las rutas de fallo. Una cuenta Plus real es un dispositivo deficiente, así que devuelve esto desde un servidor mock de Apidog:
- Uso del plan denegado: una respuesta de token cuyo
scopecarece dechatgpt.tokens.use.direct. Tu aplicación debe mantener el inicio de sesión y ofrecer habilitar el uso del plan o usar otra ruta de facturación. - Límite alcanzado: 429 con
error.codesubscription_sharing_usage_limit_exceeded, además del mismo código en unresponse.faileda mitad del flujo. Afirma que tu aplicación pausa las solicitudes del plan. - No elegible: 403
subscription_sharing_user_not_eligible. No reintentes ni hagas bucles a través de OAuth. - Desconectado: una actualización que devuelve
invalid_grant, o 401subscription_sharing_invalid_user. Borra los tokens y solicita iniciar sesión de nuevo.
Encadena los casos en un escenario de prueba y ejecútalo en CI con la CLI de Apidog. La página de errores y recuperación enumera el conjunto completo.
5. Verifica la llamada en vivo. Con un token de plan real, envía la solicitud de transmisión de la documentación (en Apidog, como Bearer {{ACCESS_TOKEN}}) y confirma que la transmisión finaliza en response.completed, la única señal de éxito:
curl --no-buffer https://api.openai.com/v1/responses \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": [{"role": "user", "content": "Say exactly: Hello, world!"}],
"store": false,
"stream": true
}'
Preguntas frecuentes
¿Pueden los usuarios Free iniciar sesión con ChatGPT? El inicio de sesión está disponible para usuarios de ChatGPT en todo el mundo. El uso del plan dentro de otra aplicación requiere Plus o Pro.
¿Mi aplicación obtiene la clave API de OpenAI del usuario? No. Obtienes un token de ID y, con el uso del plan, un token de acceso OAuth para las solicitudes elegibles de la API de Respuestas.
¿Qué sucede cuando un usuario alcanza su límite? Las solicitudes fallan con subscription_sharing_usage_limit_exceeded: un HTTP 429, o un evento response.failed después de que comienza la transmisión. Pausa y enlaza a "Gestionar uso".
¿Puede un usuario Plus ejecutar GPT-6.1 Sol a través de una aplicación asociada? El ejemplo de la documentación usa gpt-6.1-sol con un token de plan, pero lista los modelos de la cuenta con ese token antes de ofrecer uno. Más en es GPT-6.1 Sol gratis.
Siguiente paso
Si gestionas una aplicación comercial, únete a la lista de espera ahora y desarrolla tu gestión de límites y desconexiones contra mocks mientras esperas. Considera el uso del plan como una opción junto a tu propia facturación de API, no como un reemplazo. Guarda las aserciones de tokens y el escenario de fallo en Apidog, para que el día que llegue tu ID de cliente, la única variable nueva sea el token real.
