Prevedere ForecastModel API
The ForecastModel API from Prevedere — 16 operation(s) for forecastmodel.
The ForecastModel API from Prevedere — 16 operation(s) for forecastmodel.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/prevedere-forecastmodel-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Board Foresight API - V1 Alert Forecast Model API
description: ''
version: v1
servers:
- url: https://api.prevedere.com
description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- api key: []
tags:
- name: ForecastModel
description: ''
paths:
/backtest:
get:
tags:
- ForecastModel
description: Performs a backtest on the supplied model id
parameters:
- name: ForecastModelId
in: query
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
format: date-time
- name: TargetHorizon
in: query
schema:
type: integer
format: int32
responses:
'410':
description: Gone
'429':
description: If the user has sent too many requests
deprecated: true
/forecastmodel/{ForecastModelId}:
get:
tags:
- ForecastModel
summary: Retrieves information for a single model given the ID
description: 'This endpoint is used to pull information about an individual model accessible to the API key.
The response includes model metadata, information about the dependent variable or Primary Indicator and independent or Explanatory Indicators including offsets and display values.'
parameters:
- name: ForecastModelId
in: path
description: ''
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ForecastModelInfo'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'422':
description: Model is expired or in a non-production state
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'429':
description: If the user has sent too many requests
/forecastmodels:
get:
tags:
- ForecastModel
summary: Retrieves the list of accessible forecast models for the user
description: Retrieves the list of accessible forecast models for the user
parameters:
- name: tags
in: query
description: Provide of list of tags to filter by. Only models with at least one of the provided tags will be returned
schema:
type: array
items:
type: string
- name: states
in: query
description: "Provide a list of states to filter by. Only models with one of the provided states will be returned. \n Hold CTRL or Command key to select multiple model states\n \n\n 0 = Draft\n \n\n 1 = Archive\n \n\n 2 = Production"
schema:
type: array
items:
$ref: '#/components/schemas/ModelState'
- name: generateSummary
in: query
description: If true, generates a brief summary of each model. This will increase the time for a response by 7 seconds per model.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/ForecastModelInfo'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ForecastModelInfo'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ForecastModelInfo'
'429':
description: If the user has sent too many requests
/rawmodel/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves the component data of a forecast model
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: UseForecastFrequency
in: query
schema:
type: boolean
- name: ExcludeIndicators
in: query
schema:
type: boolean
- name: AsOfDate
in: query
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
application/json:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
text/json:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
'429':
description: If the user has sent too many requests
'422':
description: Model is expired or in a non-production state
/rawmodel/{ForecastModelId}/{UseForecastFrequency}:
get:
tags:
- ForecastModel
description: Retrieves the component data of a forecast model
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: UseForecastFrequency
in: path
required: true
schema:
type: boolean
- name: ExcludeIndicators
in: query
schema:
type: boolean
- name: AsOfDate
in: query
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
application/json:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
text/json:
schema:
$ref: '#/components/schemas/ForecastModelComponentInfo'
'429':
description: If the user has sent too many requests
'422':
description: Model is expired or in a non-production state
/model/summary/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves the model commentary summary for a forecast model
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ForecastModelSummaryInfo'
application/json:
schema:
$ref: '#/components/schemas/ForecastModelSummaryInfo'
text/json:
schema:
$ref: '#/components/schemas/ForecastModelSummaryInfo'
'400':
description: Bad Request
'422':
description: Model is expired or in a non-production state
'500':
description: Internal Server Error
'429':
description: If the user has sent too many requests
/model/consistency/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves the consistency information for a forecast model
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ForecastModelConsistencyInfo'
application/json:
schema:
$ref: '#/components/schemas/ForecastModelConsistencyInfo'
text/json:
schema:
$ref: '#/components/schemas/ForecastModelConsistencyInfo'
'400':
description: Bad Request
'422':
description: Model is expired or in a non-production state
'500':
description: Internal Server Error
'429':
description: If the user has sent too many requests
/forecast/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves a forecast
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/Point'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Point'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/Point'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/model/contribution/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves independent variable contribution information
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ContributionResult'
application/json:
schema:
$ref: '#/components/schemas/ContributionResult'
text/json:
schema:
$ref: '#/components/schemas/ContributionResult'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/model/modelhealth/{ForecastModelId}:
post:
tags:
- ForecastModel
summary: Checks model health for the given model id
description: The forecast model id must be a locked model of the type segmented or multivariate
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/ForecastModelHealth'
application/json:
schema:
$ref: '#/components/schemas/ForecastModelHealth'
text/json:
schema:
$ref: '#/components/schemas/ForecastModelHealth'
application/*+json:
schema:
$ref: '#/components/schemas/ForecastModelHealth'
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ModelHealthResponse'
application/json:
schema:
$ref: '#/components/schemas/ModelHealthResponse'
text/json:
schema:
$ref: '#/components/schemas/ModelHealthResponse'
'400':
description: Bad Request
'404':
description: Not Found
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/model/impact/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves a forecast
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/RelativeImpactInfo'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RelativeImpactInfo'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/RelativeImpactInfo'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/forecast/risk/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves model risk
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/RiskResult'
application/json:
schema:
$ref: '#/components/schemas/RiskResult'
text/json:
schema:
$ref: '#/components/schemas/RiskResult'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/forecast/riskgrowth/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves model risk growth
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/RiskGrowthResult'
application/json:
schema:
$ref: '#/components/schemas/RiskGrowthResult'
text/json:
schema:
$ref: '#/components/schemas/RiskGrowthResult'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/forecast/statistics/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves model statistics
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/StatisticsResult'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StatisticsResult'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/StatisticsResult'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/forecast/modelscore/{ForecastModelId}:
get:
tags:
- ForecastModel
description: Retrieves model score
parameters:
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ModelScore'
application/json:
schema:
$ref: '#/components/schemas/ModelScore'
text/json:
schema:
$ref: '#/components/schemas/ModelScore'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
/forecast/logcontribution/{ForecastModelId}:
get:
tags:
- ForecastModel
summary: Retrieves a log forecast model contribution
description: Retrieves a log model contribution
parameters:
- name: FiscalYearStart
in: query
description: Fiscal year start specifies the fiscal year start month to aggregate values. The default start month is January.
schema:
type: string
- name: PeriodOverPeriod
in: query
description: When set to true, this will change values to Period over Period lift basis for CCR calculation. The default is false.
schema:
type: boolean
- name: ForecastModelId
in: path
required: true
schema:
type: string
format: uuid
- name: AsOfDate
in: query
schema:
type: string
- name: UseCalculation
in: query
description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
schema:
type: boolean
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/VolumeDecompResult'
application/json:
schema:
$ref: '#/components/schemas/VolumeDecompResult'
text/json:
schema:
$ref: '#/components/schemas/VolumeDecompResult'
'422':
description: Model is expired or in a non-production state
'429':
description: If the user has sent too many requests
components:
schemas:
IndicatorType:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
type: integer
format: int32
ForecastModelHealth:
type: object
properties:
runModelHealthNow:
type: boolean
description: 'This field give the user the ability to ‘remotely press’ the ‘check model health now’ button in the app to get the latest model health results.
The default operation for this input will be to NOT ‘check model health now’. When the default value of false (don’t run model health now) is
replaced with a value of true (run model health now), the equivalent of depressing the green button in the app will be triggered.'
example: true
referenceTable:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ControlChartPoint'
description: ''
example:
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
- rule1_major_outlier: 0
rule2_9pos_inarow: 0
rule3_6_trend: 0
rule4_14_up_and_down: 0
rule5_2_out_of_3: 0
rule6_4_out_of_5: 0
rule7_15_stay_within_1std: 0
rule8_8stay_out_1std: 0
model_decay: 0
dateString: string
additionalProperties: false
IndicatorContribution:
type: object
properties:
entryId:
type:
- string
- 'null'
value:
type: number
format: double
additionalProperties: false
Provider:
type: object
properties:
name:
type:
- string
- 'null'
description:
type:
- string
- 'null'
id:
type: string
format: uuid
source:
type:
- string
- 'null'
additionalProperties: false
DisplayInformation:
type: object
properties:
name:
type:
- string
- 'null'
description: The display name to be used in the application. Limited to 50 characters.
description:
type:
- string
- 'null'
description: The description to be shown in the application. Limited to 1,000 characters.
color:
type:
- string
- 'null'
description: The color to use in the application. Must be a valid hex color code.
category:
type:
- string
- 'null'
description: The category of the indicator. Limited to 1,000 characters.
additionalProperties: false
Transformation:
type: object
properties:
order:
type: integer
format: int32
required:
type: boolean
additionalProperties: false
ModelScore:
type: object
properties:
score:
type: number
format: double
modelScoreType:
type:
- string
- 'null'
predictiveRSquared:
type: number
format: double
inSampleMeanAbsoluteError:
type: number
format: double
holdoutMeanAbsoluteError:
type: number
format: double
percentOfClassificationsUtilized:
type: number
format: double
durbinWatson:
type: number
format: double
residualTrend:
type: number
format: double
percentOfVariablesToPenalize:
type: number
format: double
aggregateEffectAtHorizon:
type: number
format: double
weightedAggregateEffectAtHorizon:
type: number
format: double
averageSinglePeriodErrorThroughHorizon:
type: number
format: double
weightedAverageSinglePeriodErrorThroughHorizon:
type: number
format: double
percentOfTargetHorizonUtilized:
type: number
format: double
indicatorDiversity:
type: number
format: double
segmentScores:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SegmentScore'
additionalProperties: false
ContributionPeriod:
type: object
properties:
date:
type: string
format: date-time
errorFlag:
type: boolean
errorText:
type:
- string
- 'null'
yearOverYear:
type: number
format: double
unexplained:
type: number
format: double
components:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/IndicatorContribution'
additionalProperties: false
AggregationMethod:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
type: integer
format: int32
ControlChartPrescription:
type: object
properties:
type:
type:
- string
- 'null'
prescription:
type:
- string
- 'null'
event:
type:
- string
- 'null'
description:
type:
- string
- 'null'
date:
type:
- number
- 'null'
format: double
additionalProperties: false
Classification:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
type: integer
format: int32
StatisticsResult:
type: object
properties:
rootMeanSquare:
type: number
format: double
rootMeanSquareInModelCalculation:
type: number
format: double
durbinWatson:
type: number
format: double
durbinWatsonInModelCalculation:
type: number
format: double
inSampleMeanAbsolutePercentError:
type: number
format: double
inSampleMeanAbsoluteError:
type: number
format: double
rawResiduals:
type:
- array
- 'null'
items:
# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/prevedere/refs/heads/main/openapi/prevedere-forecastmodel-api-openapi.yml