{"id":751,"date":"2026-02-12T09:34:13","date_gmt":"2026-02-12T09:34:13","guid":{"rendered":"https:\/\/aiopsschool.com\/blog\/?p=751"},"modified":"2026-02-12T09:34:14","modified_gmt":"2026-02-12T09:34:14","slug":"how-billings-works-for-openai-chatgpt-api-platform-codex-sora","status":"publish","type":"post","link":"https:\/\/aiopsschool.com\/blog\/how-billings-works-for-openai-chatgpt-api-platform-codex-sora\/","title":{"rendered":"How billings works for OpenAi ChatGPT, Api Platform, Codex, Sora"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The mental model<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">One account (same email\/login) \u2192 <strong>two main billing systems<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>ChatGPT billing (consumer\/workspace subscription)<\/strong><br>Paid monthly per user (Go\/Plus\/Pro\/Business\/Enterprise). Managed inside ChatGPT settings. (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n\n\n\n<li><strong>OpenAI Platform billing (API usage \/ pay-as-you-go or contract)<\/strong><br>Charged by tokens\/seconds\/etc. Managed inside platform settings, orgs, and projects. (<a href=\"https:\/\/help.openai.com\/en\/articles\/8156019-how-can-i-move-my-chatgpt-subscription-to-the-api?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n<\/ol>\n\n\n\n<p><strong>These are separate.<\/strong> Having ChatGPT Plus\/Pro <strong>does not automatically give you paid API quota<\/strong>. (<a href=\"https:\/\/help.openai.com\/en\/articles\/8156019-how-can-i-move-my-chatgpt-subscription-to-the-api?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How each product is billed + where usage shows<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) ChatGPT (chatgpt.com)<\/h3>\n\n\n\n<p><strong>Billing:<\/strong> subscription (monthly per user). (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<br><strong>Usage limits:<\/strong> plan-based limits (messages\/tools\/agents vary by plan). (<a href=\"https:\/\/openai.com\/pricing\/?utm_source=chatgpt.com\">OpenAI<\/a>)<br><strong>Where you track:<\/strong> ChatGPT Settings \u2192 Account \/ My plan (and workspace billing pages for Business\/Enterprise). (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Important: you can even end up with <strong>two ChatGPT subscriptions<\/strong> (web + mobile) billed separately if you subscribed in both places. (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2) OpenAI Platform API (platform.openai.com)<\/h3>\n\n\n\n<p><strong>Billing:<\/strong> usage-based (tokens\/requests\/etc) under an <strong>Organization + Project<\/strong>. (<a href=\"https:\/\/help.openai.com\/en\/articles\/9186755-managing-your-work-in-the-api-platform-with-projects?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<br><strong>Where you track:<\/strong> Platform \u2192 Usage dashboard (and projects break it down; budgets can be set per project). (<a href=\"https:\/\/help.openai.com\/en\/articles\/9186755-managing-your-work-in-the-api-platform-with-projects?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<br><strong>What \u201c$0 usage\u201d can mean:<\/strong> if requests are blocked (no credits \/ spend limit), you can see $0 because nothing billable succeeded. (This matches the \u201cquota exceeded\u201d situation you saw.)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3) Codex<\/h3>\n\n\n\n<p>Codex is special: it can run in <strong>two modes<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mode A \u2014 <strong>Sign in with ChatGPT<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Billed as part of your ChatGPT plan limits<\/strong> (with a 5-hour and weekly meter shown in the Codex usage dashboard). (<a href=\"https:\/\/help.openai.com\/en\/articles\/11369540-using-codex-with-your-chatgpt-plan?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n\n\n\n<li>If you hit included limits, you can buy <strong>additional credits<\/strong> (depending on plan). (<a href=\"https:\/\/developers.openai.com\/codex\/pricing\/?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/li>\n\n\n\n<li><strong>Where you track:<\/strong> Codex Settings \u2192 Usage dashboard (the page you opened). (<a href=\"https:\/\/help.openai.com\/en\/articles\/11369540-using-codex-with-your-chatgpt-plan?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Mode B \u2014 <strong>Sign in with an API key<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Billed to your API org\/project<\/strong> (shows on platform usage; charged like API calls). (<a href=\"https:\/\/developers.openai.com\/codex\/auth\/?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/li>\n\n\n\n<li>If your API org has no billing\/credits or limits block spend, you get <strong>quota exceeded<\/strong> even when platform usage is still $0.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Critical detail<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Codex Cloud requires ChatGPT sign-in<\/strong> (API key mode won\u2019t work for Codex Cloud). (<a href=\"https:\/\/developers.openai.com\/codex\/auth\/?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<br>So: API-key sign-in is mainly for local\/IDE workflows billed via API.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4) Sora<\/h3>\n\n\n\n<p>Sora also has <strong>two sides<\/strong>:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sora app (sora.chatgpt.com)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses <strong>ChatGPT plan-based access and limits<\/strong>, with prioritization by plan; limits may be enforced. (<a href=\"https:\/\/help.openai.com\/en\/articles\/10245774-sora-billing-faq?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n\n\n\n<li>You can buy additional usage via <strong>credits<\/strong>. (<a href=\"https:\/\/help.openai.com\/en\/articles\/12642688-using-credits-for-flexible-usage-in-chatgpt-freegopluspro-sora?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n\n\n\n<li><strong>Where you track:<\/strong> Sora app experience + the shared credits concept (below).<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Sora Video API (platform)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Separate from the Sora app: <strong>usage-based billing<\/strong> priced per second (model\/resolution). (<a href=\"https:\/\/openai.com\/api\/pricing\/?utm_source=chatgpt.com\">OpenAI<\/a>)<\/li>\n\n\n\n<li>Tracked in <strong>platform usage\/costs<\/strong> like other API calls.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Are the bills centralized or separate?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Separate by default:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ChatGPT subscription billing<\/strong> is separate from <strong>API billing<\/strong>. (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n\n\n\n<li><strong>Usage tracking is separate:<\/strong> ChatGPT\/Codex\/Sora in-app meters vs Platform token\/$ meters. (<a href=\"https:\/\/help.openai.com\/fr-ca\/articles\/8554956-usage-dashboard-legacy?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">One bridge exists: <strong>Flexible Credits<\/strong><\/h3>\n\n\n\n<p>OpenAI introduced <strong>credits<\/strong> that can be used across supported features:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Credits you buy can work across <strong>Codex (Plus\/Pro)<\/strong> and <strong>Sora (all users)<\/strong> (as supported). (<a href=\"https:\/\/help.openai.com\/en\/articles\/12642688-using-credits-for-flexible-usage-in-chatgpt-freegopluspro-sora?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n<\/ul>\n\n\n\n<p>So: subscription + credits live in the ChatGPT ecosystem, while API usage remains separate.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Practical \u201cwhere do I check what\u201d cheat sheet<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>What you\u2019re doing<\/th><th>Which meter you\u2019re spending<\/th><th>Where to see it<\/th><\/tr><\/thead><tbody><tr><td>ChatGPT chatting \/ tools<\/td><td>ChatGPT plan limits<\/td><td>ChatGPT Settings \/ Plan (<a href=\"https:\/\/help.openai.com\/en\/articles\/9039756-billing-settings-in-chatgpt-vs-platform?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/td><\/tr><tr><td>Codex signed in with ChatGPT<\/td><td>Codex plan limits (+ optional credits)<\/td><td>Codex Usage dashboard (<a href=\"https:\/\/help.openai.com\/en\/articles\/11369540-using-codex-with-your-chatgpt-plan?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/td><\/tr><tr><td>Codex signed in with API key<\/td><td>API org\/project spend<\/td><td>Platform Usage\/Projects (<a href=\"https:\/\/help.openai.com\/en\/articles\/9186755-managing-your-work-in-the-api-platform-with-projects?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/td><\/tr><tr><td>Sora app video creation<\/td><td>ChatGPT plan limits (+ credits)<\/td><td>Sora app + credits info (<a href=\"https:\/\/help.openai.com\/en\/articles\/10245774-sora-billing-faq?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/td><\/tr><tr><td>Sora Video API<\/td><td>API billed per second<\/td><td>API pricing + Platform usage (<a href=\"https:\/\/openai.com\/api\/pricing\/?utm_source=chatgpt.com\">OpenAI<\/a>)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why you specifically saw \u201cQuota exceeded\u201d with API key while Platform shows $0<\/h2>\n\n\n\n<p>Because <strong>\u201cquota exceeded\u201d is about API billing being unavailable\/blocked<\/strong>, and blocked calls don\u2019t generate billable usage \u2014 so your usage chart can stay at $0.<\/p>\n\n\n\n<p>Most common causes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>no payment method \/ no prepaid credits on the API org<\/li>\n\n\n\n<li>project\/org budget limit set too low<\/li>\n\n\n\n<li>using a project key tied to a project with 0 budget<\/li>\n\n\n\n<li>not looking at the same org\/project the key belongs to (projects matter) (<a href=\"https:\/\/help.openai.com\/en\/articles\/9186755-managing-your-work-in-the-api-platform-with-projects?utm_source=chatgpt.com\">OpenAI Help Center<\/a>)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>The mental model One account (same email\/login) \u2192 two main billing systems These are separate. Having ChatGPT Plus\/Pro does not [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-751","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=751"}],"version-history":[{"count":1,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/751\/revisions"}],"predecessor-version":[{"id":752,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/751\/revisions\/752"}],"wp:attachment":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}