Quinyx Forecast Data API
The Forecast Data API from Quinyx — 16 operation(s) for forecast data.
The Forecast Data API from Quinyx — 16 operation(s) for forecast data.
openapi: 3.1.0
info:
title: Quinyx Absence Schedules Forecast Data API
version: v2
x-service: absence-schedule
description: null
servers:
- url: https://api.quinyx.com
description: Production API
- url: https://api-rc.quinyx.com
description: RC API
tags:
- name: Forecast Data
x-displayName: Forecast Data
paths:
/v2/forecasts/raw-data:
post:
tags:
- Forecast Data
summary: Upload actual data with maximum 366 rows
description: Operation used to upload actual data. The total amount of data rows must not exceed 366. Deprecated. Use /actual-data instead.
operationId: postRawData
parameters:
- name: appendData
in: query
required: false
schema:
type: boolean
default: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInputList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
deprecated: true
x-audience: public
/v2/forecasts/predicted-data:
post:
tags:
- Forecast Data
summary: Upload prediction data with maximum 366 rows at the variable resolution
description: Operation used to upload generated prediction data. Resolution of datapoints must match expected resolution of variable. The total amount of data rows must not exceed 366.
operationId: postPredictedData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_ForecastPredictionIntegrationList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'400':
description: Unexpected input.
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
? /v2/forecasts/forecast-variables/{externalForecastVariableId}/forecast-configurations/{externalForecastConfigurationId}/edit-forecast
: post:
tags:
- Forecast Data
summary: Update forecast configuration and related data
description: Operation used to edit forecast configurations and update related forecast data.
operationId: editCalculatedForecast
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalForecastConfigurationId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_ForecastDataModifier'
required: true
responses:
'200':
description: Forecast successfully updated
content:
'*/*':
schema:
type: string
'400':
description: Unexpected input.
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/forecast-data:
post:
tags:
- Forecast Data
summary: Upload forecast data with maximum 366 rows
description: Operation used to upload forecast data. The total amount of data rows must not exceed 366. Deprecated. Use /budget-data instead.
operationId: postForecastData
parameters:
- name: appendData
in: query
required: false
schema:
type: boolean
default: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInputList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
deprecated: true
x-audience: public
/v2/forecasts/budget-data:
post:
tags:
- Forecast Data
summary: Upload budget data with maximum 366 rows
description: Operation used to upload budget data. The total amount of data rows must not exceed 366.
operationId: postBudgetData
parameters:
- name: appendData
in: query
required: false
schema:
type: boolean
default: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInputList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/aggregated-data:
post:
tags:
- Forecast Data
summary: Upload pre-aggregated data with maximum 366 rows
description: Operation used to upload data already grouped at input data resolution. The total amount of data rows must not exceed 366.
operationId: postAggregatedData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInputList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/actual-data:
post:
tags:
- Forecast Data
summary: Upload actual data with maximum 366 rows
description: Operation used to upload actual data. The total amount of data rows must not exceed 366.
operationId: postActualData
parameters:
- name: appendData
in: query
required: false
schema:
type: boolean
default: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInputList'
required: true
responses:
'200':
description: Data successfully uploaded
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/raw-data:
get:
tags:
- Forecast Data
summary: Get uploaded raw data for forecast variable, up to 120 days
description: Getting the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.
operationId: getRawData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
deprecated: true
x-audience: public
delete:
tags:
- Forecast Data
summary: Delete uploaded raw data and matching calculated forecast
description: Deleting the actual data previously uploaded for the given forecast variable. This operation will also delete the corresponding calculated forecast data. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.
operationId: deleteRawData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'202':
description: The delete request was received successfully and the operation will be performed asynchronously
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
deprecated: true
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/raw-data-stream:
get:
tags:
- Forecast Data
summary: Stream uploaded raw data for forecast variable, up to 120 days
description: Stream the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use ../actual-data instead.
operationId: getRawDataStream
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
deprecated: true
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/forecast-data:
get:
tags:
- Forecast Data
summary: Get uploaded forecast data for a forecast variable, up to 120 days
description: Getting the uploaded forecast data for the given forecast variable. The range between these two dates can not exceed 120 days. Deprecated. Use /budget-data instead.
operationId: getUploadedForecastData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
deprecated: true
x-audience: public
delete:
tags:
- Forecast Data
summary: Delete previously uploaded forecast data for a forecast variable
description: Deleting the previously uploaded forecast data for the given forecast variable. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days. Deprecated. Use /forecast-variables/{externalForecastVariableId}/budget-data instead.
operationId: deleteForecastData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'202':
description: The delete request was received successfully and the operation will be performed asynchronously
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
deprecated: true
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/calculated-forecast:
get:
tags:
- Forecast Data
summary: Get the calculated forecast for a forecast variable, ignoring forecast events
description: Getting the calculated forecast for the given forecast variable. The range between these two dates can not exceed 120 days. Forecast events are NOT taken into consideration.
operationId: getCalculatedForecastForVariable
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_CalculatedForecast'
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_CalculatedForecast'
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/budget-data:
get:
tags:
- Forecast Data
summary: Get uploaded budget data for a forecast variable, up to 120 days
description: Getting the uploaded budget data for the given forecast variable. The range between these two dates can not exceed 120 days.
operationId: getUploadedBudgetData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
x-audience: public
delete:
tags:
- Forecast Data
summary: Delete previously uploaded budget data for a forecast variable
description: Deleting the previously uploaded budget data for the given forecast variable. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days.
operationId: deleteBudgetData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'202':
description: The delete request was received successfully and the operation will be performed asynchronously
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/aggregated-data:
get:
tags:
- Forecast Data
summary: Get aggregated data for a forecast variable, up to 120 days
description: Getting the aggregated data for the given forecast variable. The range between these two dates can not exceed 120 days.
operationId: getAggregatedData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_AggregatedData'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_AggregatedData'
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/actual-data:
get:
tags:
- Forecast Data
summary: Get previously uploaded actual data for a forecast variable, up to 120 days
description: Getting the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days.
operationId: getActualData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
x-audience: public
delete:
tags:
- Forecast Data
summary: Delete previously uploaded actual data and the matching calculated forecast
description: Deleting the actual data previously uploaded for the given forecast variable. This operation will also delete the corresponding calculated forecast data. The startTime and endTime must be at the start of hour and the range between these two dates can not exceed 120 days.
operationId: deleteActualData
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'202':
description: The delete request was received successfully and the operation will be performed asynchronously
content:
'*/*':
schema:
type: string
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
type: string
x-audience: public
/v2/forecasts/forecast-variables/{externalForecastVariableId}/actual-data-stream:
get:
tags:
- Forecast Data
summary: Stream previously uploaded actual data for a forecast variable, up to 120 days
description: Stream the actual data previously uploaded for the given forecast variable. The range between these two dates can not exceed 120 days.
operationId: getActualDataStream
parameters:
- name: externalForecastVariableId
in: path
required: true
schema:
type: string
- name: externalUnitId
in: query
required: true
schema:
type: string
- name: externalSectionId
in: query
required: false
schema:
type: string
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
'403':
description: Forbidden to perform this action
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataIngestionOutput'
x-audience: public
/v2/forecasts/calculated-variables/{extCalculatedVarId}:
get:
tags:
- Forecast Data
summary: Get calculated variable data by external id, up to 120 days
description: Getting the data for calculated variable identified by externalId. The range between these two dates can not exceed 120 days.
operationId: getCalculatedVariableData
parameters:
- name: extCalculatedVarId
in: path
description: Calculated Variable External Id
required: true
schema:
type: string
example: extId
- name: externalUnitId
in: query
description: External Group Id
required: true
schema:
type: string
example: unitId
- name: startTime
in: query
description: Start of the period in ISO format
required: true
schema:
type: string
format: date-time
example: '2020-01-26T00:00:00Z'
- name: endTime
in: query
description: End of the period ISO format
required: true
schema:
type: string
format: date-time
example: '2020-01-27T00:00:00Z'
responses:
'200':
description: Calculated variable data for given period
content:
'*/*':
schema:
$ref: '#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput'
'403':
description: Forbidden to perform this action
content:
'*/*':
schema:
$ref: '#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput'
'404':
description: Calculated variable was not found for given externalId and externalUnitId
content:
'*/*':
schema:
$ref: '#/components/schemas/forecast-data-ingestion_CalculatedVariableOutput'
x-audience: public
components:
schemas:
forecast-data-ingestion_CalculatedForecastData:
type: object
properties:
data:
type: number
format: double
example: 100
editedData:
type: number
format: double
example: 105
startTime:
type: string
format: date-time
example: '2026-01-15T12:00:00Z'
endTime:
type: string
format: date-time
example: '2026-01-15T13:00:00Z'
forecast-data-ingestion_ForecastDataPayload:
type: object
properties:
data:
type: number
format: double
example: 100
timestamp:
type: string
format: date-time
example: '2026-01-15T12:00:00Z'
required:
- data
- timestamp
forecast-data-ingestion_ForecastPredictionDataInput:
type: object
properties:
externalForecastVariableId:
type: string
example: var-1
minLength: 1
externalForecastConfigurationId:
type: string
example: config-1
minLength: 1
externalUnitId:
type: string
example: unit-1
minLength: 1
externalSectionId:
type: string
example: section-1
runIdentifier:
type: string
example: run-1
minLength: 1
runTimestamp:
type: string
format: date-time
example: '2026-01-15T12:00:00Z'
forecastDataPayload:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_Payload'
minItems: 1
required:
- externalForecastConfigurationId
- externalForecastVariableId
- externalUnitId
- forecastDataPayload
- runIdentifier
- runTimestamp
forecast-data-ingestion_ForecastPredictionIntegrationList:
type: object
properties:
requests:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_ForecastPredictionDataInput'
required:
- requests
forecast-data-ingestion_Payload:
type: object
properties:
data:
type: number
format: double
example: 100
timestamp:
type: string
example: '2026-01-15T12:00:00Z'
required:
- data
- timestamp
forecast-data-ingestion_DataProviderInput:
type: object
properties:
externalForecastVariableId:
type: string
example: var-1
minLength: 1
externalUnitId:
type: string
example: unit-1
minLength: 1
externalSectionId:
type: string
example: section-1
forecastDataPayload:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_Payload'
minItems: 1
required:
- externalForecastVariableId
- externalUnitId
- forecastDataPayload
forecast-data-ingestion_DataProviderInputList:
type: object
properties:
requests:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_DataProviderInput'
required:
- requests
forecast-data-ingestion_DataIngestionOutput:
type: object
properties:
externalForecastVariableId:
type: string
example: var-1
externalUnitId:
type: string
example: unit-1
externalSectionId:
type: string
example: section-1
dataPayLoad:
type: array
items:
$ref: '#/components/schemas/forecast-data-ingestion_ForecastDataPayload'
writeOnly: true
dataPayload:
type: array
items:
$ref: '#/compo
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/quinyx/refs/heads/main/openapi/quinyx-forecast-data-api-openapi.yml