# OpenAI API vs ChatGPT Subscription: Billing, Limits and When to Use Each

> ChatGPT subscriptions and the OpenAI API are billed separately. Learn how each is charged, how API rate limits and spend limits work, and which one fits your use case.

Source: https://www.epifive.com/blog/openai-api-vs-chatgpt-subscription · Published 2026-10-25 · EpiFive

## Key takeaways

- A ChatGPT subscription and the OpenAI API are billed through separate systems, so one does not cover the other.
- ChatGPT suits people working in a chat interface, while the API suits applications, automation and batch jobs that need programmatic control and per-token billing.
- API rate limits apply per organisation and project, vary by model and usage tier, and are viewed under Settings, Organization, Limits.
- Spend alerts only notify you, but a hard spend limit makes affected API requests fail with a 429 error.
- OpenAI states that API data is not used for training by default and that abuse-monitoring logs are kept for up to 30 days by default.

A ChatGPT subscription and the OpenAI API are two different products with two different billing systems. A subscription gives a person access to ChatGPT in a browser or app for a flat plan price, while the API lets software call OpenAI models and charges for the tokens it uses. Paying for one does not give you the other, and choosing the wrong one is the usual reason people hit unexpected costs or blocked requests.

## Who this is for and what you will have

This is for business owners, IT administrators and developers deciding how to give a team access to OpenAI models. By the end you will understand how each product is billed, how API limits and usage tiers work, how to see and control spend, and which route fits common scenarios. Plans, prices and limits change often, so use this article for the model of how things work and confirm current numbers on OpenAI's pricing and limits pages.

## The core difference

| Question | ChatGPT subscription | OpenAI API |
| --- | --- | --- |
| Who uses it | People, through the ChatGPT app or website | Software, scripts and automation |
| How it is billed | A plan price for the seat or workspace | Per token and per feature, charged to your API account |
| Where you manage billing | ChatGPT billing settings | API platform billing settings |
| What you control | Prompts and chat features offered in the app | Model choice, parameters, system instructions, tools, batch jobs |
| Limits | Plan-based usage limits set by OpenAI | Organisation and project rate limits by model and usage tier |

OpenAI's help center describes billing in ChatGPT and the API platform as separate systems, and notes that API usage is charged by the number of tokens used after you add a payment method in your API account's billing settings. OpenAI's help articles indicate that a ChatGPT subscription can be billed through the web, the Apple App Store or Google Play, so subscriptions bought in several places can produce several separate charges.

## How the API is billed

API pricing is set per one million tokens. OpenAI's pricing page splits the rates into three token types:

- **Input tokens**, which are the prompt, at the standard rate.
- **Cached input tokens**, at a steep discount when you reuse prompt content.
- **Output tokens**, at the highest rate.

Several things adjust the price:

- **Processing tiers.** Standard is the baseline. Batch is roughly half the standard rate for asynchronous work. Flex offers rates similar to batch on supported models. Faster tiers cost more, and the page says the fast tier was formerly called Priority.
- **Long-context requests.** Requests with more than 272K input tokens cost more than short-context ones on the models the page covers.
- **Regional endpoints.** Regional data-residency endpoints and FedRAMP endpoints carry a 10% uplift on eligible models.
- **Built-in tools.** Web search, file search and code execution are billed separately, per call, per storage amount or per session, and the tokens they use are billed at the model's normal rates.
- **Other modalities.** Audio, realtime, image and transcription models use their own units, such as per minute or per image.

Because the bill follows tokens, you can estimate it before you build: multiply expected input and output tokens per request by the per-million-token rates, then multiply by request volume. Use the current pricing page for numbers, and add a margin for retries and longer-than-expected outputs.

## How API limits work

OpenAI's rate limits guide explains that limits cap how often you can call the API. They are measured in several ways and whichever you hit first triggers the limit:

- RPM, requests per minute.
- RPD, requests per day.
- TPM, tokens per minute.
- TPD, tokens per day.
- IPM, images per minute.

Twenty small requests can exhaust a 20-RPM limit even if you have used far fewer tokens than your TPM allowance. Limits apply to your organisation and its projects, not to individual users, and they vary by model. Some model families share a limit, and long-context requests for some models have their own separate limit.

### Usage tiers

Your tier rises automatically as your total credit purchases grow. The guide lists these tiers and monthly usage limits:

| Tier | Qualification | Monthly usage limit |
| --- | --- | --- |
| Free | Allowed geography | $100 |
| Build | $5 in total credit purchases | $500 |
| Launch | $100 in total credit purchases | $5,000 |
| Grow | $500 in total credit purchases | $200,000 |

Higher tiers generally allow higher RPM and TPM. To see your own limits, go to **Settings > Organization > Limits** in the API platform and check the **Rate limits** section. You can also select **Upgrade tier** there.

### Spend limits are different from rate limits

Spend controls are separate from usage limits. The guide states that a spend alert only sends a notification, while a hard spend limit causes affected requests to return a `429` error. That means a hard limit set too low will look like an outage to your users. Set alerts well below the hard limit so you have time to react.

## Handling limit errors in code

When a request fails with a rate-limit response, the documentation recommends the following:

