What is Cloudflare Clairic? The extraction model, explained

Riellvriany Indriawan
Written by

Riellvriany Indriawan

Katelin Teen
Reviewed by

Katelin Teen

Last edited October 20, 2026

Expert Verified
Cloudflare Clairic hero banner in Cloudflare orange, a person holding a receipt whose amount, date, item and number are pulled into a panel of typed fields with confidence scores

What is Cloudflare Clairic?

I work eesel's support queue every day, and the slow part of most tickets isn't writing the reply. It's the copying. The order number from paragraph two, the delivery date from the tracking email, the total from a blurry receipt photo. Cloudflare Clairic is a model built for exactly that copying, and it's the most practical thing to come out of the "System One" wave so far.

Clairic launched on Cloudflare's blog on October 19, 2026, written by Alex Reneau, Michelle Chen and Kevin Flansburg from the Workers AI team. It lives on Workers AI as @cf/cloudflare/clairic, it's marked as a preview, and Cloudflare says it intends to publish the weights later.

Cloudflare docs page for the clairic model showing the @cf/cloudflare/clairic ID, a 65,536 token context window, vision support and unit pricing of $0.10 per M input tokens, as taken from the Cloudflare Workers AI docs
Cloudflare docs page for the clairic model showing the @cf/cloudflare/clairic ID, a 65,536 token context window, vision support and unit pricing of $0.10 per M input tokens, as taken from the Cloudflare Workers AI docs

The model card is short. A 65,536 token context window, vision support (up to four images per request), and a single price line. The name, according to Cloudflare, is a mix of "clerical", "clairvoyance" and Cloudflare AI Regression model, which is a fair summary of what it does: boring data entry plus a bit of prediction. It caps a busy few weeks for Cloudflare's AI team, after the Kitesurf agent browser and a web search API.

Why did Cloudflare build an extraction model?

A month before Clairic, TypeSafe introduced Jev and the idea of System One models, borrowed from Daniel Kahneman's fast-and-slow thinking. Cloudflare followed on October 1 with Clef, its own decision model. Both answer questions where you can list the possible answers up front: is this urgent, which team owns it, refund or repair.

Cloudflare's point is that a lot of the structured-output calls going to frontier LLMs have answers you can't list in advance. What's the invoice total? When was this delivered? How many days late is it? A decision model can't help there, because there's no fixed option set to put probabilities on. Clairic is the first model in the second class, which Cloudflare calls System One extraction models.

Here's how Cloudflare lays out the three classes, condensed from its launch post:

System One: extractSystem One: decideSystem Two
Example modelsClairicJev, ClefGPT, Claude, Gemini, DeepSeek
How it runsOne parallel passOne parallel passOne token at a time
OutputTyped values: spans, numbers, dates, lists, distributionsOne of your listed options, with probabilitiesFree-form text
What it answersWhat's the amount? When did it happen? How much will it be?Which category? Which action?Why did it happen? How should we fix it?
Always a valid response?Yes, a value of its type or nullYes, one of your optionsNo, text must be parsed and checked

The line I keep coming back to from Cloudflare's post is this one: extraction models turn raw input into typed values, decision models turn values into decisions, and LLMs turn decisions into words. That's a clean way to split a support workflow, and it's closer to how a good agent works a ticket than "send the whole thing to one big model and hope".

How does Cloudflare Clairic work?

A request has two parts. The state is the text you want read (plus up to four PNG, JPEG or WebP images, sent inline). The fields map is your schema: each field gets a name, a type and optional plain-language instructions. Clairic reads everything in one forward pass and answers every field at once, so asking for thirty fields costs about the same as asking for three.

There's no upper limit on fields. The model docs say fields that don't fit next to the state in one 8,192-token pass get split into parallel passes that each see the whole input, then merged.

