> free_tool --prices-checked 2026-10-17
AI chatbot cost
& pricing calculator
What does one chat message cost you, and does your Pro plan still make money when users max it out? Pick a model, set tokens and plan limits, and get the answer before the API bill does.
Same message · 1,500 in + 400 out tokens
100× apart. Your model choice is your pricing.
12 models5 vendorsStripe fees includedruns in your browser
Cost per message
$0.0070
$7.00 per 1,000 messages · (1,500 × $2 + 400 × $10) ÷ 1M
Pro gross margin
77%
typical usage
7% if every Pro user hits the cap
Per Pro user · per month
- Pro price
- $12.00
- Stripe 2.9% + 30¢
- −$0.65
- LLM · typical (300 msgs)
- −$2.10
- Margin · typical
- $9.25
- LLM · at cap (1,500 msgs)
- −$10.50
- Margin · at cap
- $0.85
Free tier LLM / mo
$350.00
$350.00 if all hit the cap
Pro tier LLM / mo
$105.00
$525.00 at the cap
Break-even Pro price
$11.12
at the cap · $18.33 to also cover free users
Suggested free cap
14msgs
per user / mo keeps free under $100.00
Cost per message $0.0070. Pro margin 77% typical, 7% at the cap. Break-even Pro price $11.12.
06 Your month
50 Pro × $12.00 with 1,000 free users
- Revenue
- $600.00
- Stripe fees
- −$32.40
- LLM · Pro
- −$105.00
- LLM · Free
- −$350.00
- Profit before hosting
- $112.60
07 Model comparison
Cost per 1,000 messages at your settings
1,500 input + 400 output tokens per message. Pro columns use your $12.00 price and 1,500-message cap. Bars use a log scale. Pick a row to load it.
| Model | $ / 1M in · out | Per 1,000 msgs | Pro user at cap | Margin at cap |
|---|---|---|---|---|
$0.35 | $10.83 (90%) | |||
$0.35 | $10.83 (90%) | |||
$0.93 | $9.96 (83%) | |||
$1.45 | $9.18 (76%) | |||
$2.63 | $7.41 (62%) | |||
$3.56 | $6.01 (50%) | |||
$5.40 | $3.25 (27%) | |||
$7.00 | $0.85 (7%) | |||
$7.00 | $0.85 (7%) | |||
$7.00 | $0.85 (7%) | |||
$14.00 | −$9.65 (-80%) | |||
$35.00 | −$41.15 (-343%) |
// plans.ts — generated by the VibeBoot AI chat cost calculator
// https://vibeboot.dev/tools/ai-chat-cost-calculator?m=gpt-6.1-sol&pi=2&po=10&it=1500&ot=400&mpu=300&fu=1000&fc=50&pu=50&pp=12&pc=1500&fb=100
//
// Assumptions: gpt-6.1-sol (OpenAI) at $2 / 1M input and $10 / 1M output tokens,
// ~1,500 input + 400 output tokens per message ≈ $0.007 per message.
// Worst case (every user hits the cap): Free $0.35/user/mo, Pro $10.50/user/mo.
// Enforce these on the server, before you call the model. Never trust a limit sent by the browser.
export type PlanId = "free" | "pro";
export type PlanLimits = {
/** Max messages a user can send per calendar month. */
messagesPerMonth: number;
/** Daily equivalent, if you meter per UTC day instead of per month. */
messagesPerDay: number;
/** Price in USD per month. */
priceUsdMonthly: number;
};
export const PLANS: Record<PlanId, PlanLimits> = {
free: {
messagesPerMonth: 50,
messagesPerDay: 1, // floor(messagesPerMonth / 31), so even a 31-day month stays under the monthly cap
priceUsdMonthly: 0,
},
pro: {
messagesPerMonth: 1500,
messagesPerDay: 48, // floor(messagesPerMonth / 31), so even a 31-day month stays under the monthly cap
priceUsdMonthly: 12,
},
};
export function getLimits(plan: PlanId): PlanLimits {
return PLANS[plan];
}
/** True if the user may send one more message this month. */
export function canSend(plan: PlanId, usedThisMonth: number): boolean {
return usedThisMonth < PLANS[plan].messagesPerMonth;
}
08 Share
Send this scenario to a cofounder
Every input lives in the link, so it opens with exactly these numbers. Nothing is stored on a server.
- model
- gpt-6.1-sol
- cost / message
- $0.0070
- Pro margin
- 77% typical · 7% at cap
- break-even
- $11.12 / mo
- free cap
- ≤ 14 msgs for $100.00
The plans.ts export is plain TypeScript with monthly caps and a daily equivalent. Enforce the limits on your server before the model call.
next: skip the next one
Ready to charge for it? The VibeBoot SaaS Starter ships auth, Stripe subscriptions and a database already wired on Next.js 16.4.3. $49, one-time.
14-day money-back guarantee · lifetime updates
Building an AI chat app? The AI Chatbot Starter ships streaming chat, saved conversations, Free/Pro usage limits enforced on the server and Stripe, with AGENTS.md and .cursor/rules. Get the AI Chatbot Starter, $59
Prices checked Oct 17, 2026 from each vendor's pricing page: OpenAI · Anthropic · Google · xAI · DeepSeek. Standard per-token list prices; cached-input, batch and off-peak discounts aren't modeled. Stripe fee uses Stripe's standard US card rate (2.9% + 30¢ per successful charge).
09 Turn the numbers into an app
Limits that hold up on the server, not just in a spreadsheet
The VibeBoot AI Chatbot Starter is a Next.js 16 template for a paid AI chat app. It enforces Free vs Pro limits in the chat API before the model is called: messages per day, prompt length and how much history is sent, all set in one src/lib/plans.ts. The daily quota is reserved atomically, so two tabs can't sneak past it, and the plan comes only from your database, which only the verified Stripe webhook updates.
- Stripe subscriptions + Customer Portal
- Route Pro users to a different model (AI_MODEL_PRO)
- Any OpenAI-compatible API via the Vercel AI SDK
- Offline mock model: test limits for $0
Its limits are per day: divide a monthly cap by 31, which is what the messagesPerDay field in the plans.ts export does.
10 How the math works
Every number, in one formula each
- cost per message
- (input tokens × input $/1M + output tokens × output $/1M) ÷ 1,000,000
- free tier / month
- free users × min(typical msgs, free cap) × cost per message
- Pro user / month
- min(typical msgs, Pro cap) × cost per message (at cap: Pro cap × cost per message)
- Stripe fee
- 2.9% × Pro price + $0.30
- gross margin
- Pro price − Stripe fee − LLM cost per Pro user
- break-even price
- (LLM cost per Pro user at cap + $0.30) ÷ (1 − 0.029)
- suggested free cap
- floor(free budget ÷ (free users × cost per message))
“Typical” uses your messages-per-user number, capped by each plan. “At the cap” assumes every user sends their full allowance, which is the number that decides whether a plan can lose money. Hosting, database, email and refunds aren't included.
11 Cut your cost per message
Five levers that move the needle
- 1
Send less history. Input tokens grow every turn because the conversation is resent. Capping how many earlier messages go to the model is often the biggest saving.
- 2
Trim the system prompt. It's billed on every single message. Shorter prompts, or your provider's prompt caching, cut input cost.
- 3
Use a small model for free users. Free users rarely need the flagship. Send them to a cheap model and reserve the strong one for Pro.
- 4
Cap the reply length. Output tokens cost 3 to 8 times more than input on every model listed here, so set a max output tokens value on the model call.
- 5
Set the cap from the worst case. Choose limits so a Pro user who maxes out still leaves margin, then price on the typical case.
Prices used (checked Oct 17, 2026)
| Model | Input $/1M | Output $/1M | Notes · source |
|---|---|---|---|
| gpt-6-astra OpenAI | $10 | $50 | Short-context rate (≤272K input tokens). OpenAI pricing |
| gpt-6.1-sol OpenAI | $2 | $10 | Short-context rate (≤272K input tokens). OpenAI pricing |
| gpt-6-luna OpenAI | $0.10 | $0.50 | Short-context rate (≤272K input tokens). OpenAI pricing |
| Claude Opus 5.5 Anthropic | $4 | $20 | Anthropic pricing |
| Claude Sonnet 5.5 Anthropic | $2 | $10 | Anthropic pricing |
| Claude Haiku 5.5 Anthropic | $0.10 | $0.50 | Rate for prompts up to 100K tokens ($0.50 / $2.50 above that). Anthropic pricing |
| gemini-4-argon Google | $2 | $10 | Price through Nov 30, 2026. Google lists $4 / $20 starting Dec 1, 2026. Google pricing |
| gemini-3.8-flash Google | $0.75 | $3.75 | Price through Dec 31, 2026. Google lists $1.50 / $7.50 starting Jan 1, 2027. Google pricing |
| gemini-3.5-flash-lite Google | $0.30 | $2.50 | Google pricing |
| grok-4.7 xAI | $2 | $6 | Rate for prompts under 200K tokens ($4 / $12 at 200K+). xAI pricing |
| deepseek-v4-pro DeepSeek | $1.32 | $3.96 | Peak-hour, cache-miss rate. DeepSeek's off-peak rate is half. DeepSeek pricing |
| deepseek-flash DeepSeek | $0.30 | $1.20 | Peak-hour, cache-miss rate. DeepSeek's off-peak rate is half. DeepSeek pricing |
12 FAQ
LLM API cost questions
How much does the OpenAI API cost per message?
It depends on the model and how many tokens each message uses. Cost per message = (input tokens × input price + output tokens × output price) ÷ 1,000,000. With gpt-6.1-sol at $2 input / $10 output per 1M tokens (OpenAI's list price on Oct 17, 2026), a message with 1,500 input and 400 output tokens costs $0.007, or $7 per 1,000 messages. The same message on gpt-6-luna ($0.10 / $0.50) costs $0.00035.
How do I calculate LLM API cost for my chatbot?
Estimate the average input tokens per message (system prompt + the chat history you resend + the new message) and the average output tokens per reply. Multiply each by the model's per-token price, add them, and multiply by messages per month. This calculator does that for your free and Pro users, with typical usage and the worst case where everyone hits the cap.
How should I price an AI chatbot subscription?
Start from the worst case: a Pro user who sends the full message cap every month. Your price has to cover that LLM cost plus payment fees. The break-even price is (LLM cost at the cap + $0.30) ÷ (1 − 0.029) on Stripe's standard US card rate. Price above it with room for hosting, refunds and the free users you subsidize, or lower the cap until the numbers work.
How many tokens is one chat message?
A common rule of thumb for English is about 4 characters per token, but the input side is usually much bigger than the message itself: every turn resends the system prompt and the earlier conversation. A 10-turn chat can easily send thousands of input tokens per message. Tokenizers differ too: Anthropic says its Claude 4.7 and later models produce about 30% more tokens for the same text than earlier models.
What's a safe free-tier message cap?
Pick the most you're willing to lose on free users each month. The suggested cap is floor(budget ÷ (free users × cost per message)): if every free user maxes it out, you still stay under budget. Using a cheaper model for free users raises the cap you can afford.
Does this include prompt caching, batch or off-peak discounts?
No. It uses standard, uncached list prices. Cached input, batch APIs (often 50% off), DeepSeek's off-peak rate, long-context price tiers, tool and web-search fees, taxes, Stripe Billing fees and international card fees aren't modeled. Enter custom prices if you have a different rate.
Where do the model prices come from?
Each price was read on the vendor's official pricing page on Oct 17, 2026 and links to its source. Some are promotional with an end date that we note. Prices change often, so check the source before you commit, or enter custom prices.
Is anything I enter sent to a server?
No. The calculator runs in your browser. The share link stores your inputs in the URL's query string, and that's all.
More free tools: Cursor rules generator for Next.js projects, and the Cursor rules pack with an AI SDK chat rule.
vibeboot saas starter
Ready to charge for it? The VibeBoot SaaS Starter ships auth, Stripe subscriptions and a database already wired on Next.js 16.4.3. $49, one-time.
14-day money-back guarantee · lifetime updates
Building an AI chat app? The AI Chatbot Starter ships streaming chat, saved conversations, Free/Pro usage limits enforced on the server and Stripe, with AGENTS.md and .cursor/rules. Get the AI Chatbot Starter, $59
> More free tools
All tools →- VibeBoot DoctorNewPaste any error or your package.json: diagnosis, fix and the rule that prevents it.
- middleware.ts → proxy.tsNewConvert Next.js middleware to Next.js 16 proxy.ts, Auth.js v5 included.
- AGENTS.md checkerNewCheck AGENTS.md for the Next.js 16 managed block, commands and guardrails.
- Access control checkerPaste a route or server action, see what anyone can call.
- Prisma error fixerP2002, P1001, P2021, did not initialize yet: cause and fix.
- Next.js error fixerServer Component, Suspense and hydration errors: cause and fix.
- Env leak checkerPaste your .env, see which secrets would ship to the browser.
- Stripe webhook fixerPaste a Stripe webhook error, get the cause and the fix.
- Auth.js error fixerMissingSecret, UntrustedHost, redirect_uri: cause and fix.
- AGENTS.md generatorA ready AGENTS.md and CLAUDE.md for your Next.js stack.
- Cursor Rules PackFree downloadScoped .mdc rules for Next.js, Stripe webhooks, access control and more.
- Cursor rules generatorBuild one project.mdc rule for your exact stack.