Quickstart
1. Get an API key
Open the dashboard, go to API keys, and create a key. Keys look like
vana_live_… (production) or vana_test_… (testing). The key is shown once; store it in a secret manager.
export VANA_API_KEY=vana_live_...
2. Make a request
curl https://api.vana.annamal.ai/v1/systemone \
-H "Authorization: Bearer $VANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vana-latest",
"state": "Customer: I was charged twice for my October invoice, please fix this today.",
"questions": {
"refund": {"type": "noul", "instructions": "Should we issue a refund?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Billing / payments", "tech": "Technical issue", "sales": "Sales"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["not urgent", "normal", "urgent", "critical"]}
}
}'
Response (abridged):
{
"model": "vana-3.0",
"answers": {
"refund": {"type": "noul", "noul": 0.93, "probabilities": {"true": 0.93, "false": 0.07}, "confidence": 0.86},
"team": {"type": "choice", "choice": "billing", "probabilities": {"billing": 0.91, "tech": 0.06, "sales": 0.03}, "confidence": 0.91},
"urgency": {"type": "score", "score": 2.6, "legend": {"1": "not urgent", "2": "normal", "3": "urgent", "4": "critical"},
"probabilities": {"1": 0.02, "2": 0.38, "3": 0.52, "4": 0.08}, "confidence": 0.52}
},
"usage": {"input_tokens": 112, "output_tokens": 3}
}
model is optional (default vana-3.0; aliases vana-3 and vana-latest). The response echoes the resolved
model id. See models.
3. Or use an SDK
from annamal_vana import Vana, YesNo
print(Vana().decide("Customer: charged twice", {"refund": YesNo("Refund?")})["refund"].noul)
import { Vana, yesNo } from '@annamal/vana';
const r = await new Vana().decide('Customer: charged twice', { refund: yesNo('Refund?') });
console.log(r.answers.refund.noul);
See SDKs, question types and errors and rate limits.