curl --request POST \
--url https://api.aireserve.com/v1/decisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "clef",
"state": "<unknown>",
"questions": {},
"images": [
"<unknown>"
]
}
'import requests
url = "https://api.aireserve.com/v1/decisions"
payload = {
"model": "clef",
"state": "<unknown>",
"questions": {},
"images": ["<unknown>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'clef', state: '<unknown>', questions: {}, images: ['<unknown>']})
};
fetch('https://api.aireserve.com/v1/decisions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Typed decision (yes/no, choice, score)
Send a state (text, JSON, or images) and a schema of typed questions — noul (yes/no), choice (pick one of your options), score (rate against an ordered rubric) — and get a calibrated probability for every allowed answer in one forward pass. No free-form text, no reasoning tokens. Jev / System One compatible. Billed per input token under clef (27B, 64K context) or clef-flash (9B, 24K context); output tokens are free.
curl --request POST \
--url https://api.aireserve.com/v1/decisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "clef",
"state": "<unknown>",
"questions": {},
"images": [
"<unknown>"
]
}
'import requests
url = "https://api.aireserve.com/v1/decisions"
payload = {
"model": "clef",
"state": "<unknown>",
"questions": {},
"images": ["<unknown>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'clef', state: '<unknown>', questions: {}, images: ['<unknown>']})
};
fetch('https://api.aireserve.com/v1/decisions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Authorizations
Your AI Reserve API key (aireserve_api_…) from the API Keys page in the portal (https://portal.aireserve.com/keys).
Body
Decision model: clef (27B, 64K context, highest precision) or clef-flash (9B, 24K context, fastest and cheapest).
clef The situation to decide on: a string, or structured JSON (records, chat logs, application state). Long text is truncated upstream to fit the model's context.
Map of question id → typed question (noul, choice, score); 1 to 64 questions. Answers come back under the same ids.
Show child attributes
Show child attributes
Up to 4 embedded PNG / JPEG / WebP images placed before the state (Cloudflare's System One extension; remote URLs are not accepted). Each image bills at most 1,024 input tokens.
4Response
Default Response