The idea and why it works

Most AI products bundle two things into one price: what you built (workflow, hosting, support) and the model calls underneath. Many users already pay for the second part through a ChatGPT or Claude subscription or an API account. Ask them to pay for model usage again and they start comparing you with "I'll just do it in ChatGPT".

v0 has now split the two. Its ChatGPT plan docs (last updated 30 October 2026) say ChatGPT Plus and Pro subscribers can connect their plan, and eligible responses from GPT-6 Astra, GPT-5.6 Sol and GPT-5.6 Luna then count against the ChatGPT plan's limits. v0 still charges a platform fee in its own credits ("Every request carries a small platform fee", the docs say), plus image generation, delegated subagents and other supporting agent work. A pricing tracker, UsagePricing, logged the section as new on 15 October: absent from v0's pricing docs on 14 August, present on 15 October.

The detail worth copying is the limit. The docs say v0 pauses generation and saves your progress, and that it "does not automatically switch AI responses to v0 credits when you reach your ChatGPT usage limit". The user chooses: wait for the ChatGPT allowance to reset, or click Continue with v0 credits. No silent fallback, so no surprise bill.

The user stops paying twice for the same model, tries your product on spend already committed, and meets your credits as an opt-in upgrade. v0 has published no conversion results, so treat this as a mechanism to test.

One caveat up front. The ChatGPT connection is an OpenAI partner integration. OpenAI's Sign in with ChatGPT quickstart says plan usage "is available to all open-source partners and selected private clients", and describes a limited trial for selected commercial partners. If you run a hosted, paid product, you probably cannot plug into ChatGPT plans today. You can ship the principle with API keys this week.

Who it's for

  • Solo builders selling an AI tool on top of OpenAI, Anthropic or other models, where model cost is a big share of each user's bill.

  • Products whose buyers already have API keys: developers, agencies, automation people.

  • Anyone whose heaviest users are eating the margin on a flat plan. (If you run an AI credits programme for power users, BYO key is the natural tier above it.)

It suits non-technical audiences less well: creating an API key is a real hurdle for a casual user.

What you need (tools, time, cost)

  • Tools: your existing app, a secrets store or encrypted database column for keys, and your billing provider. Optionally OpenRouter's BYOK so one integration covers many providers.

  • Time: a weekend for one provider; two to three days for several providers plus per-request metering.

  • Cost: close to nothing in infrastructure. If you route through OpenRouter, its docs say custom provider keys cost 5% of the normal OpenRouter price for that model, after a monthly free allowance measured by list-price inference cost (as of 31 October 2026).

Step-by-step

  1. Split your price on paper. Mark everything a user pays for as platform (workflow, storage, support, extras like images) or model (tokens). The platform fee is what you charge whoever's key pays for tokens.

  2. Choose how you charge the platform fee. A flat monthly fee is simplest. A small per-request fee, like v0's, tracks usage more fairly. Cursor shows a token-based version: its API keys help page says that on Teams and Enterprise plans, own-key requests carry a "Cursor Token Rate of $0.25 per million tokens", while individual plans pay only the provider (as of 31 October 2026).

  3. Add a "Use your own key" setting. Validate each key with the cheapest possible call before saving it, with a clear error if it fails.

  4. Store keys like passwords. Encrypt at rest, decrypt only server-side, never log them or send them back to the browser. One-click delete.

  5. Route by billing mode. Each request checks: does this user have a valid key for this model? If yes, call the provider with their key and charge only the platform fee. If no, use your key and your credits.

  6. Pause at their limit; never fall back silently. When the user's key returns a rate-limit or quota error, stop, save the work, and show a choice: retry later, or continue on your credits. This is the v0 rule, and it is what keeps trust.

  7. Show both meters. Show platform-fee usage, link to the user's provider dashboard for model spend, and say which bill each action lands on.

  8. Test it from the user's side. Sign up as a new user with a fresh key and a tiny provider budget. Run a task, then exhaust the budget mid-task. Check that the work saved, the pause message names the cause, nothing was charged to your credits without a click, and deleting the key actually removes it.

Template / copy / example

Settings copy:

❝

Already pay for AI? Use it here. Connect your OpenAI, Anthropic or OpenRouter key and model usage goes on your provider bill, not ours. You pay our platform fee of [$X/month] for the workflow, storage and support. When your key hits its limit, we pause and save your work. We never switch to our credits unless you choose to.

Pause message:

❝

Your OpenAI key has reached its limit. Your draft is saved. [Try again later] [Continue with our credits]

Illustrative maths (made-up numbers, not from any company): say your all-in plan is $20 a month and an average user's model calls cost you $12, leaving $8. A heavy user who costs you $35 in model calls loses you $15 a month. Offer a BYO-key plan at $8 a month: your margin is the same $8 on every user, light or heavy, because the model cost now sits on their bill. The heavy user pays less than before, and you stop losing money on them. Plug in your own numbers; the useful output is the platform fee that leaves your margin unchanged.

Metrics to watch

  • BYO adoption: share of new signups who connect a key in their first week.

  • Signup-to-paid conversion, BYO users against all-in users.

  • Gross margin per user on each plan, especially your top 10% by usage.

  • Pause events per user and what they choose next: wait, switch to your credits, or leave.

  • Key failures at entry, and support tickets about keys or billing.

Pitfalls

  • Silent fallback. Switching a user to your credits when their key fails is the fastest way to lose trust. Make it a click.

  • An unclear split. Name every item that stays on your credits, as v0 does for images and subagents.

  • Cannibalising your top plan. Your highest payers may move to BYO. Set the platform fee from your margin.

  • Feature gaps. Some features may not work on BYO keys. Cursor's page says custom keys "only work with chat models" and Tab completion stays on Cursor's models; v0 says fast mode is unavailable on the ChatGPT plan. List the gaps before users find them.

  • Privacy promises. Cursor notes its Zero Data Retention policy does not apply to own-key requests. Check what your privacy page promises.

  • Runaway spend on the user's account. It is their money now. Add a per-task cap and point them to their provider's usage limits. (We covered bill-shock spend alerts earlier; the same rules apply to their key.)

Variations

  • Open-source or local app: if your app is open source, OpenAI's quickstart says ChatGPT plan usage is open to open-source partners, so check whether you can offer the real "use your ChatGPT plan" button.

  • Gateway-only: accept just an OpenRouter key, so one key covers many models and you maintain one integration.

  • Hybrid default: start everyone on your credits; suggest a key once they pass a usage level.

  • Price anchoring: show both plans side by side. Many readers of your pricing page already pay for an AI subscription and have that price in mind.

Comments

Avatar

or to participate