`200 Information about enqueued and running forecasts.
object
queue
- number: The number of forecasts that are queued (i.e. haven't started executing yet).
executing
- number: The number of forecasts that are currently executing.
details
- array of objects | null: The detailed list of active forecasts. Only included if
details is true.
details
- object
- id: string: The id of the requested forecast. It must be used when querying for the forecast results.
- desc: string: A textual description of the forecast execution status.
- eta: string: The expected time of accomplishment of the forecast: a datetime in the ISO 8601 format with timezone information.
- status: string (enum): The status of the forecast execution. When forecasts are requested the result will always be "enqueued".
- enqueued: The forecast request was accepted but hasn't started being processed yet.
- started: The forecast request has started to be processed, but there are no partial results yet.
- cancelled: The forecast request was cancelled by a user.
- partial: The forecast has partial results.
- finished: The forecast was completed.
- failed: The forecast failed its execution.
- progress: number: The progress of the forecast request. It can be a number between 0.0 and 100.0. A forecast with progress 100.0 is finished.
- fracProgress: number: The fractional progress of the forecast request. It can be a number between 0.0 and 1.0. A forecast with progress 1.0 is finished.
- startTS: number: The timestamp (in milliseconds) at which this forecast started processing.
- lastUpdateTS: number: The timestamp (in milliseconds) at which the information for the forecast request was last updated.
request
- The request that originated this forecast.
Available Forecast Request object
result
Existing Forecast Result object
Example API Call
curl --request GET \
--url 'https://api.kevel.co/v1/forecaster?details=true' \
--header 'accept: application/json'
{
"queue": 0,
"executing": 1,
"details": [
{
"id": "1978ad40-97da-403e-ad5d-c3e71c75a593",
"desc": "This forecast is still being processed. Partial results are available",
"eta": "2022-11-17T21:48:37+00:00",
"status": "partial",
"progress": 33.3,
"fracProgress": 0.33,
"startTS": 1741783201239,
"lastUpdateTS": 1741783222833,
"request": {
"Type": "available",
"StartDate": "2026-07-18T00:28:05.460Z",
"EndDate": "2026-07-18T00:28:05.460Z",
"TimeZone": "UTC",
"Targeting": {
"FreqCapType": 1,
"FreqCapDuration": 0,
"FreqCap": 0,
"Keywords": "dodge\ntruck",
"ActiveKeywords": ["tacocat", "potato cat"],
"GeoTargeting": [{"CountryCode": "US", "Region": "NY", "MetroCode": "10001", "IsExclude": true}],
"DistanceTargeting": [{"Distance": 20, "Latitude": 41.40338, "Longitude": 2.17403}],
"SiteZoneTargeting": [{"SiteId": 1121285, "ZoneId": 247884, "IsExclude": true}],
"SegmentTargeting": [{"SegmentId": 123456789, "IsExclude": false}],
"SearchTerms": [{"term": "running shoes", "matchType": "broad", "isExclude": false}],
"CustomTargeting": "(age > 25 and gender = \"male\")",
"DayParting": [{"StartTime": "string", "EndTime": "string", "WeekDays": ["TH", "FR"]}],
"AdType": 0,
"TemplateValues": {"ctString": "A string goes here", "ctExternalFile": "https://cdn.com/ad.gif"},
"SkipTemplateValues": true
},
"Priority": 0,
"PriorityId": 0,
"NewAds": [{
"Id": 123337,
"StartDate": null,
"EndDate": null,
"FrequencyCap": {"Type": 1, "Duration": 20, "Value": 2},
"Flight": {"Id": 346,"StartDate": "2022-11-17T00:00:00","EndDate": "2022-11-20T23:59:59","TimeZone": "UTC","GoalType": 2,"GoalAmount": 150000,"RateType": 2,"Price": 100,"NetworkId": 11379,"PriorityId": 221170,"KeywordTargeting": "keyword1,keyword2\nkeyword3\n!keyword1,keyword2","GeoTargeting": [{"CountryCode": "US"}],"DistanceTargeting": [{"Latitude": 41.40338}],"SiteZoneTargeting": [{"SiteId": 1121285, "ZoneId": 247884, "IsExclude": true}],"SegmentTargeting": [{"SegmentId": 123456789, "IsExclude": false}],"CustomTargeting": "string","DayParting": [{"StartTime": "string", "EndTime": "string", "WeekDays": ["TH", "FR"]}],"FrequencyCap": {"Type": 1,"Duration": 0,"Value": 0},"Campaign": {"Id": 123456789,"FrequencyCap": {"Type": 1,"Duration": 0,"Value": 0},"Advertiser": {"Id": 123456789,"FrequencyCap": {"Type": 1,"Duration": 0,"Value": 0},"PlacementLimit": 0,"CapType": 4,"DailyCapAmount": 0,"LifetimeCapAmount": 0},"CapType": 4,"DailyCapAmount": 0,"LifetimeCapAmount": 0},"CapType": 1,"DailyCapAmount": 0,"LifetimeCapAmount": 0,"DuplicateMode": 1,"EcpmOptimization": {"Period": 7,"Multiplier": 1,"Floor": 0,"Ceiling": 0,"DefaultEcpm": 0,"BurnIn": 2400},"EcpmOverride": 0,"SearchTerms": [{"term": "running shoes", "matchType": "broad", "isExclude": false}],"BidModifiers": [{"match": {"Keyword": "string","Site": 0,"Zone": 0,"Segment": 0,"SearchTerm": {"Term": "string"}},"price": 7.5,"multiplier": 1.5}]}],
"Modifiers": {"Traffic": [{"Id": "e123e48","StartDate": "2024-09-03T00:00:00","EndDate": "2024-09-04T23:59:59","TimeZone": "UTC","Rule": "$location.countryCode = \"GB\"","Type": "adRequestMultiplier","Multiplier": 2},{"Id": "e123e48","StartDate": "2024-09-03T00:00:00","EndDate": "2024-09-04T23:59:59","TimeZone": "UTC","Rule": "$location.countryCode = \"GB\"","Type": "adRequestCount","Count": 10000},{"Id": "e123e48","StartDate": "2024-09-03T00:00:00","EndDate": "2024-09-04T23:59:59","TimeZone": "UTC","Rule": "$location.countryCode = \"GB\"","Type": "placementOpportunityRatio","Ratio": 0.5}]}},
"result": {
"total": {
"411981212": {"clicks": 0,"impressions": 50,"revenue": 1,"uniqueUsers": 34},
"412081539": {"clicks": 0,"impressions": 0,"revenue": 0,"uniqueUsers": 0}
},
"grouped": [{
"key": {"request.localDate": "2023-08-17"},
"value": {"411981212": {"clicks": 0,"impressions": 46,"revenue": 2,"uniqueUsers": 32},"412081539": {"clicks": 0,"impressions": 0,"revenue": 0,"uniqueUsers": 0}}
},{
"key": {"request.localDate": "2023-08-18"},
"value": {"411981212": {"clicks": 0,"impressions": 4,"revenue": 0,"uniqueUsers": 2},"412081539": {"clicks": 0,"impressions": 0,"revenue": 0,"uniqueUsers": 0}}
}]
}
}
]
}