---
description: Clairic is a preview of a new class of System One models, extraction models. It extracts, computes, estimates, and forecasts values from your input, and returns typed answers with confidence scores in a single pass.
title: "Introducing Clairic: an extraction model for typed values, now on Workers AI"
image: https://developers.cloudflare.com/changelog/post/2026-10-19-clairic-workers-ai/og.png?v=0e5ebb399d8d5880
---

[Skip to content](#main-content)

[View RSS feeds](https://developers.cloudflare.com/fundamentals/new-features/available-rss-feeds/) [ Subscribe to RSS](https://developers.cloudflare.com/changelog/rss/index.xml)

[Back to all posts](https://developers.cloudflare.com/changelog)

October 19, 2026

## Introducing Clairic: an extraction model for typed values, now on Workers AI

[Workers AI](https://developers.cloudflare.com/workers-ai/)

Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/changelog/post/2026-10-19-clairic-workers-ai/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

[`@cf/cloudflare/clairic`](https://developers.cloudflare.com/workers-ai/models/clairic/) is now available on Workers AI as a preview. Clairic is the first [extraction model](https://developers.cloudflare.com/workers-ai/concepts/extraction-models/): a System One model that answers with values instead of text. We intend to release the model with open weights soon.

Decision models such as [Clef](https://developers.cloudflare.com/workers-ai/models/clef/) choose among options you define up front. Many structured-output tasks do not have answers you can list in advance: an invoice total, a delivery date, the number of days a shipment is late, or what a repair will cost. Clairic handles these. You send a state and a schema of typed fields, and it returns one typed value per field. A value is read from the input, computed from it, or predicted beyond it.

Clairic does not generate tokens. It reads your input in one pass and decodes each answer under the rules of its type, so every answer is a valid value of the type you asked for, or `null` when the input does not determine it.

#### Typed fields

Define as many fields as you need. Fields that do not fit beside the input in one pass are split across parallel passes, so there is no upper limit.

| Type | Returns |
| --- | --- |
| `text` | An exact span of the input, with its character offsets |
| `number` | A number read or worked out from the input, honoring `integer` and `decimals` |
| `date`, `time`, `datetime` | Real calendar dates and valid times, in ISO form |
| `duration` | A length of time in the unit you choose |
| `list` | Every matching text, number, or date, in input order |
| `estimate` | A distribution inside your `min` and `max`, on your `step` grid, on a linear or log scale |
| `forecast` | One estimate per future step of a series, up to 64 steps |

Every scalar answer includes `p_null`, the probability that the input does not determine the value, and a `confidence` score. Estimates and forecasts include a median and an 80% interval (`p10` to `p90`). Set `options.include_quantiles` to also get all 99 percentiles. Use these to decide what to automate and what to send to review.

You can also pass up to four images alongside the state.

```js
const response = await env.AI.run("@cf/cloudflare/clairic", {
	model: "clairic",
	state:
		"Invoice INV-2291 from Northwind Supply, issued 2026-09-02, net 30. 4 pallets at $250.00 each, shipping $80.00. Contact: Dana Ruiz, Priya Shah.",
	fields: {
		invoice_number: { type: "text" },
		issued: { type: "date" },
		due_date: {
			type: "date",
			instructions: "Issue date plus the net payment days",
		},
		total: {
			type: "number",
			decimals: 2,
			unit: "USD",
			instructions: "Amount due including shipping",
		},
		contacts: { type: "list", items: "text" },
	},
});

// response.answers.invoice_number.value -> "INV-2291", with its span in the state
// response.answers.total.value -> the amount due, with p_null and confidence
```

```ts
const response = await env.AI.run("@cf/cloudflare/clairic", {
	model: "clairic",
	state:
		"Invoice INV-2291 from Northwind Supply, issued 2026-09-02, net 30. 4 pallets at $250.00 each, shipping $80.00. Contact: Dana Ruiz, Priya Shah.",
	fields: {
		invoice_number: { type: "text" },
		issued: { type: "date" },
		due_date: {
			type: "date",
			instructions: "Issue date plus the net payment days",
		},
		total: {
			type: "number",
			decimals: 2,
			unit: "USD",
			instructions: "Amount due including shipping",
		},
		contacts: { type: "list", items: "text" },
	},
});

// response.answers.invoice_number.value -> "INV-2291", with its span in the state
// response.answers.total.value -> the amount due, with p_null and confidence
```

#### Preview

The current endpoint is an early checkpoint, and we expect it to improve:

- **Arithmetic**: One- and two-step calculations, such as totals, differences, conversions, and date arithmetic, are reliable. Long chains of dependent steps and aggregations across many table rows are not yet. Extract the inputs with Clairic and do the math in code.
- **Estimates**: Clairic estimates best when the input contains evidence such as comparables, history, or descriptive text. Without evidence, the interval is wide.
- **Forecasts**: Forecasting is basic. Next-step forecasts follow recent patterns, but forecasts several steps out flatten toward the average, and Clairic does not anticipate events the series does not show, such as holidays. It does not replace a time-series model trained on your data.
- **Calibration**: Intervals are trained to be calibrated and are on most held-out sets, but they can run narrow on unfamiliar data.
- **Confidence**: Every answer is well formed, not necessarily correct. Use `confidence`, `p_null`, and the intervals to decide what to automate and what to send to review.
- **Dates**: Dates without a year are resolved from context. If a field depends on the current date, set `reference_date` or add a line such as `Today: 2026-10-19` to the state.

#### Pricing

Clairic costs $0.10 per million input tokens. Because it generates no tokens, there is no output token charge.

#### Get started

Use Clairic through the [Workers AI binding](https://developers.cloudflare.com/workers-ai/configuration/bindings/) (`env.AI.run()`) or the REST API at `/ai/run`. You can also use [AI Gateway](https://developers.cloudflare.com/ai-gateway/) with these endpoints.

For more information, refer to the [Clairic model page](https://developers.cloudflare.com/workers-ai/models/clairic/), [extraction models](https://developers.cloudflare.com/workers-ai/concepts/extraction-models/), [pricing](https://developers.cloudflare.com/workers-ai/platform/pricing/), and the [blog post ↗︎](https://blog.cloudflare.com/clairic-extraction-model/).

```json
{"@context":"https://schema.org","@type":"BlogPosting","@id":"https://developers.cloudflare.com/changelog/post/2026-10-19-clairic-workers-ai/#page","headline":"Introducing Clairic: an extraction model for typed values, now on Workers AI","description":"Clairic is a preview of a new class of System One models, extraction models. It extracts, computes, estimates, and forecasts values from your input, and returns typed answers with confidence scores in a single pass.","url":"https://developers.cloudflare.com/changelog/post/2026-10-19-clairic-workers-ai/","inLanguage":"en","image":"https://developers.cloudflare.com/changelog/post/2026-10-19-clairic-workers-ai/og.png?v=0e5ebb399d8d5880","dateModified":"2026-10-19","datePublished":"2026-10-19","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
```
