Se connecter avec ChatGPT pour les développeurs : flux OAuth, consommation de forfait et impact sur la facturation API

Connexion avec ChatGPT pour les développeurs : ce que votre application reçoit, comment fonctionnent l'utilisation des forfaits Plus et Pro et les plafonds hebdomadaires, et comment tester le flux OAuth.

Emmanuel Mumba

Emmanuel Mumba

2 October 2026

Se connecter avec ChatGPT pour les développeurs : flux OAuth, consommation de forfait et impact sur la facturation API

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Découvrir Apidog Enterprise

Se connecter avec ChatGPT est la connexion OAuth 2.0 et OpenID Connect d'OpenAI, disponible pour les utilisateurs de ChatGPT du monde entier. Votre application reçoit un identifiant de compte stable ainsi que le nom, l'adresse e-mail et la photo de profil de la personne. Depuis le DevDay du 29 septembre 2026, les utilisateurs Plus et Pro peuvent également autoriser les applications participantes à exécuter des requêtes d'IA sur leur plan ChatGPT au lieu de votre clé API, dans la limite d'un plafond hebdomadaire qu'ils définissent par application. Votre application ne reçoit jamais leurs conversations, leurs souvenirs ou une clé API.

La deuxième partie concerne votre facture. Ce guide couvre le processus, la manière dont l'utilisation du plan apparaît à l'utilisateur, qui peut intégrer aujourd'hui, quand le plan d'un utilisateur devrait remplacer votre clé, et comment tester la connexion et ses chemins d'échec dans Apidog. Pour le reste de l'événement, consultez le récapitulatif du DevDay 2026 ; si la distinction entre identité et autorisation est floue, lisez d'abord OAuth vs OpenID.

Se connecter avec ChatGPT en un coup d'œil

Élément Ce qu'OpenAI documente
Portées d'identité openid profile email
Portées d'utilisation du plan (flux open-source) offline_access resource.invoke chatgpt.tokens.use.direct, avec resource=https://api.openai.com/v1
Votre application reçoit Un jeton d'identité ; avec l'utilisation du plan, un jeton d'accès et un jeton de rafraîchissement
Éligibilité à l'utilisation du plan Utilisateurs Plus et Pro, dans les applications participantes
Où l'utilisation est comptabilisée L'utilisation de ChatGPT Work et Codex du plan
Contrôle par application Plafond hebdomadaire en pourcentage de l'utilisation hebdomadaire totale ; les crédits après le plafond sont désactivés par défaut
Jetons d'utilisation du plan Jeton d'accès 1 heure ; jeton de rafraîchissement 30 jours, remplacé à chaque rafraîchissement
Accès développeur Applications commerciales : essai limité via un formulaire d'intérêt. Applications open-source : en libre-service

Sources : la documentation Se connecter avec ChatGPT, la référence des jetons, et l'article d'aide d'OpenAI sur l'utilisation de votre plan ChatGPT dans d'autres applications.

Ce que votre application reçoit et ce qu'elle ne reçoit pas

L'identité est la valeur par défaut. Un client qui demande openid profile email reçoit un jeton d'identité. Selon le guide du site web, profile couvre les revendications disponibles telles que le nom et l'image de profil, et email couvre les revendications d'e-mail et de vérification d'e-mail. Les portées d'identité n'accordent pas l'accès aux conversations ChatGPT ou aux ressources de l'API OpenAI.

Clé du compte basée sur le sub vérifié plus l'émetteur et l'ID client, et non sur l'e-mail. OpenAI avertit qu'une simple correspondance d'e-mail n'est pas une preuve de propriété, demandez donc aux utilisateurs existants de confirmer un lien.

L'utilisation du plan est un octroi distinct. Si l'utilisateur approuve les portées supplémentaires, la réponse du jeton ajoute un jeton d'accès pour les requêtes API de Réponses éligibles. Les clients uniquement identitaires ne devraient pas du tout nécessiter d' access_token : l' id_token est le seul artefact requis.

Fonctionnement du flux OAuth

Le flux du site web est le grant du code d'autorisation standard avec PKCE plus OIDC. Chargez les points de terminaison depuis https://auth.openai.com/.well-known/openid-configuration. La documentation liste ces valeurs de production :

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
  1. Votre backend génère un nouveau state, un vérificateur PKCE avec un challenge S256, et un nonce.
  2. Il redirige le navigateur vers le point de terminaison d'autorisation avec votre ID client, l'URI de redirection exacte et les scopes.
  3. L'utilisateur consent, et OpenAI renvoie un code à votre callback.
  4. Votre backend vérifie le state, échange le code, et vérifie la signature, l'émetteur, l'audience, l'expiration et le nonce du jeton d'identité.
  5. Il trouve, crée ou lie le compte local et émet sa propre session.

Les clients publics n'envoient aucun secret. Un client confidentiel utilisant client_secret_basic envoie son secret uniquement dans l'en-tête HTTP Basic.

Les outils open-source s'enregistrent différemment. Le guide de connexion open-source commence par client_id=dynamic_agent_client, un agent_name_hint défini sur le nom de votre application, et un ext_agent_host_id persistant par hôte. Le rappel renvoie un ID client émis (tel que oaiapp_...) à sauvegarder et à réutiliser ; la redirection est une URI de bouclage 127.0.0.1, et aucun secret client n'est impliqué.

Comment l'utilisation du plan fonctionne pour l'utilisateur

Ce que vos utilisateurs voient et ce que vos documents de support doivent expliquer :

