DEV Community

Cover image for I Almost Built Against the Wrong Kimi AI Pricing — Here's What's Actually Free vs Metered
Hamimelon2026
Hamimelon2026

Posted on

I Almost Built Against the Wrong Kimi AI Pricing — Here's What's Actually Free vs Metered

I'd been using Kimi's chat app for a few weeks — unlimited basic chat, no account friction, genuinely free — and when I decided to wire a small internal tool up to Kimi's API, I half-assumed the free part would carry over. It doesn't. The consumer app and the developer API are billed through completely separate systems, and finding that out mid-build cost me an afternoon of confused digging before I had an actual, current picture of what Kimi costs depending on which door you walk through.

Worth saying up front: this specific confusion isn't just me being sloppy. When one research group tested how well AI search tools answered basic Kimi pricing questions, three out of four gave answers describing limits that didn't match Moonshot's actual system, and one carried over a pricing tier that doesn't exist, sourced from a listicle. Stale blog posts describing an old free-tier structure that Moonshot has since changed are apparently still getting cited months after they stopped being accurate. So if you've read a confident-sounding pricing summary somewhere recently, it's worth treating as a starting point to verify rather than a settled fact — including, at some point, this one.

Two products, two separate bills

The consumer Kimi app runs on a free-forever tier called Adagio: unlimited basic chat, file uploads, and web browsing at no cost, though heavier agentic features are capped even here. Above that sit four paid membership tiers — Moderato at $19/month, Allegretto at $39/month, Allegro at $99/month, and Vivace at $199/month — which mostly unlock more agent credits, Kimi Code usage, Deep Research sessions, and a larger context window rather than access to a fundamentally different model.

None of that membership includes API access. The developer API is billed entirely separately, on a prepaid, pay-per-token basis, with no permanent free tier. You fund the account before you can call it — and the specific top-up amount and accepted payment methods appear to vary somewhat by account region, so it's worth confirming the current minimum on Moonshot's own pricing page rather than trusting a specific number from any guide, including this one, since that's exactly the kind of detail that goes stale fast.

Two separate billing systems: a free consumer app and a metered developer API

What the API actually costs right now

Moonshot's current flagship, kimi-k3, is priced at $3 per million input tokens and $15 per million output tokens, with a $0.30 rate for cached input. The coding-tuned kimi-k2.7-code runs cheaper: $0.95 for uncached input, $0.19 for cached input, and $4 for output per million tokens.

Worth knowing if you came into this expecting "the cheap option": K3's pricing is genuinely frontier-tier now, not budget-tier. Independent benchmarking has flagged it as priced above the median for its performance class, and it's also reportedly a fairly verbose model — since reasoning tokens get billed as output, that verbosity compounds the bill in a way a shorter, less chatty model wouldn't. Kimi's reputation as "the affordable one" is a couple of model generations out of date at this point; DeepSeek and Qwen occupy roughly the price position Kimi used to hold.

For the fuller picture of how these same models get priced once resold through routing platforms — which sometimes undercuts the official rate and sometimes doesn't — that's its own deep dive I've covered separately rather than repeating the full table here.

The payment method problem nobody mentions upfront

This is the part that actually surprised me most, and it's a genuinely practical detail: Moonshot's documentation describes WeChat Pay and Alipay as the funding methods for individual accounts, without clearly documenting card payment support, and notes that available options vary by account region. If you're outside a region where those payment rails are the default, or you simply don't have accounts set up for them, that's a real access barrier before you've written a single line of code.

Payment method mismatch as an access barrier before pricing even matters

The workaround most people end up using is routing through a reseller platform that accepts standard card payment instead — OpenRouter is the one most commonly mentioned for this specifically, and gateways like RouteAI, which also lists Kimi models, serve the same purpose: standard card billing, no separate account with Moonshot required, at the cost of an extra routing layer and that platform's own fee structure instead of Moonshot's direct rate. It's not automatically cheaper — sometimes it is, sometimes it isn't — but for anyone whose actual blocker is "I don't have WeChat Pay, and Moonshot's docs don't mention Visa," it solves the actual problem rather than the pricing one.

A minimal sanity-check script before you commit

Before funding an account on either side — consumer membership or API — this is the calculation that would have saved me the confused afternoon: figure out which one you actually need before paying for either.

// kimi-spend-check.js — a minimal reality check before funding an account

function estimateApiCost({ inputTokens, outputTokens, cachedTokens = 0, model = "k2.7-code" }) {
  const rates = {
    "k3":        { input: 3.00, output: 15.00, cache: 0.30 },
    "k2.7-code": { input: 0.95, output: 4.00,  cache: 0.19 },
  };

  const r = rates[model];
  if (!r) throw new Error(`Unknown model: ${model}`);

  const regularInput = Math.max(inputTokens - cachedTokens, 0);
  const cost =
    (regularInput / 1_000_000) * r.input +
    (cachedTokens / 1_000_000) * r.cache +
    (outputTokens / 1_000_000) * r.output;

  return +cost.toFixed(2);
}

// Example: a moderate coding-agent session
const estimated = estimateApiCost({
  inputTokens: 500_000,
  cachedTokens: 350_000,
  outputTokens: 80_000,
  model: "k2.7-code",
});

console.log(`Estimated cost: $${estimated}`);
console.log(
  estimated < 20
    ? "This fits comfortably inside a low-tier API top-up — you likely don't need a consumer membership at all."
    : "This is real usage — confirm your top-up amount and payment method on Moonshot's current pricing page before committing."
);
Enter fullscreen mode Exit fullscreen mode

The point of this isn't precision — it's forcing yourself to answer "am I actually building something that needs the metered API, or was I trying to get consumer-app usage for free" before you fund either account. For me, the answer was that my internal tool needed maybe a few dollars a month of actual API usage, which meant the whole "which membership tier" question I'd been stuck on for an hour didn't apply to my situation at all — I needed API credits, not a subscription.

The actual takeaway

Kimi's chat app being genuinely free is real and not a bait-and-switch — the Adagio tier's basic chat, uploads, and browsing aren't secretly metered. What trips people up is assuming that generosity extends to the API, when it's a completely separate, prepaid, no-free-tier system with its own current rate card that's worth checking directly rather than trusting a cached search result or an older guide. If your actual blocker turns out to be payment methods rather than price, that's a different problem with a different fix than picking a cheaper model.

TL;DR: Kimi's consumer chat app has a genuinely free Adagio tier, but the developer API is a completely separate, prepaid, no-free-tier system — currently $3/$15 per million tokens for the flagship K3 model, cheaper for K2.7-code — and payment method restrictions (WeChat Pay/Alipay, card support varies by region) are often the real barrier, not the price itself.

Website: https://www.fastrouteai.com

Top comments (0)