Search

LLM API Pricing for a Micro-SaaS: Price the Workload

Model price per token tells you almost nothing. How to price the whole workload instead, with dated 2026 figures and the caching that changes the answer.

Mohit9 min read
Chat, agents, extraction, and batch work route through a workload policy layer.

The verdict. Pick an LLM API by the job it has to finish, not this week’s model winner. Start direct with one provider; use stronger models where failure is expensive and cheap models only where output is machine-checked. Add routing when a second provider solves a measured reliability, capability, or spend problem. Self-host only when measured API spend can pay for capacity and its ops work.

This is a Workflow Decision Lab piece, not a “best AI API” list. Customers buy a finished reply, valid extracted record, or completed agent task. Price that workflow.

Proof status. Token prices below are quoted from vendor pages fetched on 21 August 2026 and linked at every figure. The monthly example is labelled arithmetic, not a benchmark. The self-hosted comparison is blocked / unverified. Needs a measured benchmark. No GPU benchmark was run. Recheck sources before setting a customer price.

1. The operator

You’re a solo builder with an AI feature inside a SaaS. It serves about 100,000 user-facing completions a month: ordinary chat, upload-to-fields extraction, multi-tool loops, and a nightly back-catalogue job.

Every request currently goes to one default model. A 200-token extraction, a long agent loop, and asynchronous bulk work therefore get the same price, latency, and failure plan. A rate-limit spike or model retirement becomes a product incident.

2. The mechanism: four workloads, four things that break

There are four common LLM jobs in a micro-SaaS. They do not stress the stack in the same way.

Workload What the customer sees What actually decides the stack
Chat / completions A response while they wait Time to first token, output speed, conversation context, and a predictable fallback when capacity tightens.
Agentic multi-tool loops A task completed across tools Tool-call reliability, retry behaviour, context growth, idempotency, and the cost of several model turns rather than one.
Structured extraction Valid JSON or fields in a database Schema adherence, validation failure rate, short output, and whether a cheap model saves money after retries.
Bulk batch jobs A queue finishes later Input/output token cost, asynchronous discount, throughput, queue back-pressure, and a clear retry budget.

Chat needs low perceived latency. An agent can justify a pricier model when one bad tool call creates five retries. Extraction needs a validator. Batch work needs an asynchronous rate.

If requests contain customer records, check direct-provider retention and regional terms, then the router’s policy for the exact model. A lower token price does not compensate for sending data somewhere your agreement forbids.

3. The prices (as of 21 Aug 2026, from vendor pages)

These are standard listed input/output prices per 1M tokens, not a claim that any model is best for your workload. Cached-input rates, tool charges, reasoning tokens, regional processing, and batch rates can change the total. OpenAI says its Batch API cuts input and output prices by 50%; Anthropic’s pricing page says batch processing saves 50%.12

API path Model Input / 1M Output / 1M
OpenAI direct GPT-5.6 Sol $5.00 $30.00
OpenAI direct GPT-5.6 Terra $2.00 $12.00
OpenAI direct GPT-5.6 Luna $0.20 $1.20
Anthropic direct Fable 5 $10.00 $50.00
Anthropic direct Sonnet 5 $2.00 $10.00
Anthropic direct Haiku 4.5 $1.00 $5.00
OpenRouter Gemini 3.7 Flash $0.375 $1.875
OpenRouter Qwen3.7 Flash $0.03 $0.13
OpenRouter gpt-oss-120b (CoreWeave) $0.03 $0.17

Receipts, as of 21 Aug 2026: OpenAI pricing, Anthropic API pricing, OpenRouter models · Qwen3.7 Flash · gpt-oss-120b.

Two important qualifications:

  • OpenRouter is a routing and billing layer, not one model vendor. Its pay-as-you-go plan lists a 5.5% platform fee and model-based pricing.3 The gpt-oss-120b figure above is the CoreWeave listed provider price on OpenRouter’s model page; other hosts for the same model list different prices. Treat a routed-model price as an endpoint choice, not a universal price.
  • A lower token price is not a lower workflow price by itself. If a model misses the schema, makes a bad tool call, or needs a larger prompt to work, the saving can vanish in retries. Keep the model behind a named workload and a test set.

4. The worked math (this is the section that decides it)

Assumptions. This is a pricing fixture, not observed production traffic. The 100,000 monthly completions split as follows:

  • 40,000 chat completions: 800 input + 400 output tokens each = 32M input / 16M output.
  • 20,000 agentic completions: 5,000 input + 1,500 output tokens each across the loop = 100M / 30M.
  • 30,000 extraction completions: 1,000 input + 200 output tokens each = 30M / 6M.
  • 10,000 bulk completions: 2,000 input + 300 output tokens each = 20M / 3M. This fixture applies the vendor-stated 50% batch discount to OpenAI Terra.
