Skip to content
Get API key

Pricing and billing

Mouse has one price list for every customer. There are no seat fees, tiers, per-request minimums, or regional surcharges. Zero data retention and POST /v1/calibrations profile application are included at no extra charge.

The only decision API with a cache discount — cached tokens at open-weight prices ($0.02 / 1M), with native probabilities, no regional surcharge, and no ZDR gate.

Token categoryPrice per 1M tokensNotes
Input tokens (state, instructions, criteria, framing)$0.10$0.0000001 per token ($0.0001 per 1,000 tokens)
Cached input tokens (repeated prefix within ~5 minutes)$0.0280% discount ($0.00000002 per token; no cache-write fee)
Output tokens$0.00Free—mouse-1 scores options in one pass and never generates output tokens

Every customer pays the same published rate card:

  • No enterprise markup or tier gate: Zero Data Retention (Mouse-Data-Retention: none) and POST /v1/calibrations are included at list price (unlike Vercel's $0.10 / 1k ZDR surcharge or enterprise-only ZDR gates).
  • No regional surcharge: Currently served from US-East (Mouse-Region: us) at $0.10 / $0.02 (unlike OpenAI Decisions' +10% regional processing multiplier).
  • No cache-write fee: Writing into the prefix cache costs $0.00 extra.
  • Cost basis: We publish our H100 prefill cost basis once measured on the attached production checkpoint rather than asserting unverified figures.

Cache break-even against other decision APIs

Section titled “Cache break-even against other decision APIs”

With uncached input at $0.10 / 1M and cached input at $0.02 / 1M, your effective rate per 1M input tokens is:

[ \text{effective_rate}(f) = $0.10 - $0.08 \cdot f ]

where (f \in [0, 1]) is the fraction of billed input tokens served from cache (visible per day and per key in /console/usage).

ComparatorPublished input rateCache discountCache hit fraction (f) needed for mouse-1 to beat it
Cloudflare Clef (27B)$0.24 / 1MNone(f \ge 0%) (always cheaper)
OpenAI Decisions (gpt-6-luna)$0.10 / 1M (+10% regional)None(f > 0%) (any cache hit beats it)
TypeSafe Jev (jev-1.13.0)$0.042 / 1MNone(f > 72.5%)
Microsoft Decision-1 (9B)$0.042 / 1MNone(f > 72.5%)
Cloudflare Clef-flash (9B)$0.038 / 1MNone(f > 77.5%)
Perplexity pplx-decider / Liquid d1$0.02 / 1MNone ($0.02 read)Parity at (f = 100%)
  • Rubric first, varying item last: Place shared instructions, tool schemas, or policy rubrics at the start of state and the per-request item at the end. JSON object key order is preserved exactly as sent over the wire.
  • Tenant-isolated, best-effort ~5-minute window: Cache entries live in ephemeral GPU memory, are scoped to your account, and typically remain warm for ~5 minutes under normal load (evicting earlier under memory pressure).
  • Inspect your own hit rate: The Console Usage page and CSV export break out input_tokens and cached_tokens per key so you can measure (f) directly on your workload.

Unlike providers that bundle hidden system prompts into input_tokens, Mouse publishes the exact token accounting formula used by apps/decide/mouse_api/billing.py and itemizes every component in the response's usage object:

[ \text{input_tokens} = \text{state_tokens} + \text{question_tokens} + \text{framing_tokens} + \text{image_tokens} ]

  1. state_tokens: Tokens in your serialized state. Counted and billed once per request, whether you ask 1 question or 128 questions.
  2. question_tokens: Sum of tokens across each question's instructions and rendered option descriptions (criteria).
  3. framing_tokens: Structural delimiters around the request, questions, and options—no hidden system prompt: [ \text{framing_tokens} = 4 + 3 \times Q + 2 \times \sum_{q=1}^{Q} O_q ] where (Q) is the number of questions and (O_q) is the number of options in question (q) (2 for a noul question, len(criteria) for choice and score).
  4. cached_tokens: When an identical state is evaluated again within the 5-minute (300 s) in-memory prefix cache window, cached_tokens equals state_tokens.
  5. cost_usd: Computed to nanodollar precision ($0.000000001) using ROUND_HALF_UP: [ \text{cost_usd} = \frac{(\text{input_tokens} - \text{cached_tokens}) \times $0.10 + \text{cached_tokens} \times $0.02}{1{,}000{,}000} ]

Worked example: 1 question vs 5-question fan-out vs cached repeat

Section titled “Worked example: 1 question vs 5-question fan-out vs cached repeat”

Suppose your agent state is 1,000 tokens, and each question (instructions + criteria + framing) is 40 tokens:

Scenariostate_tokensquestion_tokens + framing_tokenscached_tokensCost per callCost per 1,000 calls
1 question (cold state)1,000400$0.0001040$0.104
5 questions in 1 call (cold state)1,0002000$0.0001200$0.120 (vs $0.520 as 5 separate calls)
5 questions in 1 call (cached state within 5m)1,0002001,000$0.0000400$0.040
  • Calling POST /v1/calibrations bills the tokens of the labeled examples at the same $0.10 / 1M input ($0.02 / 1M cached) rate. Fitting 250 typical 100-token examples costs about $0.0025 (one quarter of a cent).
  • Passing a calibration profile token on POST /v1/systemone is free (0 extra tokens, $0 surcharge).
  • Refused requests (4xx validation, auth, or rate-limit errors) are never billed.
  • Verified accounts receive $5.00 in free starter credits at signup.
  • Spend draws from your prepaid Mouse credit balance (/console/billing).
  • When your balance reaches $0.00, API keys return 402 insufficient_credits within 30 seconds until you top up or auto-reload runs.
  • Usage settles asynchronously within ~60–120 seconds, so a high-RPS burst can briefly take a balance slightly below zero; the next top-up reconciles it.
  • Built-in spend cap: Optional auto-reload charges your saved payment method at most once per 24 hours, bounding worst-case spend from a leaked key to your current balance plus one reload amount per day.