> 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

gpt-6-luna$0.00035
gpt-6-astra$0.035

100× apart. Your model choice is your pricing.

12 models5 vendorsStripe fees includedruns in your browser

01Model

OpenAI

Anthropic

Google

xAI

DeepSeek

Other

gpt-6.1-sol: list price from OpenAI's pricing page, checked Oct 17, 2026. Short-context rate (≤272K input tokens). Edit either price to use your own.

02Tokens per message

Everything you send each turn: system prompt + resent chat history + the new message. It grows with every turn.

Reasoning models may bill thinking tokens as output. Raise this if yours thinks out loud.

03Usage

What an average active user sends. Capped by each plan's limit below.

04Free plan

Used for the suggested free cap.

05Pro plan

cost.report · gpt-6.1-sol

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.

ModelPer 1,000 msgsMargin 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%)

src/lib/plans.ts

// 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. 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. 2

    Trim the system prompt. It's billed on every single message. Shorter prompts, or your provider's prompt caching, cut input cost.

  3. 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. 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. 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)

ModelInput $/1MOutput $/1MNotes · source
gpt-6-astra OpenAI$10$50Short-context rate (≤272K input tokens). OpenAI pricing
gpt-6.1-sol OpenAI$2$10Short-context rate (≤272K input tokens). OpenAI pricing
gpt-6-luna OpenAI$0.10$0.50Short-context rate (≤272K input tokens). OpenAI pricing
Claude Opus 5.5 Anthropic$4$20Anthropic pricing
Claude Sonnet 5.5 Anthropic$2$10Anthropic pricing
Claude Haiku 5.5 Anthropic$0.10$0.50Rate for prompts up to 100K tokens ($0.50 / $2.50 above that). Anthropic pricing
gemini-4-argon Google$2$10Price through Nov 30, 2026. Google lists $4 / $20 starting Dec 1, 2026. Google pricing
gemini-3.8-flash Google$0.75$3.75Price 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.50Google pricing
grok-4.7 xAI$2$6Rate for prompts under 200K tokens ($4 / $12 at 200K+). xAI pricing
deepseek-v4-pro DeepSeek$1.32$3.96Peak-hour, cache-miss rate. DeepSeek's off-peak rate is half. DeepSeek pricing
deepseek-flash DeepSeek$0.30$1.20Peak-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 →