Les utilisateurs gèrent tout cela dans les paramètres de ChatGPT, Utilisation (chatgpt.com/settings/usage), et les directives d'interface utilisateur d'OpenAI vous demandent d'y lier avec Gérer l'utilisation.

Qui est présent au lancement et comment obtenir un ID client

Le récapitulatif du DevDay d'OpenAI nomme 16 partenaires d'utilisation du plan, dont Devin de Cognition, Notion, Vercel, T3, OpenClaw et Dactyl. The New Stack liste Amp, Warp, Kilo Code et OpenCode parmi les autres, avec Lovable marqué comme "à venir". Si vous utilisez OpenClaw, il figure sur les deux listes.

Le discours de Sam Altman sur scène, tel que rapporté par The New Stack : "maintenant, vous n'avez plus à couvrir leurs coûts de jetons pour les faire démarrer."

Comment y participer dépend de ce que vous livrez :

Ce qui change pour votre facture API

Aujourd'hui, vous payez par jeton et le récupérez via la tarification. L'utilisation du plan transfère le coût du modèle sur l'abonnement de l'utilisateur, de sorte que votre marge ne dépend plus de l'intensité de leur utilisation de l'IA. Le compromis est le contrôle.

Votre clé API Le plan ChatGPT de l'utilisateur
Qui paie Vous, par jeton Le plan de l'utilisateur (crédits uniquement s'il opte)
Qui peut l'utiliser Chaque utilisateur Utilisateurs Plus et Pro qui accordent chatgpt.tokens.use.direct
Limites Votre niveau de limite de débit Utilisation hebdomadaire du plan, le plafond par application, la fenêtre de cinq heures de Plus
Forme de la requête L'API de Réponses complète store: false et stream: true requis ; pas de temperature, max_output_tokens, recherche de fichiers ou Interprète de code
Échec typique 429 lorsque vous dépassez votre niveau 429 subscription_sharing_usage_limit_exceeded, ou ce code dans un événement de flux response.failed en milieu de flux
Solution de repli À vous de concevoir Aucun automatique : OpenAI ne change pas la facturation
Ce qu'il faut montrer Votre propre utilisation et tarification "Utilisation du plan ChatGPT", un lien Gérer l'utilisation, quels de vos plans le prennent en charge

Les restrictions proviennent de la page des limitations de prévisualisation : les fonctionnalités qui nécessitent un état de conversation stocké ou des outils hébergés ne fonctionneront pas sur le plan d'un utilisateur aujourd'hui.

Un paramètre par défaut sensé est hybride : utilisation du plan pour le travail interactif par les utilisateurs Plus et Pro, votre clé pour tous les autres et pour les tâches de fond, l'intégration continue (CI) et les agents planifiés. Lorsque le plafond est atteint, affichez Gérer l'utilisation et proposez vos propres crédits comme option secondaire. La comparaison Clé API vs OAuth couvre le compromis général, et OAuth pour les agents d'IA couvre l'action au nom d'un utilisateur en toute sécurité.

Comment tester le flux de connexion et les chemins d'échec dans Apidog

Apidog ne connecte personne avec ChatGPT. Il exerce votre configuration OAuth, les appels de jetons et la gestion des erreurs. Téléchargez Apidog et créez un environnement.

1. Stockez le client en tant que variables. Ajoutez SIWC_CLIENT_ID, SIWC_REDIRECT_URI, et pour un client confidentiel SIWC_CLIENT_SECRET comme valeur sensible, plus ACCESS_TOKEN pour l'utilisation du plan. Référencez-les comme {{SIWC_CLIENT_ID}} afin qu'aucun secret ne figure dans une requête enregistrée.

2. Exécutez le flux du Code d'autorisation. Dans l'onglet Auth, choisissez OAuth 2.0 avec Code d'autorisation avec PKCE, entrez les points de terminaison ci-dessus, définissez la portée sur openid profile email, et utilisez une URL de rappel enregistrée pour votre client. Le guide Apidog OAuth 2.0 explique chaque champ.

3. Affirmez sur le jeton d'identité que vous avez obtenu. Enregistrez l'échange de jetons comme sa propre requête POST vers le point de terminaison de jetons (code, vérificateur, URI de redirection, ID client) et ajoutez-y un post-processeur. Les vérifications de signature et de nonce relèvent toujours de votre 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());
});

Enregistrez name, email et picture plutôt que de les affirmer, car ils sont renvoyés lorsqu'ils sont disponibles. Pour l'utilisation du plan, affirmez que body.scope contient chatgpt.tokens.use.direct.

4. Simulez les chemins d'échec. Un véritable compte Plus est un mauvais modèle, renvoyez donc ceci depuis un serveur de maquette Apidog :

Enchaînez les cas dans un scénario de test et exécutez-le en CI avec la CLI Apidog. La page des erreurs et de la récupération liste l'ensemble complet.

5. Vérifiez l'appel en direct. Avec un véritable jeton de plan, envoyez la requête de streaming de la documentation (dans Apidog, comme Bearer {{ACCESS_TOKEN}}) et confirmez que le flux se termine par response.completed, le seul signal de succès :

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
  }'

FAQ

Étape suivante

Si vous dirigez une application commerciale, rejoignez la liste d'attente dès maintenant et construisez votre gestion des plafonds et de la déconnexion par rapport à des maquettes pendant que vous attendez. Considérez l'utilisation du plan comme une option à côté de votre propre facturation API, et non comme un remplacement. Enregistrez les affirmations de jetons et le scénario d'échec dans Apidog, de sorte que le jour où votre ID client arrive, la seule nouvelle variable soit le vrai jeton.

bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API