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.