The Kāla-1 API
Ask Kāla-1, our own forecasting model, for a calibrated probability on any yes/no question, as of a date you choose, with short reasoning and the sources it used. Bring your own dated evidence, or let Kāla search the web for it.
Pricing
| Call | Credits |
|---|---|
Forecast with your own evidence (evidence given) | 1 |
| Forecast where Kāla searches for evidence | 2 |
Uses the same credits as Ask Kāla (buy credits). A forecast that fails is refunded automatically.
Your API keys
Sign in to create and manage keys.
Quick start
curl -X POST "https://kala-ask-260305764570.us-central1.run.app/v1/forecasts?wait=120" \
-H "Authorization: Bearer $KALA_API_KEY" -H "Content-Type: application/json" \
-d '{"question": "Will the RBI cut the repo rate at its December 2026 meeting?"}'
With your own evidence (1 credit), and an as-of date for back-testing:
import requests
r = requests.post("https://kala-ask-260305764570.us-central1.run.app/v1/forecasts", params={"wait": 120},
headers={"Authorization": f"Bearer {KALA_API_KEY}"},
json={"question": "Will India's CPI inflation for October 2026 be below 4%?",
"as_of": "2026-10-20T00:00Z",
"evidence": [{"date": "2026-10-13", "source": "MoSPI", "text": "September CPI inflation was 3.6% year on year."},
{"date": "2026-10-18", "source": "Reuters", "text": "Vegetable prices rose sharply in early October."}]})
print(r.json()["probability"], r.json()["reasoning"])
Response
{"id": "fc_8c1d…", "status": "done", "model": "kala-1-preview",
"probability": 0.31, "samples": [0.3, 0.28, 0.35, …], "state": "open",
"reasoning": "Base rate … the latest evidence …", "sources": [{"date": "…", "source": "…", "url": "…"}],
"knowledge_cutoff": "2026-10-15", "point_in_time": true, "evidence_dropped_after_as_of": 0,
"cost": 2, "balance": 38}
probability | Chance the question resolves YES: the average (in log-odds) of 8 sampled answers. |
state | open (not yet known), decided (the evidence already settles it) or unanswerable. |
knowledge_cutoff | The date up to which Kāla-1 may already know outcomes from training (now 2026-10-15). Also at GET /v1/model (free, no key). |
point_in_time | true only when as_of is after the knowledge cutoff. When false, a warning explains that the model may have seen the outcome: don't use those forecasts in backtests. |
evidence_dropped_after_as_of | How many evidence items were removed because they were dated after as_of (with Kāla search and a past as_of, undated pages are removed too). |
status | running until done: poll GET /v1/forecasts/{id} (same key; results kept 24 hours), or pass ?wait= up to 120 seconds. |
Point in time: what as_of does and doesn't do
as_of controls the evidence: anything dated after it is dropped before Kāla-1 reads it, and the model is told the date. It can't erase what the model learned in training:
| Base model | Qwen3-8B, pretrained on public web data mostly up to 2024 (its maker hasn't published an exact cutoff). |
| Fine-tuning | About 38,000 forecasting questions whose outcomes were public on or before 2026-10-15, our stated knowledge cutoff. |
| Clean backtests | Use as_of dates after the cutoff (point_in_time: true). Earlier dates still work, but the result is flagged, because the model may have seen the answer. |
For backtests further back, we're preparing dated checkpoints trained only on data up to a given month, and we can measure leakage on your own model with a hindsight-leak audit: see Point-in-Time. The cutoff moves forward whenever the served model is retrained; every response states the one that applied.
Good to know
- Speed: about 30 seconds per forecast when warm. The model sleeps when idle, so the first call after a quiet spell can take 2 to 4 minutes; keep polling.
- Time-safe evidence: evidence dated after
as_ofis never shown to the model;as_ofcan't be in the future. The model's own knowledge runs to its cutoff (above). - Limits: 60 forecasts per key per hour; up to 30 evidence items; questions up to 600 characters.
- Accuracy: Kāla-1 is a preview. On 793 questions asked after July 2026 (same evidence for every system) it scores a Brier of 0.202 (lower is better; 0.25 is a coin flip): level with Foresight-32B, a forecasting model four times its size, just behind OpenForecaster-8B (0.199), ahead of Gemini 2.5 Flash (0.203) and gpt-oss 120B (0.211), and behind Gemini 2.5 Pro (0.195), Kimi K2 (0.191) and Kāla's own four-model forecasts (0.192). On Indian questions it is second only to Kāla's forecasts among all systems tested. Every number: benchmarks.
- Forecasts are estimates, not financial, legal, medical or betting advice. See Terms.