Skip to content

Classification and extraction

The cheapest LLM API for classification and extraction

A million labels and 50,000 extracted records priced on Claude, GPT, Gemini, and Grok models, why small models usually win, and how to test one on your own data.

Last updated

A million labels a month

Classification sends a short text and gets back one word, so you pay almost only for input. The example is 1,000,000 short texts a month, about 500 tokens in (the text, the instructions, and the labels) and 10 out.

ModelInputOutputPer month
Claude Sonnet 5.5$1,000$100$1,100
Claude Haiku 5.5$50.00$5.00$55.00
GPT-6.1 Terra$500$50.00$550
GPT-6 Luna$50.00$5.00$55.00
GPT-5 mini$125$20.00$145
GPT-5 nano$25.00$4.00$29.00
GPT-4o mini$75.00$6.00$81.00
Gemini 3.1 Flash-Lite$125$15.00$140
Gemini 2.5 Flash-Lite$50.00$4.00$54.00
Grok 4.3$625$25.00$650

Lowest here: GPT-5 nano at $29.00, against $1,100 on Sonnet 5.5.

50,000 extracted records a month

Extraction reads a document and writes a small JSON record. The example is 50,000 documents a month, about 2,000 tokens in and 250 tokens of JSON out each.

ModelInputOutputPer month
Claude Sonnet 5.5$200$125$325
Claude Haiku 5.5$10.00$6.25$16.25
GPT-6.1 Terra$100$62.50$163
GPT-6 Luna$10.00$6.25$16.25
GPT-5 mini$25.00$25.00$50.00
GPT-5 nano$5.00$5.00$10.00
GPT-4o mini$15.00$7.50$22.50
Gemini 3.1 Flash-Lite$25.00$18.75$43.75
Gemini 2.5 Flash-Lite$10.00$5.00$15.00
Grok 4.3$125$31.25$156

Lowest here: GPT-5 nano at $10.00. Gemini rows are for comparison; FUSR.ai does not route to Gemini.

Why small models usually win here

Picking a label from a fixed list or copying fields into JSON is a narrow job. Small models do it well once the instructions and the output format are clear. Put the label list and a few examples at the start of the prompt so they come from the cache, ask for structured output, and cap the output length.

Test it on labeled data

You can know for sure in an afternoon:

  1. 01Take 200 items you already labeled

    Or label them by hand. Include the hard cases.

  2. 02Run them through two or three small models

    Same prompt, same output format.

  3. 03Count the mistakes

    Pick the cheapest model whose mistake count you can live with, and send only the unsure cases to a larger one.

Sending the unsure cases to a larger model is routing. You can build it yourself or use an AI API router.

Sources

Prices as of

List prices in US dollars per million tokens, standard tier, read from each provider's own pricing page. Providers change prices, so check the source before you set a budget. FUSR.ai connects Anthropic, OpenAI, and xAI keys. Google prices are here to compare; FUSR.ai does not route to Gemini.

Questions

Common questions

Do I need a large model to classify text?
Often not. Picking a label from a short list, tagging sentiment, or routing a ticket is work small models usually do well. Try the smallest model on a few hundred labeled examples and compare before paying for a larger one.
Why is classification so cheap on small models?
The answer is a few tokens, so you mostly pay for input, and input is the cheaper side. A long, fixed instruction and label list at the start of every prompt can also be cached.
Where do these prices come from?
From each provider's own pricing page, read on October 28, 2026: Anthropic, OpenAI, Google, and xAI. Every table on this page links its source and shows that date. Prices change, so check the provider's page before you commit to a budget.
Can FUSR.ai help?
Yes, if you use Anthropic, OpenAI, or xAI API keys. FUSR.ai takes your own keys, picks a model for each request, keeps prompt caching working, and caps spend per key. Your providers bill you directly and FUSR.ai adds nothing to token prices. It does not route to Gemini, and it does not use chat plans like Claude Pro or ChatGPT Plus.

Straight talk

What FUSR.ai does and doesn't do

It does

  • Sends each request to a connected Anthropic, OpenAI, or xAI model by rules you can read.
  • Uses your own API keys, billed by your providers at list price.
  • Works from the OpenAI SDK by changing the base URL.

It doesn't

  • Label your data or check your results.
  • Store your prompts. Routing never sees the prompt text.
  • Route to Gemini.

Try FUSR.ai with your own API keys.

Connect your own API keys, and FUSR.ai sends each request to the model your rules pick.

Set up from your terminal with npx fusrai setup, or start in the browser.

You bring your own API keys. Chat plans like Claude Pro or ChatGPT Plus are separate and FUSR.ai does not use them.