models

Cloudflare: Clef

Markdown · JSON

Cloudflare: Clef

Cloudflare Clef is a 27B multimodal decision model for classification, policy checks and agent workflow choices. It evaluates a supplied state and typed questions, returning probabilities for allowed alternatives, selected categories and weighted scores. It accepts textual and visual evidence without generating 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 is the larger dense model in the Clef decision family, post-trained from Qwen3.8-27B with its vision encoder. Cloudflare combines that backbone with a joint schema head that routes evidence to the questions and scores their allowed options together. Clef reads a situation and returns bounded decisions with probabilities in a single forward pass. Its output is a classification result, rather than generated prose, an open-ended report or a proposed command.

Prepare the state and question schema as distinct inputs. The state can be a string or JSON representing a record, conversation, document content or application situation. Questions are keyed by stable names, and the same names identify their returned answers. Define what each question should establish and describe the relevant options. A support record can ask which team should handle the request, whether the impact is urgent and which severity criterion applies, without combining those different decisions into one vague category.

A noul question returns the probability of true for a binary condition. A choice question returns a selected named option, per-option probabilities and confidence. A score question uses an ordered list of descriptions, indexed from zero, and returns an expected score, legend and probabilities. A fractional score is meaningful because it summarizes uncertainty across ordered levels. Inspect the distribution as well as the selected answer; two close options can reveal a distinction the input does not settle.

For policy checks, include the actual rule text and the facts of the record. An example is a document-processing workflow with questions for whether the record is complete, which review category applies and how strongly the evidence supports immediate attention. Ask separate questions for separate conditions. A model assessment of compliance should remain connected to the supplied rule and evidence. If an important condition is missing, the schema and application should have a deliberate way to handle that uncertainty.

For visual evidence, provide a readable image and a question about a visible condition or a defined category. A form-quality check might evaluate legibility, whether a required area is present and which of the supplied quality levels best describes it. The maker’s open-weight interface also accepts video frame arrays. Keep the frames in order and identify the event to assess. A bounded decision schema can classify that material, while a request for a narrative description or arbitrary newly generated fields belongs to a different kind of output.

The manufacturer hosted reference lists a 65,536-token context, one to 64 questions and up to four embedded images. Its PNG, JPEG or WebP images are limited to 4 MiB and 16 megapixels each, with 8 MiB total decoded; the whole request body is limited to 13 MiB, and remote image links are not accepted. The input budget includes the questions and media. Long text may be truncated to fit, so preserve decisive passages and source labels. These limits describe the producer’s hosted image interface; the open-weight encoder has its own local-input representations.

Cloudflare’s release describes training for schema-bound scoring and probability calibration. The model extracts relevant evidence for individual options and then considers information across fields. This can support decisions over several related questions in one record, but it does not make a high probability a guarantee that the underlying fact is true. Evaluate difficult, incomplete and out-of-category records as well as straightforward cases. Useful decision criteria cover the situations the workflow actually encounters and make important distinctions explicit.

For an agent workflow, the output can determine which defined next step should be considered. Supply the current observation and candidate actions with clear descriptions, then retain the selected option and its probabilities. The surrounding application applies its action policy and records what it did. Keep that execution record separate from the decision result: selecting a review route does not establish that a reviewer acted, and selecting a diagnostic step does not establish that the step succeeded.

The final artifact is the answers object together with the state and schema that produced it. Use those records to inspect unexpected classifications, identify ambiguous criteria and compare results with reviewed task examples. If a downstream user needs a written explanation, the decision and original evidence can be inputs to a separate response-writing step. Clef supplies the bounded probabilistic decision needed to choose that next stage with a clear account of what was evaluated.

Ailoot Ultra · System One POST /v1/systemone cloudflare/clef

cloudflare/clef

Cloudflare /cloudflare/clef

Overview

Cloudflare Clef is a 27B multimodal decision model for classification, policy checks and agent workflow choices. It evaluates a supplied state and typed questions, returning probabilities for allowed alternatives, selected categories and weighted scores. It accepts textual and visual evidence without generating 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
FieldTypeRequirementValues & limitsDefault
FieldmodelTypestringRequirementRequiredValues & limits
cloudflare/clef
Default—
FieldproviderTypeschemaRequirementOptionalValues & limitsDefault—
FieldquestionsTypeobjectRequirementRequiredValues & limitsDefault—
Fieldsession_idTypestringRequirementOptionalValues & limitsDefault—
FieldstateTypeschemaRequirementRequiredValues & limitsDefault—
FieldtraceTypeschemaRequirementOptionalValues & limitsDefault—
FielduserTypestringRequirementOptionalValues & limitsDefault—
Fieldquestions.<id>.typeTypestringRequirementRequiredValues & limits
noul, choice, score
Default—
Fieldquestions.<id>.instructionsTypestring|object|arrayRequirementRequiredValues & limitsDefault—
Fieldquestions.<id>.criteriaTypeobject|arrayRequirementOptionalValues & limits
Conditions: choice/score: required; noul: optional. choice criteria is object; score is array with minItems1.
Default—
Fieldquestions.<id>.criteria.trueTypestring|object|arrayRequirementRequiredValues & limits
Applies when: noul criteria object supplied
Default—
Fieldquestions.<id>.criteria.falseTypestring|object|arrayRequirementRequiredValues & 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
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, state, questions
Parametermaterial_typesContracttext, image
Parameteroptional_controlsContractprovider, session_id, trace, user
Parametermultimodal_input_bindingContractUse 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.

ConfigurationRate scheduleContext tokens, more thanContext tokens, up to and includingCharge
ConfigurationBase token ratesRate scheduleBase rateContext tokens, more than—Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.00048 / 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 1Rate schedule—Context tokens, more than0Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.00048 / 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

Retained official request structure; documentary exampleUse your actual request material and retain the complete result
{
  "model": "cloudflare/clef",
  "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'
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
FieldType
FieldmodelTypestring
FieldidTypestring
FieldproviderTypestring
Fieldanswers.<id>.typeTypestring
Fieldanswers.<id>.noulTypenumber
Fieldanswers.<id>.choiceTypestring
Fieldanswers.<id>.scoreTypenumber
Fieldanswers.<id>.confidenceTypenumber
Fieldanswers.<id>.probabilitiesTypeobject
Fieldanswers.<id>.legendTypeobject
Fieldusage.input_tokensTypeinteger
Fieldusage.output_tokensTypeinteger
Fieldusage.costTypenumber
Errors and next steps
ResponseConditionNext step
Response400 · invalid_request_errorConditionInvalid required field, representation or valueNext stepCorrect the indicated request field.

Aliases

Model aliases

Ailoot Ultra cloudflare/clef

Method path aliases

Use the method paths shown above.

Related caller IDs

cloudflare/clef

FAQ · Cloudflare: Clef
What inputs and results are available?

POST /v1/systemone · cloudflare/clef: text, image → decisions

Which fields does the request use?

POST /v1/systemone · cloudflare/clef: model, provider, questions, session_id, state, trace, user

More details

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription
Choose a discounted plan for your regular requests.
Promo code: up to 50% off
Enter your code at checkout. The price updates to reflect the current promotion.
Spending in your history
The model, tokens and amount are recorded for each request.

Choose a subscription · View model prices

Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application
Add text, image, video and audio generation to paid features in your service.
Reseller licence
Send a description of your project and how you provide access. Request written terms for use and resale.
Documents on the website
The service offer, licence agreement and data processing policy are available before you connect.

Request a reseller licence · Service offer and licence agreement