Stack fixture Workload routing Monthly token cost What the number means
Single-provider direct OpenAI Terra for chat, agents, and extraction; Terra Batch for bulk $986.00 $256 chat + $560 agents + $132 extraction + $38 batch.
Routed by workload Terra chat; Anthropic Sonnet 5 agents; OpenAI Luna extraction; Terra Batch bulk $807.20 $256 + $500 + $13.20 + $38. This excludes any routing-layer fee because the fixture calls providers directly.
Self-hosted fixture An open-weight model on your own capacity Blocked / unverified No measured tokens/sec, utilization, hardware, electricity, serving, or reliability data. Do not compare it to the two rows yet.

The routed fixture saves $178.80/month under these assumptions. It excludes evaluation work, fallback testing, observability, and whether Sonnet is actually best for your tools. It only shows why “one default model for everything” is worth challenging at real traffic.

The self-host line. Calculate:

monthly self-host cost = fixed GPU + electricity + serving/monitoring + labour + variable costs

Then compare it with your measured API bill. A simple break-even form is:

successful workflows/month = monthly fixed self-host cost ÷ (direct API cost/workflow − self-host variable cost/workflow)

Measure the model, hardware, context, concurrency, and reliability target first. Any numeric crossover without them is unverified. Needs a measured benchmark. “The weights are free” is not a serving-cost calculation.

5. Where it fails (the part the pricing table hides)

  • A model disappears without warning. TubeSpark’s builder wrote that Google deprecated gemini-1.5-flash; requests returned 404 until its check switched to gemini-2.5-flash.4 This is one builder’s account, not an SLA. Keep model IDs configurable and run a canary; a fallback helps only if you tested it.
  • You hit a rate-limit cliff. Record 429s, queue delay, retry count, and fallback activation separately from ordinary model failures.
  • Four dashboards create an irreconcilable bill. Different token accounting, caches, tool charges, and invoice periods mean you need to assign each request to a customer, workflow, provider, model, and retry outcome.
  • A cheap model quietly degrades the product. Valid-looking JSON can still contain the wrong field. Track schema-valid rate and sampled task correctness, not only HTTP 200s and token cost.

6. When NOT to use it

Do not add a router before more than one provider is in production for a real reason: availability, capability, compliance, or measured cost/quality. “Optionality” buys an abstraction layer, tests, logging, model-version policy, and new failure states.

Do not self-host before tokens are a real P&L line item and you can name the box operator. You need sustained utilization and an answer for upgrades, cold starts, incidents, and regressions. Direct API is often cheaper operationally even when its token rate is higher.

For the first version, a single direct provider plus three boring safeguards is enough: model IDs in configuration, a request-level usage log, and a manual fallback procedure you have actually run.

7. The 30-day test (how you’ll know the stack earned its complexity)

Run one controlled month. Route only workloads you can evaluate and keep a baseline. Review weekly:

  1. $ per 1,000 successful workflows, by provider and workload. Count a workflow only after the user-visible result passes your validator. Include all attempts and tool charges where applicable.
  2. Fallback trigger rate. Start with a target of under 1% of production workflows. Split it into rate limits, provider errors, invalid output, and manual policy fallbacks. A low total that hides invalid output is not a win.
  3. Quality spot-check score. Randomly review 50 completed workflows per workload per week against a written rubric. Set a pre-committed floor, for example at least 45/50 acceptable for extraction before moving traffic to a cheaper model.
  4. Latency and operational load. Track p50/p95 end-to-end workflow time and the minutes spent reconciling billing or repairing fallbacks. If routing saves $179 but costs four hours of engineering every month, the fixture did not improve the business.

Keep the second provider only if its successful-workflow cost or failure profile clears the pre-set threshold. Otherwise remove it.

Bottom line

OpenAI direct, Anthropic direct, OpenRouter, and self-hosting are not four versions of the same purchase. They put different trade-offs around capability, routing, billing, data handling, and operations. Start with one provider and price a successful workflow. Use strong models for the hard, consequential work; use cheaper models only after validation proves they hold up; use batch for work that can wait. Add multi-provider routing after a real incident risk or measured routing advantage appears. Self-host only after the all-in breakeven is measured.

The model leaderboard can help choose candidates. It cannot tell you what your SaaS actually costs to run.


More on this decision, three ways to look at it:

CHAT • AGENTS • EXTRACTION • BATCH

CHAT • AGENTS • EXTRACTION • BATCH

Footnotes

  1. OpenAI API Pricing, fetched 21 August 2026.

  2. Anthropic API Pricing, fetched 21 August 2026.

  3. OpenRouter Pricing, fetched 21 August 2026.

  4. “Why I chose 4 AI providers instead of just OpenAI, and what happened when Google killed a model without warning,” Indie Hackers, posted 2 March 2026 and fetched 21 August 2026.