Forecasting API
Demand, nine months out,
with the doubt still attached.
A point estimate tells you what to expect. A distribution tells you what to plan for. Every forecast returns its quantiles, so your system can act on the range instead of guessing at it.
Response from the live API. 36 observed months in, 9 forecast months out the model was told nothing about seasonality.
Models
Swap the model, keep the integration.
One request shape across every model. Change the model field and nothing else in your code moves.
| Model | From | Sizes | Covariates |
|---|---|---|---|
BirlaTSFMbirla-tsfm | BirlaAILabs | base | supported |
Chronoschronos | Amazon | tinysmallbaselarge | not supported |
Chronos-2chronos-2 | Amazon | smallbase | supported |
TimesFM 2.5timesfm | 200m | not supported | |
TimesFM 3timesfm-3 | 330m | supported | |
Moirai-2moirai-2 | Salesforce | small | supported |
TabPFN-TStabpfn-ts | Prior Labs | default | supported |
TiRextirex | NXAI | default | not supported |
Toto-2toto-2 | Datadog | 2.5b | not supported |
Toto-2 FTtoto-2-ft | Datadog | 2.5b | not supported |
Prismprism | Birla AI Labs | default | not supported |
Read live from GET /v1/models. Context windows and horizon caps move with tuning, so the reference carries the current values rather than this page.
Integration
Two objects to learn. That is the whole surface.
No SDK to adopt, no training job to orchestrate, no model artefacts to host. Send history, receive a distribution.
POST /v1/forecast
Authorization: Bearer sk_live_…
{
"model": "chronos",
"freq": "MS",
"horizon": 9,
"series": [{
"index": ["2023-01-01", "…"],
"target": [412, 438, 455, "…"]
}]
}{
"status": "completed",
"model": "chronos",
"series": [[{
"prediction": {
"0.1": [543, 550, 566, "…"],
"0.5": [568, 577, 601, "…"],
"0.9": [600, 600, 621, "…"]
}
}]]
}Forecast your first series today.
Sign in, create a key, and send a request. Nothing to install.