Skip to main content
POST
Choose the engine a decision runs on

Authorizations

Authorization
string
header
required

An API key, sent as Authorization: Bearer <key>. Each operation lists the scope its key needs: decisions:evaluate (evaluate and read evaluations), decisions:feedback (your app's feedback) or decisions:develop (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.

Headers

idempotency-key
string

Makes a retry safe. For 24 hours, the same key with the same request returns the first stored result (with Idempotent-Replayed: true); the same key with a different request is a 422 IDEMPOTENCY_KEY_REUSED. Keys are scoped to the organization and environment across every operation, so use a fresh key per request. A request that failed before its result was stored runs again when retried with its key.

Required string length: 1 - 255
Pattern: ^[\x20-\x7e]+$

Path Parameters

decision_id
string
required
Pattern: ^[a-z][a-z0-9_.-]{0,127}$

Body

application/json
engine
string
required

An engine id from GET /v1/engines, e.g. jev or clef. Open: new engines are added without a contract change.

Required string length: 1 - 64
Example:

"clef"

model
string

Default: the engine's default_model.

Required string length: 1 - 128
Example:

"@cf/cloudflare/clef"

Response

Unchanged: the body matches the current revision

decision_id
string
required
Pattern: ^[a-z][a-z0-9_.-]{0,127}$
environment
enum<string>
required

The environment of the key that made the call: production or test. Evaluations, feedback, reviews and suggestions are separate per environment; registered structures are shared.

Available options:
production,
test
revision
integer
required

The binding revision; evaluations report the one they ran on as version.binding.

Required range: x >= 1
engine
string
required

An engine id from GET /v1/engines, e.g. jev or clef. Open: new engines are added without a contract change.

Required string length: 1 - 64
Example:

"clef"

model
string
required

A model id the engine lists in GET /v1/engines. *-latest and *-preview aliases are refused; whether an id fixes the model's behavior is its pinned flag.

Required string length: 1 - 128
Example:

"@cf/cloudflare/clef"

pinned
boolean
required

Whether this deployment's engine reports the model as pinned (see GET /v1/engines). False when the engine is not offered.

created_at
string<date-time>
required
created
boolean
required

False when the body matched the current revision, so nothing was written.