- A `429` with the `slow_down` code means your request rate rose too quickly, even if you are within your RPM and TPM.
- A `503` with `server_is_overloaded` means the model is temporarily overloaded.
- In both cases follow the `Retry-After` header when present. Otherwise use exponential backoff with random jitter and cap the number of retries.
- Do not retry quota or billing errors, because those need action from you.
- Once you reach about 1 million input TPM, increase traffic by no more than 50% every 15 minutes.

Responses can include headers that show your current status, such as `x-ratelimit-remaining-requests`, `x-ratelimit-remaining-tokens` and `x-ratelimit-reset-tokens`. Log them so you can see how close you are to a limit before you hit it. If you run models through Azure instead, the limits and errors differ, and the same ideas are covered in [fixing Azure OpenAI 429 rate limit errors](https://www.epifive.com/blog/azure-openai-429-rate-limit-fix).

## Data handling

For the API, OpenAI's data controls guide states that, as of March 1, 2023, data sent to the OpenAI API is not used to train or improve OpenAI models, and that data is used for training only if you explicitly opt in. Abuse-monitoring logs are generated for all API feature usage and retained for up to 30 days by default, and may be kept longer where the law requires. Zero Data Retention is an approval-based control that requires prior OpenAI approval and additional requirements.

Consumer and workspace plans for ChatGPT have their own data controls and terms, which are set out on OpenAI's policy pages. If you plan to put company data into either product, read the terms for the specific plan you are buying and have your security or compliance owner approve it.

## When to use each

### Use a ChatGPT subscription when

- People want to chat, draft, summarise and analyse documents interactively.
- You want a predictable seat price and no development work.
- The work is ad hoc and varies by person.
- You want OpenAI's built-in app features without building an interface.

### Use the API when

- You are building a product feature, internal tool or automation that calls a model.
- You need batch processing of many documents or records.
- You want control over the model, instructions, output format and logging.
- You need per-project cost tracking and limits.
- You want to connect the model to your own data or systems.

### Use both when

Many organisations give staff a chat product for day-to-day use and run the API for specific workflows. Keep the two budgets separate, because they are billed separately, and put an owner on each.

## Cost control checklist for the API

1. Create separate projects for separate workloads, so limits and spend are easy to read.
2. Set a spend alert at a comfortable level and a hard limit above it.
3. Estimate cost before launch from expected tokens per request and request volume.
4. Reuse long prompt prefixes to benefit from cached input pricing, and put reusable content at the start of the prompt.
5. Move non-urgent work to batch processing for the roughly 50% lower rate where the model supports it.
6. Pick the smallest model that meets the quality bar, and test before upgrading.
7. Log token usage per request so you can find expensive prompts.
8. Review usage and limits monthly, and revisit your tier as purchases grow.

For comparison with another vendor's pricing model, see [Claude API pricing and how to estimate token costs](https://www.epifive.com/blog/claude-api-pricing-token-cost-estimate).

## Troubleshooting

**You pay for ChatGPT but API calls fail.** The subscription does not provide API access or credit. Add a payment method or credits in the API platform's billing settings and check your tier.

**Requests return 429 although usage looks low.** Check which limit you hit. It could be requests per minute, a short burst that triggered `slow_down`, a model-specific limit, or a hard spend limit.

**The bill is higher than expected.** Look for long prompts resent on every call, high output lengths, retries, tool charges for web or file search, and use of a faster processing tier.

**You cannot find your limits.** Open Settings, then Organization, then Limits in the API platform, and read the Rate limits section.

## References

- OpenAI, Rate limits guide: https://developers.openai.com/api/docs/guides/rate-limits
- OpenAI, API pricing: https://developers.openai.com/api/docs/pricing
- OpenAI, Data controls in the OpenAI platform: https://developers.openai.com/api/docs/guides/your-data
- OpenAI Help Center, Billing settings in ChatGPT vs Platform: https://help.openai.com/en/articles/9039756-billing-settings-in-chatgpt-vs-platform
- OpenAI Help Center, How can I move my ChatGPT subscription to the API: https://help.openai.com/en/articles/8156019-how-can-i-move-my-chatgpt-subscription-to-the-api

## Frequently asked questions

### Does a ChatGPT subscription include OpenAI API credits?

No. OpenAI's help center describes ChatGPT and the API platform as separate billing systems, so a ChatGPT plan does not pay for API calls. API usage is charged by tokens through your API account's billing settings.

### How much do I need to pay to start using the OpenAI API?

OpenAI's rate limits guide lists usage tiers that rise with total credit purchases, with the Build tier starting at USD 5 in total credit purchases. Check the current limits page in your organisation settings, because tiers and thresholds can change.

### What is the difference between a rate limit and a spend limit?

Rate limits cap how often you can call the API, measured in requests and tokens per minute and similar units. Spend limits are about money, where an alert only sends a notification and a hard spend limit makes affected requests return a 429 error.

### Is my data used to train models when I use the API?

OpenAI states that data sent to the API is not used to train or improve its models unless you explicitly opt in. It also states that abuse-monitoring logs are retained for up to 30 days by default.

