API reference
Stored forecasts with confidence intervals
Forecasts are produced on a schedule from accumulated history, not computed on request. When none exists this returns 409 data_not_ready rather than a flat line.
/v1/forecastscurl "https://api.cresva.ai/v1/forecasts?type=revenue&brand_id=brd_8Kq2mR4xVn" \ -H "Authorization: Bearer $CRESVA_API_KEY"Illustrative values. The parameter names, types and defaults are the ones the endpoint enforces.
Authorization
AuthorizationAuthorization: Bearer cresva_sk_live_.... A key beginning cresva_sk_test_ returns simulated data from this endpoint instead.Query parameters
Sent in the query string. Values are coerced to the types below, so numbers may be sent as strings.
typeenumrequiredOne ofrevenuecacroasconversionscustomhorizon_daysintegeroptionaldefault 30min 7 · max 365
include_confidenceenumoptionaldefault "true"One oftruefalsemetricstringoptionalMetric name when type is `custom`.
brand_idstringoptionalBrand to query. Required when the account has more than one brand.
When brand_id is required
/v1/brands to see which ids a key can address.Response
Returns 200 with the fields below. Every successful response also carries meta.request_id, which identifies the call in a support conversation, and meta.simulated, which is true when a test key was used.
typestringrequiredhorizon_daysnumberrequiredgranularitystringrequiredpointsarray of objectrequireddatestringrequiredpredicted_valuenumber or nullrequiredconfidence_intervalobjectoptionallownumber or nullrequiredhighnumber or nullrequired
factorsarray of objectrequiredaccuracyobjectrequiredmapenumber or nullrequiredmodelstringrequired
metaobjectrequiredPresent on every successful response.
request_idstringrequiredsimulatedbooleanrequiredTrue when a cresva_sk_test_ key was used and the data is simulated.
{ "type": "string", "horizon_days": 30, "granularity": "day", "points": [ { "date": "2026-07-15", "predicted_value": 51204, "confidence_interval": { "low": 46980, "high": 55428 } } ], "factors": [ { "...": "provider shaped" } ], "accuracy": { "mape": 0.08, "model": "prophet" }, "meta": { "request_id": "req_01JQ8Z3M6WT4", "simulated": false }}Shape generated from the response schema. The values are illustrative.
Errors
Failures use one envelope: { "error": { "code", "message" } }. The codes this endpoint can return:
400 invalid_request401 unauthorized403 forbidden429 rate_limited409 data_not_ready500 internal_error