Cloudflare: Clef Omni
Cloudflare Clef Omni is a multimodal decision model with a 30B-total, 3B-active MoE backbone. It evaluates supplied text, structured state and media against typed questions, returning probabilities and bounded decisions. Its output is a choice, true-probability or ordered score, rather than generated prose.
About the model
This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.
Cloudflare Clef Omni is the multimodal mixture-of-experts model in the Clef decision family. It is post-trained from the Qwen3-Omni-30B-A3B-Instruct comprehension backbone, with 30B total and 3B active parameters. Cloudflare adds a joint schema head that routes evidence to the requested questions and scores their allowed options together. The result is a typed decision with probabilities, rather than a generated explanation, transcript or speech output.
Prepare two main parts: a state describing the situation and a mapping of named questions. The state can be text or structured JSON, and the model’s native inputs also include images, audio and video. Each question says what to decide and which answers are allowed. Keep identifiers stable so an application can associate each returned answer with the original question. Clear option descriptions make a category meaningful; a short ambiguous label can otherwise hide the distinction the workflow actually needs.
The record format has three question types. A noul question asks about a true/false condition and returns the probability of true. A choice question defines named options and returns a selected option, per-option probabilities and a separate confidence value. A score question defines ordered criteria indexed from zero and returns a probability-weighted score, a legend and probabilities. The score may be fractional because it reflects a distribution over levels. A decision is therefore richer than a single label, while still being bounded by the supplied schema.
For visual review, provide a clear image and the condition to assess. An example is an installation record with questions asking whether the identification label is visible, which of the defined condition categories applies, and whether the evidence is sufficient for review. Keep observations separate: a label being visible is a different question from an installation appearing complete. The output can help an application route the record or flag a review condition; it does not itself perform an inspection, change a record or generate a written report.
For audio and video, focus the questions on evidence the supplied clip can support. A practical equipment review might include a photo, a recording and a short video, asking whether a specified sound is present or whether a component is visibly moving. The maker describes processing a video’s soundtrack alongside its frames when every video in the record has sound. Preserve the relationship between the media and the written state, and avoid asking the model to classify an event that lies outside the attached interval.
The manufacturer’s hosted profile lists a 64,000-token context and one to 64 questions. It accepts up to four images, four audio clips and two videos, with audio clips limited to 300 seconds each and videos to 60 seconds each. Those are limits of the documented producer interface. Media and questions occupy context; excessive media can fail the request, while a long text state may be truncated to fit. Put decisive evidence in a focused record and prepare the questions before spending the window on unrelated history.
The maker’s hosted interface takes embedded media rather than remote links. Its PNG, JPEG or WebP images are limited to 4 MiB and 16 megapixels each, with an 8 MiB total decoded image budget. Each audio clip is limited to 8 MiB and 300 seconds; each video to 16 MiB and 60 seconds. Audio and video together may total at most 16 MiB decoded, and videos are sampled at two frames per second. These limits belong to that producer interface; the open-weight encoder accepts additional local representations. The comprehension backbone’s audio capability does not mean this decision model produces audio: its speech-generation components are not used for decision scoring.
For support or workflow routing, define categories and ordered criteria from the actual operating rules. A ticket record might ask which team should handle it, whether the impact is urgent and which severity level best matches the evidence. The observable output is a set of typed answers under those question names. Review the whole probability distribution when categories are close, and define the application’s treatment of uncertain cases explicitly. A high probability is a model assessment of the supplied evidence, not proof that the condition was independently verified.
Retain the state, the question schema and returned answers together when inspecting a result. Check whether the options cover the actual situation, whether their descriptions overlap, and whether important evidence was omitted or truncated. If a downstream step needs a written explanation, it can use the decision and source material as input to a separate writing step. Clef Omni’s useful role is scoring defined alternatives from multimodal evidence so the next action can be chosen with a clear, inspectable input and output.
Ailoot Ultra · System One POST /v1/systemone cloudflare/clef-omni
cloudflare/clef-omniOverview
Cloudflare Clef Omni is a multimodal decision model with a 30B-total, 3B-active MoE backbone. It evaluates supplied text, structured state and media against typed questions, returning probabilities and bounded decisions. Its output is a choice, true-probability or ordered score, rather than generated prose.
- Accepted inputs
- Text · Images
- Results
- decisions
Available in Ailoot · inputs & methods
Ailoot Ultra · System One POST /v1/systemone
- Input types
text,image- Output types
decisions- Output format
- json
| Field | Type | Requirement | Values & limits | Default |
|---|---|---|---|---|
Fieldmodel | Typestring | RequirementRequired | Values & limits cloudflare/clef-omni | Default— |
Fieldprovider | Typeschema | RequirementOptional | Values & limits | Default— |
Fieldquestions | Typeobject | RequirementRequired | Values & limits | Default— |
Fieldsession_id | Typestring | RequirementOptional | Values & limits | Default— |
Fieldstate | Typeschema | RequirementRequired | Values & limits | Default— |
Fieldtrace | Typeschema | RequirementOptional | Values & limits | Default— |
Fielduser | Typestring | RequirementOptional | Values & limits | Default— |
Fieldquestions.<id>.type | Typestring | RequirementRequired | Values & limits noul, choice, score | Default— |
Fieldquestions.<id>.instructions | Typestring|object|array | RequirementRequired | Values & limits | Default— |
Fieldquestions.<id>.criteria | Typeobject|array | RequirementOptional | Values & limits Conditions: choice/score: required; noul: optional. choice criteria is object; score is array with minItems1. | Default— |
Fieldquestions.<id>.criteria.true | Typestring|object|array | RequirementRequired | Values & limits Applies when: noul criteria object supplied | Default— |
Fieldquestions.<id>.criteria.false | Typestring|object|array | RequirementRequired | Values & limits Applies when: noul criteria object supplied | Default— |
Input material combinations
noul · Required: state, questions.<id>.type=noul, questions.<id>.instructions
choice · Required: state, questions.<id>.type=choice, questions.<id>.instructions, criteria object
score · Required: state, questions.<id>.type=score, questions.<id>.instructions, criteria array with minItems1
Method parameters and lifecycle
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, state, questions |
Parametermaterial_types | Contracttext, image |
Parameteroptional_controls | Contractprovider, session_id, trace, user |
Parametermultimodal_input_binding | ContractUse only exact declared state/document representation. Manufacturer image capability alone does not establish a model-specific accepted image carrier. |
Lifecycle: synchronous
Send the exact model ID and retain the complete native response.
Pricing
Tariff references do not add request options. Supported parameters are listed for the selected method.
- Fast mode
- Not specified When fast mode is selected
- Flex mode
- Not specified When flex mode is selected
- Maximum reasoning effort
- Not specified When maximum reasoning effort uses the default adjustment
Ailoot rates
Prices by configuration
Match each charge to the conditions shown. Use one rate for each set of alternative configurations.
| Configuration | Rate schedule | Context tokens, more than | Context tokens, up to and including | Charge |
|---|---|---|---|---|
| ConfigurationBase token rates | Rate scheduleBase rate | Context tokens, more than— | Context tokens, up to and includingNo upper bound | Charge Input · Input tokens $0.0003 / 1K tokens Output · Output tokens $0 / 1K tokens Input · Cache read — / 1K tokens Input · Cache write — / 1K tokens Input · Cache write, 1 hour — / 1K tokens |
| ConfigurationRequest-length tier 1 | Rate schedule— | Context tokens, more than0 | Context tokens, up to and includingNo upper bound | Charge Input · Input tokens $0.0003 / 1K tokens Output · Output tokens $0 / 1K tokens Input · Cache read — / 1K tokens Input · Cache write — / 1K tokens Input · Cache write, 1 hour — / 1K tokens |
Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →
Example requests
Ailoot Ultra · System One
{
"model": "cloudflare/clef-omni",
"questions": {
"is_bug": {
"criteria": {
"false": "The customer is asking a question or requesting a feature.",
"true": "The customer describes broken or unexpected product behavior."
},
"instructions": "Is the customer reporting a software defect?",
"type": "noul"
},
"team": {
"criteria": {
"account": "Login, permissions, or profile issues.",
"frontend": "Rendering, layout, or browser compatibility issues.",
"payments": "Checkout, billing, or payment processing issues."
},
"instructions": "Which team should own this ticket?",
"type": "choice"
},
"urgency": {
"criteria": [
"Can wait for the next release",
"Should be fixed this week",
"Blocking revenue right now"
],
"instructions": "How urgent is this ticket?",
"type": "score"
}
},
"state": {
"customer_tier": "enterprise",
"ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."
}
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_REQUEST_FILE:?Set your actual JSON request file}"
export AILOOT_REQUEST_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))
if not isinstance(p,dict): raise SystemExit('Request must be a JSON object')
p['model']='cloudflare/clef-omni'
Path('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Receive and save results
Ailoot Ultra · System One
json
Keep all completed results
Keep every complete returned response, file and content part.
Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.
If the original response needs checking
Preserve original operation and full/partial reply; do not replay POST.
Response fields
| Field | Type |
|---|---|
Fieldmodel | Typestring |
Fieldid | Typestring |
Fieldprovider | Typestring |
Fieldanswers.<id>.type | Typestring |
Fieldanswers.<id>.noul | Typenumber |
Fieldanswers.<id>.choice | Typestring |
Fieldanswers.<id>.score | Typenumber |
Fieldanswers.<id>.confidence | Typenumber |
Fieldanswers.<id>.probabilities | Typeobject |
Fieldanswers.<id>.legend | Typeobject |
Fieldusage.input_tokens | Typeinteger |
Fieldusage.output_tokens | Typeinteger |
Fieldusage.cost | Typenumber |
Errors and next steps
| Response | Condition | Next step |
|---|---|---|
Response400 · invalid_request_error | ConditionInvalid required field, representation or value | Next stepCorrect the indicated request field. |
Aliases
Model aliases
Ailoot Ultra cloudflare/clef-omni
Method path aliases
Use the method paths shown above.
Related caller IDs
FAQ · Cloudflare: Clef Omni
- What inputs and results are available?
POST /v1/systemone·cloudflare/clef-omni:text,image→decisions- Which fields does the request use?
POST /v1/systemone·cloudflare/clef-omni:model,provider,questions,session_id,state,trace,user