Field typeWhat you get back
textAn exact span of the input, with its character offsets
numberA number read or worked out, honoring integer and decimals
date, time, datetimeReal calendar dates and valid times, in ISO form
durationA length of time in the unit you pick
listEvery matching text, number or date, in input order
estimateA distribution inside your min and max, on your step grid, linear or log scale
forecastOne estimate per future step of a series, up to 64 steps

Every single-value answer comes with p_null (the probability the input doesn't contain it) and a confidence score. Estimates and forecasts come with a median and an 80% interval, p10 to p90, and you can ask for all 99 percentiles with options.include_quantiles. If a field depends on today's date, the changelog entry says to set reference_date or add a line like "Today: 2026-10-19" to the state.

Four hand-drawn cards showing the kinds of answer Clairic returns: Extracted (order A-88412), Computed (11 days since delivery), Estimated (repair cost with an 80% range) and Forecasted (tomorrow's count with an 80% range)
Four hand-drawn cards showing the kinds of answer Clairic returns: Extracted (order A-88412), Computed (11 days since delivery), Estimated (repair cost with an 80% range) and Forecasted (tomorrow's count with an 80% range)

Extracted and computed values

Cloudflare's main example is a support email, which is why I paid attention. A customer writes that order A-88412 arrived on September 28 with a cracked screen and a dented corner, that they paid $649.00 plus $52.10 tax, and that it's now October 9. Clairic is asked for six fields, and the answers show the whole idea in one go:

  • order_id comes back as "A-88412" with its span in the email and a confidence of 0.999957.
  • amount_paid comes back as 701.1, a number that isn't written anywhere. Clairic added the price and the tax.
  • days_since_delivery comes back as 11, worked out from two dates in the text.
  • damage comes back as a list, ["cracked screen", "dented corner"], with both spans so you can highlight them.
  • tracking_number comes back as null, because the email doesn't have one. The model's guess was "$52.10", with a confidence of 0.416, and p_null of 1.

That last one is the part support people should care about. An LLM asked for a tracking number will sometimes hand you a plausible-looking string. Clairic hands you null and tells you what it would have guessed, so your code can ask the customer instead of searching the carrier for a number that doesn't exist. It's the same instinct as hallucination prevention in a support bot, built into the output format.

Cloudflare figure showing a checkout outage support ticket on the left and Clairic's typed JSON on the right, with zone, Ray ID and recent change extracted, start time and outage minutes computed, and users affected and orders lost estimated with 80% ranges, all in one 0.55 second call, as taken from the Cloudflare blog
Cloudflare figure showing a checkout outage support ticket on the left and Clairic's typed JSON on the right, with zone, Ray ID and recent change extracted, start time and outage minutes computed, and users affected and orders lost estimated with 80% ranges, all in one 0.55 second call, as taken from the Cloudflare blog

Cloudflare also ran a photo of a real, slightly crooked receipt through it. Clairic read the order number, timestamp, quantity, unit price, subtotal, tax and tip, and returned null for the discount because none was printed. Confidence was lower on the harder reads (0.78 on the order number, 0.83 on the timestamp) and above 0.99 on the clean ones, which is the behavior you want.

Estimated values

Some values aren't in the input at all, but the input carries evidence for them. Cloudflare's example is a home price: five comparable sales and one subject property, with a sale_price field typed as an estimate between $50,000 and $5,000,000 on a log scale. Clairic returned a median of $415,000 and an 80% range of $370,000 to $470,000.

The width of that range is the useful part. Cloudflare's extraction models guide says a narrow interval signals the input supports the estimate and a wide one says it doesn't. In a support context that's the repair-cost estimate in the damaged-order example, and it's what lets the next step decide "repair" or "refund" without a person guessing.

Forecasted values

A forecast field takes a history as plain text and returns one estimate per future step, each with an 80% interval. Cloudflare tested it on the daily number of people screened at US airport checkpoints, asking each morning for the next day's count for 21 days in a row.

Cloudflare chart of Clairic's next-day TSA checkpoint forecasts against actual counts from late September to mid October 2026, with 80% ranges shaded and 4 of 21 days outside the range around the Columbus Day weekend, as taken from the Cloudflare blog
Cloudflare chart of Clairic's next-day TSA checkpoint forecasts against actual counts from late September to mid October 2026, with 80% ranges shaded and 4 of 21 days outside the range around the Columbus Day weekend, as taken from the Cloudflare blog

The forecasts were off by 3.3% on average, and 17 of 21 actual counts landed inside the 80% interval, which is roughly what an 80% interval should do. Three of the four misses fell on the Columbus Day weekend, because Clairic reads patterns in the series and doesn't know about holidays the series doesn't show. Cloudflare is upfront that this doesn't replace a dedicated time-series model, so I wouldn't plan a holiday roster on it. For that, a proper support workforce forecasting setup is still the tool.

Clairic vs Clef vs an LLM: what's the difference?

The cleanest way to see where Clairic fits is the pipeline Cloudflare built for the launch. The same damaged-order email goes through two setups. In one, Clairic extracts the facts, Clef decides between a refund and a free repair based on a written policy, and GLM-5.3 writes the reply. In the other, GLM-5.3 does all three steps.

Hand-drawn pipeline: a customer email flows into Clairic (extract values, 0.46 s), then Clef (pick an action, 0.22 s), then an LLM (write the reply, 18.6 s), with the first two steps bracketed as under 1 second with no text generated
Hand-drawn pipeline: a customer email flows into Clairic (extract values, 0.46 s), then Clef (pick an action, 0.22 s), then an LLM (write the reply, 18.6 s), with the first two steps bracketed as under 1 second with no text generated
Clairic, then Clef, then GLM-5.3GLM-5.3 for every step
End-to-end latency19.3 s61.7 s
1. ExtractClairic: 0.46 sGLM-5.3: 16.1 s
2. DecideClef: 0.22 sGLM-5.3: 21.9 s
3. ReplyGLM-5.3: 18.6 sGLM-5.3: 16.4 s
Cost per million claims$6,032$11,740

That's 3.2 times faster and 49% cheaper, and nearly all of the remaining time and cost is the one step that writes text. Both pipelines got the facts and the decision right in every run, so this isn't a "the LLM failed" story. The difference Cloudflare points to is consistency: Clairic's repair estimate was identical on every run, while GLM-5.3's came back as $250, $250 and $220. Cloudflare also notes that when Gemma 4 and Qwen ran the all-LLM version, they couldn't produce the repair cost at all.

There's a security angle hiding in that design too. Clef decides from a five-line summary of typed values instead of the raw email, and the LLM never sees the email at all. A customer message that tries to talk the model into a refund has a much harder time getting through typed fields, which matters for anyone thinking about AI refund automation.

Cloudflare's live Workers AI demo page, Cascade vs. one LLM, showing the damaged-order email, the refund policy, an LLM picker set to GLM-5.3 and two result panels for the cascade and the LLM-only pipeline, as taken from Cloudflare's Clairic demo
Cloudflare's live Workers AI demo page, Cascade vs. one LLM, showing the damaged-order email, the refund policy, an LLM picker set to GLM-5.3 and two result panels for the cascade and the LLM-only pipeline, as taken from Cloudflare's Clairic demo

You can run the comparison yourself on Cloudflare's live pipeline demo, with your own email and policy text.

How much does Cloudflare Clairic cost?

Clairic is billed like every other Workers AI model, in neurons, and the Workers AI pricing page lists it next to its siblings. Because it generates no tokens, there's only an input price.

ModelPrice per M input tokensNeurons per M input tokensOutput price
Clairic (@cf/cloudflare/clairic)$0.1009,091None
Clef (@cf/cloudflare/clef)$0.24021,818None
Clef-omni (@cf/cloudflare/clef-omni)$0.15013,636None
Clef-flash (@cf/cloudflare/clef-flash)$0.0383,455None

Workers AI itself costs $0.011 per 1,000 neurons, and every account gets 10,000 free neurons a day, reset at 00:00 UTC. Going past the free allocation needs the Workers Paid plan.

To make that concrete, the invoice example on the model page used 655 input tokens (61 for the invoice text, 472 for the six-field schema, the rest overhead) across three passes. At $0.10 per million, that's about $0.000066 per call, or roughly $6.55 for 100,000 invoices. The free 10,000 neurons work out to about 1.1 million Clairic input tokens a day, so on that example around 1,680 calls a day cost nothing. Notice that the schema was bigger than the document. Long instructions on every field are where your token bill grows, so keep them short.

For comparison with the LLM you might use today, the Clef pricing guide has a calculator for the decision side, and the AI support cost breakdown covers what the whole stack runs per ticket.

What are Clairic's limits right now?

This is a preview, and Cloudflare is unusually direct about what doesn't work yet. From the launch post and the changelog:

  • Arithmetic stops at two steps. Totals, differences, conversions and date math are reliable. Long chains of dependent steps and sums across many table rows aren't. Cloudflare's advice: have Clairic pull the inputs and let your code do the math.
  • Estimates need evidence. Ask for a value the input gives no clues about and you'll get a wide interval.
  • Calibration is measured, not guaranteed. Intervals are trained to be calibrated and are on most held-out sets, but they can run narrow on unfamiliar data.
  • Forecasting is basic. Next-step forecasts follow recent patterns, longer horizons flatten toward the average, and holidays the series doesn't show will be missed.
  • Well formed isn't correct. The types guarantee shape. Use confidence, p_null and the intervals to decide what to automate and what to send to review.

There are practical limits too. Images max out at four per request, 4 MiB each and 8 MiB total, and remote URLs aren't accepted, so you send the bytes inline. Clairic is listed under Text Generation, and the Workers AI limits page sets the default for that task type at 300 requests per minute.

The one gap people noticed on launch day is benchmarks. Cloudflare published worked examples and the pipeline comparison, but no standard extraction benchmark scores yet:

Hacker News

"It's interesting that they haven't published any benchmarks yet."

Others on the same thread were more interested in where it could go next:

Hacker News

"Seems like it might excel at NER and intent-slot tasks, too."

That's my read as well. Until Cloudflare publishes numbers, the honest way to judge Clairic is to run it on a few hundred of your own tickets and compare the fields against what your team actually entered.

Where does Clairic fit in a support queue?

On the support side, this is where I think the model earns its keep. A lot of what an agent does in the first minute of a ticket is extraction: find the order number, check the delivery date, work out whether it's inside the return window, note what's damaged. On a demo call earlier this year, a B2B telematics team on Zendesk told my colleagues on the sales side that the two things they wanted first were tagging from a fixed tag list and auto-filling ticket fields. Clairic is a clean way to build the second one yourself.

Here's how I'd split common support jobs across the three model classes. Pick a job to see which one fits:

Which model class handles this support job?

Extraction (Clairic), decision (Clef) or generation (an LLM)

Tap a job above.

Extraction: Clairic, text field. Returns the exact span with character offsets, or null with a p_null score if the customer didn't include one, so you can ask instead of guessing.
Extraction: Clairic, duration field. A computed value from two dates. Add today's date to the state or set reference_date, or the math has nothing to anchor to.
Extraction: Clairic, with images. Up to four inline images per request. Expect lower confidence on blurry or crooked text and route those to a person.
Extraction: Clairic, estimate field. Returns a median and an 80% range inside the bounds you set. A wide range is your signal that the input doesn't support a number yet.
Decision: Clef. A fixed set of answers (urgent or not), so a decision model returns a probability for each. Feed it Clairic's typed values rather than the raw email.
Decision: Clef, using Clairic's values. This is Cloudflare's own demo: Clairic extracts amount, days since delivery and repair estimate, Clef applies the policy.
Generation: an LLM. The only step that writes words. Give it the decision and the facts it needs, not the whole thread, and keep a person on anything involving money.
Extraction: Clairic, forecast field, with care. Fine for a rough next-step number. Cloudflare says it misses events the history doesn't show, like holidays, so don't staff a peak week on it.

The part Clairic gives you that a JSON-mode or function calling LLM call doesn't is a built-in way to decide what to trust. Every answer carries a confidence and a probability of being missing, which maps neatly onto three lanes:

Hand-drawn diagram: a Clairic answer card with value, confidence and p_null tags fans out to three outcomes, high confidence auto-fills the field, likely missing asks the customer, and low confidence goes to human review
Hand-drawn diagram: a Clairic answer card with value, confidence and p_null tags fans out to three outcomes, high confidence auto-fills the field, likely missing asks the customer, and low confidence goes to human review

That's the same logic most helpdesks already use for ticket classification, and it fits behind tools you may already run. Zendesk's own entity extraction does a version of this inside the helpdesk, and the advanced AI version adds custom entities. Clairic is the build-it-yourself option: more control over the schema and the thresholds, and more code to own.

What Clairic doesn't do is the work. It won't open Shopify to check the order, apply your refund approval matrix, write back to the ticket, or know when a damaged item needs a person. Someone has to write the Worker that does all of that, handle escalation and keep it running when the helpdesk API changes. For a team with engineers who want a fast, cheap parser inside their own ticket triage pipeline, that's a fair trade. For a support team that wants the queue handled this week, it's a component, not an answer.

Who should use Cloudflare Clairic?

I'd reach for Clairic in three situations:

  • You already run on Workers. Calling it is one env.AI.run() line next to your existing code, and the free daily neurons cover a lot of low-volume extraction.
  • You're parsing the same shapes over and over. Invoices, receipts, order emails, shipping notices. Fixed fields, high volume, and a typed answer beats re-validating LLM JSON on every call.
  • You need to know when the model isn't sure. The confidence and p_null scores give you a routing signal for free, which is most of the work in a safe automation.

I'd wait if you need it on your own hardware (no weights yet), if you need audited accuracy numbers before a launch review (no benchmarks yet), or if the job is mostly multi-step math across big tables (Cloudflare itself says to do that in code). And if what you really want is fewer tickets in the queue rather than cleaner fields, a ready-made AI helpdesk agent gets you there without a build.

eesel for the ticket after the extraction

Clairic is infrastructure. eesel is the employee. eesel is an AI teammate platform, and the teammate that matters here is the AI helpdesk teammate. It joins your Zendesk, Freshdesk, Gorgias or Front queue, learns from your past tickets and help center, and does the reading Clairic does as part of working the ticket: finding the order, checking the dates, spotting what's damaged. Then it acts. It tags, drafts, answers or hands off, and anything you mark as ask-first waits for a person to approve.

Rúngne, a Norwegian climbing apparel brand on Gorgias and Shopify, runs three eesel agents: one acknowledges and tags every ticket, one looks up the order, tracking and stock in Shopify and leaves a draft, and one answers plain questions directly. Between August 8 and September 8, 2026 that came to about 2,100 tickets handled, 580 drafts left for the team and 150 order lookups. Damaged items, lost parcels and cancellations go straight to people, which is the same line I'd draw for any extraction-driven automation. Dokument 24 does the lighter version on Zendesk: every first message gets a product tag and a Danish draft as an internal note.

eesel Activity view listing the AI teammate's recent Zendesk conversations and tasks, each marked Pending or Resolved, with Approved, Rejected and Pending filters for held actions
eesel Activity view listing the AI teammate's recent Zendesk conversations and tasks, each marked Pending or Resolved, with Approved, Rejected and Pending filters for held actions

If Clairic appeals to you because it's programmable, look at the eesel CLI. It's the same teammate as the dashboard, driven from a terminal, and every command prints JSON, so a script or a coding agent like Claude Code, Cursor or Codex can run the whole setup. For an extraction-style workflow, that looks like:

  • npx @eesel/cli init starts a workspace with no account needed (Node 18.17 or newer), and eesel login keeps it.
  • eesel integrations connect <platform> connects Zendesk, Freshdesk or Gorgias, and eesel integrations <platform> actions lists every action the teammate can take there with its approval setting.
  • eesel instructions holds the standing rules in plain language, like "fill the order number field; if there isn't one, ask for it."
  • eesel approvals list and eesel approvals approve <id> clear held actions from a script, and --dry-run prints the exact call a write would make before it happens.
  • eesel activity shows what the teammate did, newest first, which is your audit trail.

The workspace is also an MCP server (eesel mcp token prints the claude mcp add line), and my colleague's AI agent CLI post goes deeper on running support from a terminal.

The pricing unit is different because it buys a different thing. eesel pricing starts with 100 free credits, then fixed monthly plans from $299 for 500 credits, where one credit covers a whole ticket or chat however many lookups and actions it takes. If you want to build the extraction layer yourself, Clairic is a fast, cheap and honest component. If you want order emails read, looked up and answered in your helpdesk this week, Try eesel on your own queue and read the drafts before you pay anything.

Frequently Asked Questions

What is Cloudflare Clairic?

Cloudflare Clairic is an extraction model that Cloudflare released as a preview on Workers AI on October 19, 2026, as @cf/cloudflare/clairic. You send it text (plus up to four images) and a list of typed fields, and it returns one typed value per field with a confidence score. It sits next to the decision models like Clef in what Cloudflare calls System One models.

How is Cloudflare Clairic different from Clef?

Clef picks from options you list and returns a probability for each, so it answers "which team?" or "refund or repair?". Clairic answers with values that can't be listed in advance, like an order number, a date, a total or an estimated repair cost. Cloudflare's own demo chains them: Clairic extracts, Cloudflare Clef decides, an LLM writes the reply.

How much does Cloudflare Clairic cost?

Clairic is $0.10 per million input tokens with no output token charge, because it doesn't generate tokens. It's billed in Workers AI neurons (9,091 per million input tokens) and every account gets 10,000 free neurons a day. For the full Workers AI picture, see the Clef pricing guide.

Is Cloudflare Clairic open source?

Not yet. At launch Clairic is a hosted preview on Workers AI only, and Cloudflare says it intends to release the model with open weights soon. If you need something you can host yourself today, small language models on Hugging Face are the usual route.

Can Cloudflare Clairic hallucinate?

It can be wrong, but it can't invent a malformed answer. Every value comes back in the type you asked for or as null, and text answers are spans of your input with character offsets. Cloudflare's docs are clear that well formed isn't the same as correct, so use the confidence and p_null scores the way you'd use confidence thresholds elsewhere.

Can I use Cloudflare Clairic for customer support tickets?

Yes, Cloudflare's own launch examples are a damaged-order email and a checkout-outage ticket. Clairic pulls the order ID, dates, amounts and damage list out of the message so your code or a model like Clef can act on them. It doesn't reply or touch your helpdesk, which is where an AI helpdesk agent like eesel comes in.

How do I call Cloudflare Clairic?

From a Worker, call env.AI.run("@cf/cloudflare/clairic", { model: "clairic", state, fields }). From anywhere else, POST the same body to /accounts/{account_id}/ai/run/@cf/cloudflare/clairic with an API token. If you're wiring it into a support stack, my colleague's AI helpdesk API post covers the plumbing around it.

Is Cloudflare Clairic good at forecasting?

For a quick next-step number, yes: in Cloudflare's 21-day TSA test its forecasts were off by 3.3% on average. Cloudflare calls forecasting basic, though, and says it doesn't replace a time-series model trained on your data. For staffing a support team, a proper workforce forecasting setup is still the better tool.

Share this article