openapi: 3.2.0
info:
title: ml Experiments API
version: ''
servers:
- url: https://{tenant}.{region}.qlikcloud.com
variables:
region:
default: us
description: The region the tenant is hosted in
tenant:
default: your-tenant
description: Name of the tenant that will be called
tags:
- name: Experiments
paths:
/api/v1/ml/experiments:
get:
tags:
- Experiments
summary: List experiments
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentFindResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentsFilter'
- $ref: '#/components/parameters/experimentsSort'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
description: 'Retrieves a list of experiments based on provided filter and sort
parameters.'
operationId: getExperiments
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
post:
tags:
- Experiments
summary: Create an experiment
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentPostResponse'
description: '`Created`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
operationId: postExperiment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentInput'
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
/api/v1/ml/experiments/{experimentId}:
get:
tags:
- Experiments
summary: Get an experiment
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentGetResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
operationId: getExperiment
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
patch:
tags:
- Experiments
summary: Update an experiment
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
operationId: patchExperiment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentPatch'
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
delete:
tags:
- Experiments
summary: Delete an experiment
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
operationId: deleteExperiment
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
/api/v1/ml/experiments/{experimentId}/actions/recommend-models:
post:
tags:
- Experiments
summary: Request model recommendations for an experiment
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentModelRecommendationPostResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
description: Returns model recommendations for a specified experiment, including the best-performing, fastest, and most accurate models based on evaluation metrics.
operationId: postExperimentRecommendModels
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentModelRecommendationFilter'
x-qlik-stability: stable
x-qlik-visibility: public
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
/api/v1/ml/experiments/{experimentId}/models:
get:
tags:
- Experiments
summary: List models
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ModelFindResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/modelsFilter'
- $ref: '#/components/parameters/modelsSort'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
operationId: getExperimentModels
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
/api/v1/ml/experiments/{experimentId}/models/{modelId}:
get:
tags:
- Experiments
summary: Get a model
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ModelGetResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/modelId'
operationId: getExperimentModel
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
/api/v1/ml/experiments/{experimentId}/versions:
get:
tags:
- Experiments
summary: List experiment versions
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVersionFindResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/experimentVersionsFilter'
- $ref: '#/components/parameters/experimentVersionsSort'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
operationId: getExperimentVersions
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
post:
tags:
- Experiments
summary: Create an experiment version
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVersionPostResponse'
description: '`Accepted`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
description: 'Creates an experiment version.
Poll this version and check its `status` field to determine when models
are finished training.'
operationId: postExperimentVersion
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVersionInput'
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
/api/v1/ml/experiments/{experimentId}/versions/{experimentVersionId}:
get:
tags:
- Experiments
summary: Get an experiment version
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVersionGetResponse'
description: '`OK`'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/experimentVersionId'
operationId: getExperimentVersion
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '1'
limit: 1000
patch:
tags:
- Experiments
summary: Update an experiment version
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/experimentVersionId'
operationId: patchExperimentVersion
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVersionPatch'
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
delete:
tags:
- Experiments
summary: Delete an experiment version
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalError'
'502':
$ref: '#/components/responses/502BadGateway'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
default:
$ref: '#/components/responses/FailureDefault'
parameters:
- $ref: '#/components/parameters/experimentId'
- $ref: '#/components/parameters/experimentVersionId'
operationId: deleteExperimentVersion
x-qlik-visibility: public
x-qlik-stability: stable
x-qlik-deprecated: false
x-qlik-tier:
tier: '2'
limit: 100
components:
schemas:
Experiment:
type: object
required:
- id
- createdAt
- updatedAt
- tenantId
- ownerId
- spaceId
properties:
id:
$ref: '#/components/schemas/EntityId'
name:
$ref: '#/components/schemas/EntityName'
ownerId:
$ref: '#/components/schemas/OwnerId'
spaceId:
$ref: '#/components/schemas/SpaceId'
tenantId:
$ref: '#/components/schemas/TenantId'
createdAt:
$ref: '#/components/schemas/CreatedAt'
updatedAt:
$ref: '#/components/schemas/UpdatedAt'
description:
$ref: '#/components/schemas/EntityDescription'
description: An AutoML experiment
additionalProperties: false
SpaceId:
type: string
description: Space ID for this entity (empty string for personal space)
x-qlik-filterable: true
ExperimentPatchItem:
type: object
required:
- op
- path
- value
properties:
op:
enum:
- replace
type: string
description: All patch requests use the replace operation
path:
enum:
- /name
- /description
- /spaceId
type: string
description: Path for the property you want to update
value:
$ref: '#/components/schemas/AnyType'
description: 'Experiment fields that can be patched. The following paths all require `value` to be a string: `/name`, `/spaceId`, and `/description`'
additionalProperties: false
BinaryImbalanceSampling:
type: object
properties:
sampleClass:
type: string
sampleRatio:
type: number
sampleDirection:
enum:
- up
- down
type: string
additionalProperties: false
Transform:
type: object
required:
- name
- changeType
properties:
column:
$ref: '#/components/schemas/ColumnTransform'
ExperimentGetResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment
type: string
attributes:
$ref: '#/components/schemas/Experiment'
additionalProperties: false
additionalProperties: false
ModelMetricsRegression:
type: object
properties:
r2:
type: number
description: R squared (training data)
mae:
type: number
description: Mean absolute error (training data)
mse:
type: number
description: Mean squared error (training data)
rmse:
type: number
description: Root mean squared error (training data)
r2Test:
type: number
description: R squared (test data)
maeTest:
type: number
description: Mean absolute error (test data)
mseTest:
type: number
description: Mean squared error (test data)
rmseTest:
type: number
description: Root mean squared error (test data)
description: 'Regression metrics for numeric values. Details:
https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/scoring-regression.htm
'
additionalProperties: false
ModelAlgorithmAbbreviation:
enum:
- CATBC
- CATBR
- ELNC
- GNBC
- LGBMC
- LGBMR
- LINR
- LOGC
- LSOC
- RAFC
- RAFR
- SGDR
- XGBC
- XGBR
type: string
description: Model algorithm name abbreviation
EnumSortExperiments:
enum:
- createdAt
- +createdAt
- -createdAt
- description
- +description
- -description
- name
- +name
- -name
- updatedAt
- +updatedAt
- -updatedAt
type: string
ExperimentVersionGetResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment-version
type: string
attributes:
$ref: '#/components/schemas/ExperimentVersion'
additionalProperties: false
additionalProperties: false
ExperimentVersionInput:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- attributes
properties:
type:
enum:
- experiment-version
type: string
default: experiment-version
attributes:
type: object
required:
- name
- dataSetId
- experimentMode
- featuresList
- target
- experimentType
properties:
name:
type: string
default: Experiment version name. Defaults to current date.
example: '1999-12-31T23:59:59.123Z'
target:
type: string
example: TargetColumn
description: 'The target field in the dataset. Set in first experiment
version and can''t be changed in subsequent versions.
'
pipeline:
$ref: '#/components/schemas/Pipeline'
dataSetId:
$ref: '#/components/schemas/DataSetId'
algorithms:
type: array
items:
$ref: '#/components/schemas/ModelAlgorithm'
description: 'Algorithms used for model training in this version. See
documentation for valid algorithms for each
`experimentType`.
If not provided, defaults to all valid algorithms for your
experimentType.
'
dateIndexes:
$ref: '#/components/schemas/DateIndexes'
featuresList:
$ref: '#/components/schemas/FeaturesList'
datasetOrigin:
$ref: '#/components/schemas/DatasetOrigin'
experimentMode:
$ref: '#/components/schemas/ExperimentMode'
experimentType:
$ref: '#/components/schemas/ExperimentType'
trainingDuration:
$ref: '#/components/schemas/TrainingDuration'
additionalProperties: false
additionalProperties: false
description: 'Input for creating a new experiment version. Defaults provided in the
ProfileInsights response.
'
additionalProperties: false
FindResponseMeta:
type: object
required:
- count
properties:
count:
type: integer
description: Meta for FIND operations
additionalProperties: false
EntityDescription:
type: string
description: Description of this entity
AnyType:
description: Use for fields that can be `any` type (string, number, etc.)
DataSetId:
type: string
example: 672e55cfcadfb8a18281523e
description: The Qlik catalog dataset ID
CreatedAt:
type: string
description: Timestamp when this was created
ExperimentFindResponse:
type: object
required:
- data
- links
properties:
data:
type: array
items:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment
type: string
attributes:
$ref: '#/components/schemas/Experiment'
additionalProperties: false
meta:
$ref: '#/components/schemas/FindResponseMeta'
links:
$ref: '#/components/schemas/ResponseLinks'
additionalProperties: false
APIError:
type: object
required:
- code
- title
properties:
code:
type: string
description: Qlik error code (not HTTP response status code)
meta:
type: object
properties:
issue:
type: string
description: The issue code
details:
type: string
description: Extra details for what may have caused the error
errorId:
type: string
description: The unique id of the error instance
argument:
type: string
description: The argument
resource:
type: string
description: The resource type that the error occurred on
resourceId:
type: string
description: The resource id that the error occurred on
description: 'Additional details about the error. These may vary by error.
'
additionalProperties: false
title:
type: string
description: Short summary of error
detail:
type: string
description: Description of the error
description: An error object
additionalProperties: false
OwnerId:
type: string
description: ID of owner/user for this entity
x-qlik-filterable: true
ExperimentModelRecommendationFilter:
type: object
properties:
deployed:
type: boolean
description: Whether to only consider models that are already deployed
algorithms:
type: array
items:
$ref: '#/components/schemas/ModelAlgorithm'
description: The model algorithms to consider
fullSampling:
type: boolean
description: Whether to only consider models with 100% sampling
versionNumbers:
type: array
items:
type: integer
minimum: 1
description: The versionNumbers of the experiment versions to consider models from
description: Criteria to determine which pool of models to provide recommendations from
additionalProperties: false
Failure:
type: object
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/APIError'
uniqueItems: true
traceId:
type: string
additionalProperties: false
Errors:
type: array
items:
$ref: '#/components/schemas/APIError'
example: '[{"code":"AML-145","title":"datasync dependent service error, service profile","errorId":"c1546687-ad5d-4002-87f6-8c9711298db1","meta":{"errorId":"c1546687-ad5d-4002-87f6-8c9711298db1"}}]
'
description: JSON string with list of error objects
PreprocessedInsightColumn:
type: object
required:
- name
- insights
- willBeDropped
properties:
name:
type: string
description: Name of the preprocessed insight column
insights:
type: array
items:
enum:
- is_free_text
- cannot_be_processed_as_free_text
- is_date_engineered
- has_target_leakage
- feature_type_change_invalid
- feature_type_change_failed
- feature_type_change_successful
- data_bias_detected
- representation_bias_detected
type: string
default: []
description: 'Preliminary list of column/feature insights available after
preprocessing but before feature insights are available
'
willBeDropped:
type: boolean
description: 'Whether this feature insight will be dropped due to free text or
high cardinality that makes it less useful
'
description: 'Metadata about features/columns from dataset after preprocessing
'
additionalProperties: false
ResponseLinks:
type: object
required:
- first
- prev
- self
- next
- last
properties:
last:
type: object
properties:
href:
type: string
format: uri
description: 'Link to the last set of responses from `limit` minus `offset` to
`limit`
'
next:
type: object
properties:
href:
type: string
format: uri
description: 'Link to the next set of responses
'
prev:
type: object
properties:
href:
type: string
format: uri
description: 'Link to the previous set of responses
'
self:
type: object
properties:
href:
type: string
format: uri
description: 'Link to the current set of responses
'
first:
type: object
properties:
href:
type: string
format: uri
description: 'Link to the first set of responses from `offset` 0 to count `limit``
'
description: Resource links included in paginated responses
additionalProperties: false
ModelMetricsBinary:
type: object
properties:
f1:
type: number
description: The harmonic mean of precision and recall for training data
auc:
type: number
description: Area under curve (training data)
mcc:
type: number
description: Matthews correlation coefficient (training data)
npv:
type: number
description: Negative predictive value (training data)
f1Test:
type: number
description: The harmonic mean of precision and recall for test data
recall:
type: number
description: The true positive rate (training data)
aucTest:
type: number
description: Area under curve (test data)
fallout:
type: number
description: The false positive rate (training data)
logLoss:
type: number
description: Measures accuracy in logistic regression (training data)
mccTest:
type: number
description: Matthews correlation coefficient (test data)
npvTest:
type: number
description: Negative predictive value (test data)
accuracy:
type: number
description: 'Average measure of how often the model made correct predictions
(training data)
'
missRate:
type: number
description: The false negative rate (training data)
precision:
type: number
description: 'Positive predictive value. Probability that the model was correct
when it predicted something was true. (training data)
'
threshold:
type: number
description: Probability that a prediction is true (training data)
recallTest:
type: number
description: The true positive rate (test data)
falloutTest:
type: number
description: The false positive rate (test data)
logLossTest:
type: number
description: Measures accuracy in logistic regression (test data)
specificity:
type: number
description: The true negative rate (training data)
accuracyTest:
type: number
description: 'Average measure of how often the model made correct predictions
(test data)
'
missRateTest:
type: number
description: The false negative rate (test data)
trueNegative:
type: number
description: 'Actual false values correctly predicted as false (training data)
'
truePositive:
type: number
description: 'Actual true values correctly predicted as true (training data)
'
falseNegative:
type: number
description: 'Actual true values incorrectly predicted as false (training data)
'
falsePositive:
type: number
description: 'Actual false values incorrectly predicted as true (training data)
'
precisionTest:
type: number
description: 'Positive predictive value. Probability that the model was correct
when it predicted something was true. (test data)
'
thresholdTest:
type: number
description: Probability that a prediction is true (test data)
specificityTest:
type: number
description: The true negative rate (test data)
trueNegativeTest:
type: number
description: 'Actual false values correctly predicted as false (test data)
'
truePositiveTest:
type: number
description: 'Actual true values correctly predicted as true (test data)
'
falseNegativeTest:
type: number
description: 'Actual true values incorrectly predicted as false (test data)
'
falsePositiveTest:
type: number
description: 'Actual false values incorrectly predicted as true (test data)
'
description: 'Binary metrics for categorical values with two options. Details:
https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/scoring-binary-classification.htm
'
additionalProperties: false
ErrorMessage:
type: string
description: JSON string of error object
UpdatedAt:
type: string
description: Timestamp when this was updated
ModelFindResponse:
type: object
required:
- data
- links
properties:
data:
type: array
items:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- model
type: string
attributes:
$ref: '#/components/schemas/Model'
additionalProperties: false
meta:
$ref: '#/components/schemas/FindResponseMeta'
links:
$ref: '#/components/schemas/ResponseLinks'
additionalProperties: false
ExperimentPostResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment
type: string
attributes:
$ref: '#/components/schemas/Experiment'
additionalProperties: false
additionalProperties: false
ModelStatus:
enum:
- pending
- training_requested
- training_done
- ready
- error
type: string
description: 'Model status. These are the status of the model in relation to
experiments (i.e. training status).
'
FeaturesList:
type: array
items:
$ref: '#/components/schemas/Feature'
description: 'List of features from your dataset for creating Experiment
Versions. This appears in from ProfileInsights response (in the
defaultVersionConfig). You can adjust the default settings before
using it as input to create or update Experiment Versions.
'
ExperimentPatch:
type: array
items:
$ref: '#/components/schemas/ExperimentPatchItem'
example:
- op: replace
path: /name
value: New name
- op: replace
path: /description
value: New description
- op: replace
path: /spaceId
value: NEW_SPACE_ID
DatasetOrigin:
enum:
- new
- changed
- refreshed
- same
type: string
default: new
description: Whether this is a new or other dataset
TenantId:
type: string
format: uuid
description: Tenant ID for this entity
x-qlik-filterable: true
ExperimentVersionPostResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment-version
type: string
attributes:
$ref: '#/components/schemas/ExperimentVersion'
additionalProperties: false
additionalProperties: false
DateIndexes:
type: array
items:
type: string
maxItems: 1
minItems: 0
description: A optional date column name to index
Feature:
type: object
properties:
name:
type: string
example: ColumnA
description: Name of the feature column
include:
type: boolean
description: 'Include this feature in your experiment version? Default
here is based on insights for this feature
(e.g. willBeDropped).
'
dataType:
$ref: '#/components/schemas/DataType'
changeType:
$ref: '#/components/schemas/ChangeType'
featureType:
$ref: '#/components/schemas/FeatureType'
parentFeature:
type:
- string
- 'null'
default: null
description: The parent feature name for engineered features. e.g. `OrderDate` may be the parent of its engineered features (features extracted from parent) like `OrderDate.YEAR`, `OrderDate.MONTH`, etc.
description: A feature (column) from your dataset
additionalProperties: false
ModelAlgorithm:
enum:
- catboost_classifier
- catboost_regression
- elasticnet_regression
- gaussian_nb
- kneighbors_classifier
- lasso_regression
- lasso
- lgbm_classifier
- lgbm_regression
- linear_regression
- logistic_regression
- random_forest_classifier
- random_forest_regression
- sgd_regression
- xgb_classifier
- xgb_regression
type: string
description: 'Enumeration of model algorithms.
A subset of these may be provided based on your ExperimentType. This is
based on your target''s featureType. When you select a target feature
from your ProfileInsights response (defaultVersionConfig.featuresList),
it tells you which algorithms will be available if you choose it as your
target.
'
ModelForRecommendations:
allOf:
- $ref: '#/components/schemas/Model'
- type: object
properties:
metrics:
type: object
required:
- predictionSpeed
properties:
predictionSpeed:
type:
- number
- 'null'
description: This represents model prediction speed in rows/second
additionalProperties: false
Pipeline:
type: object
properties:
transforms:
type: array
items:
$ref: '#/components/schemas/Transform'
description: 'Pipeline metadata including transformations to apply to columns and
specific schema configuration data
'
ExperimentVersionId:
type: string
format: uuid
description: ID of the experiment version
x-qlik-filterable: true
TrainingDuration:
type: integer
maximum: 21600
minimum: 900
description: 'Optional training duration in seconds. If not provided, max value used.
If provided, min 900 (15m) and max 21600 (6h).
'
ModelMetrics:
type: object
properties:
binary:
$ref: '#/components/schemas/ModelMetricsBinary'
multiclass:
$ref: '#/components/schemas/ModelMetricsMulticlass'
regression:
$ref: '#/components/schemas/ModelMetricsRegression'
timeseries:
$ref: '#/components/schemas/ModelMetricsTimeseries'
description: 'Model metrics based on the type of model
'
additionalProperties: false
EntityId:
type: string
format: uuid
description: ID of this entity
x-qlik-filterable: true
EnumSortExperimentVersions:
enum:
- createdAt
- +createdAt
- -createdAt
- description
- +description
- -description
- experimentMode
- +experimentMode
- -experimentMode
- experimentType
- +experimentType
- -experimentType
- name
- +name
- -name
- status
- +status
- -status
- updatedAt
- +updatedAt
- -updatedAt
- versionNumber
- +versionNumber
- -versionNumber
type: string
ExperimentType:
enum:
- binary
- multiclass
- regression
type: string
description: Experiment type
ExperimentVersionPatch:
type: array
items:
type: object
example:
op: replace
path: /name
value: New name
required:
- op
- path
- value
properties:
op:
enum:
- replace
type: string
description: All patch requests use the replace operation
path:
enum:
- /name
type: string
description: 'Path for the properties you can update.
'
value:
$ref: '#/components/schemas/AnyType'
description: 'Values that can be patched.
'
additionalProperties: false
ExperimentVersion:
type: object
required:
- id
- createdAt
- updatedAt
- createdByUserId
- experimentId
- status
- target
- dataSetId
- experimentType
properties:
id:
$ref: '#/components/schemas/EntityId'
name:
$ref: '#/components/schemas/EntityName'
errors:
$ref: '#/components/schemas/Errors'
status:
enum:
- ready
- error
- cancelled
- pending
- dataprep_requested
- datasync_requested
- datasync_done
type: string
default: pending
description: Current status of this entity
x-qlik-filterable: true
target:
type: string
example: TargetColumn
description: The target field in the dataset
pipeline:
$ref: '#/components/schemas/Pipeline'
createdAt:
$ref: '#/components/schemas/CreatedAt'
dataSetId:
$ref: '#/components/schemas/DataSetId'
profileId:
type: string
description: ID of the dataset profile with metadata about source data
updatedAt:
$ref: '#/components/schemas/UpdatedAt'
algorithms:
type: array
items:
$ref: '#/components/schemas/ModelAlgorithm'
description: 'List of algorithms selected for model training in this version
'
topModelId:
type: string
description: 'ID of the top model (based on training scores) in this experiment
version
'
dateIndexes:
$ref: '#/components/schemas/DateIndexes'
errorMessage:
$ref: '#/components/schemas/ErrorMessage'
experimentId:
$ref: '#/components/schemas/ExperimentId'
featuresList:
$ref: '#/components/schemas/FeaturesList'
lastBatchNum:
type: integer
description: Number of the last batch
datasetOrigin:
$ref: '#/components/schemas/DatasetOrigin'
versionNumber:
type: integer
description: 1-based sequential version number within the experiment
experimentMode:
$ref: '#/components/schemas/ExperimentMode'
experimentType:
$ref: '#/components/schemas/ExperimentType'
createdByUserId:
$ref: '#/components/schemas/OwnerId'
trainingDuration:
$ref: '#/components/schemas/TrainingDuration'
preprocessedInsights:
type: array
items:
$ref: '#/components/schemas/PreprocessedInsightColumn'
description: 'Preprocessed insights. Like feature insights but with fewer details.
'
description: 'An AutoML experiment version. This is a configuration for training
models within an experiment.
'
additionalProperties: false
FeatureType:
enum:
- categorical
- numeric
- date
- freetext
type: string
description: 'The default feature type based on the feature''s data type.
If you want a value to be interpreted differently (e.g. 0/1
as categorical/boolean instead of numeric), use `changeType`.
'
ModelMetricsMulticlass:
type: object
properties:
f1Macro:
type: number
description: 'Macro F1 is the averaged F1 value for each class without weighting
(training data)
'
f1Micro:
type: number
description: 'Micro F1 is the F1 value calculated across the entire confusion
matrix (training data)
'
accuracy:
type: number
description: 'Average of how often the model made a correct prediction (training
data)
'
f1Weighted:
type: number
description: Weighted F1 (training data)
f1MacroTest:
type: number
description: 'Macro F1 is the averaged F1 value for each class without weighting
(test data)
'
f1MicroTest:
type: number
description: 'Micro F1 is the F1 value calculated across the entire confusion
matrix (test data)
'
accuracyTest:
type: number
description: 'Average of how often the model made a correct prediction (test data)
'
f1WeightedTest:
type: number
description: Weighted F1 (test data)
confusionMatrix:
type: string
description: 'A matrix summary of the accuracy of predictions in a classification
model (training data)
'
confusionMatrixTest:
type: string
description: 'A matrix summary of the accuracy of predictions in a classification
model (training data)
'
description: 'Multiclass metrics for categorical values with 3+ options. Details:
https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/scoring-multiclass-classification.htm
'
additionalProperties: false
ExperimentVersionFindResponse:
type: object
required:
- data
- links
properties:
data:
type: array
items:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- experiment-version
type: string
attributes:
$ref: '#/components/schemas/ExperimentVersion'
additionalProperties: false
meta:
$ref: '#/components/schemas/FindResponseMeta'
links:
$ref: '#/components/schemas/ResponseLinks'
additionalProperties: false
ChangeType:
enum:
- categorical
- numeric
- date
- freetext
type:
- string
- 'null'
default: null
description: 'Indicates if you want to change the featureType for this
feature within the experiment version
'
EntityName:
type: string
description: Name of this entity
x-qlik-filterable: true
ExperimentId:
type: string
format: uuid
description: ID of the experiment
ExperimentMode:
enum:
- intelligent
- manual
- manual_hpo
type: string
default: intelligent
description: The model training mode for the experiment version
ExperimentModelRecommendationPostResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- attributes
properties:
type:
enum:
- model-recommendation
type: string
attributes:
type: object
properties:
bestModel:
$ref: '#/components/schemas/ModelForRecommendations'
fastestModel:
$ref: '#/components/schemas/ModelForRecommendations'
mostAccurateModel:
$ref: '#/components/schemas/ModelForRecommendations'
description: Model recommendations
additionalProperties: false
additionalProperties: false
additionalProperties: false
DataType:
enum:
- DATE
- TIME
- DATETIME
- TIMESTAMP
- STRING
- DOUBLE
- DECIMAL
- INTEGER
- BOOLEAN
- BINARY
- CUSTOM
- FLOAT
- OBJECT
type: string
example: STRING
description: 'The data type of this feature in your dataset
'
Model:
type: object
properties:
id:
$ref: '#/components/schemas/EntityId'
name:
$ref: '#/components/schemas/EntityName'
errors:
$ref: '#/components/schemas/Errors'
hpoNum:
type: number
description: Version number of the hyperparameter optimization
seqNum:
type: number
description: Model sequence number within the experiment version
status:
$ref: '#/components/schemas/ModelStatus'
columns:
type: array
items:
type: string
description: Dataset columns selected as features
metrics:
$ref: '#/components/schemas/ModelMetrics'
batchNum:
type: number
description: 'Batch number indicates the index of the experiment version fold
(most relevant when HPO is enabled)
'
x-qlik-filterable: true
algoAbbrv:
$ref: '#/components/schemas/ModelAlgorithmAbbreviation'
algorithm:
type: string
description: The algorithm used by this model
x-qlik-filterable: true
createdAt:
$ref: '#/components/schemas/CreatedAt'
updatedAt:
$ref: '#/components/schemas/UpdatedAt'
modelState:
$ref: '#/components/schemas/ModelState'
description:
$ref: '#/components/schemas/EntityDescription'
anomalyRatio:
type:
- number
- 'null'
errorMessage:
$ref: '#/components/schemas/ErrorMessage'
samplingRatio:
type: number
description: Ratio of sample data in relation to the dataset
x-qlik-filterable: true
binningFeatures:
type:
- array
- 'null'
items:
type: string
droppedFeatures:
type: array
items:
$ref: '#/components/schemas/DroppedFeature'
description: Features dropped because they're unsuitable
experimentVersionId:
$ref: '#/components/schemas/ExperimentVersionId'
powerTransformFeatures:
type:
- array
- 'null'
items:
type: string
binaryImbalanceSampling:
$ref: '#/components/schemas/BinaryImbalanceSampling'
description: 'A model based on an algorithm within an experiment version.
'
additionalProperties: false
ExperimentInput:
type: object
properties:
data:
type: object
properties:
type:
enum:
- experiment
type: string
default: experiment
attributes:
type: object
required:
- name
- spaceId
properties:
name:
$ref: '#/components/schemas/EntityName'
spaceId:
$ref: '#/components/schemas/SpaceId'
description:
$ref: '#/components/schemas/EntityDescription'
description: Experiment input attributes
additionalProperties: false
description: Data container for ExperimentInput
additionalProperties: false
description: Input for creating this entity
additionalProperties: false
EnumSortModels:
enum:
- createdAt
- +createdAt
- -createdAt
- description
- +description
- -description
- name
- +name
- -name
- updatedAt
- +updatedAt
- -updatedAt
type: string
ModelState:
enum:
- pending
- enabled
- disabled
- inactive
type: string
description: 'Model state. These are the state of the model in relation to
deployments.
'
x-qlik-filterable: true
DroppedFeature:
type: object
properties:
name:
type: string
description: Name of dropped feature in the dataset
reason:
enum:
- highly_correlated
- has_target_leakage
- is_date_engineered
- feature_with_low_importance
type: string
description: Reason the feature was dropped
description: Feature dropped during preprocessing
additionalProperties: false
ModelMetricsTimeseries:
type: object
properties:
mae:
type: number
description: Mean absolute error (training data)
mape:
type: number
description: Mean absolute percentage error (training data)
mase:
type: number
description: Mean absolute scaled error (training data)
rmse:
type: number
description: Root mean squared error (training data)
mdape:
type: number
description: Median absolute percentage error (training data)
smape:
type: number
description: Symmetric mean absolute percentage error (training data)
wmape:
type: number
description: Weighted mean absolute percentage error (training data)
mnrmse:
type: number
description: Mean root mean squared error (training data)
maeTest:
type: number
description: Mean absolute error (test data)
mdnrmse:
type: number
description: Median root mean squared error (training data)
mapeTest:
type: number
description: Mean absolute percentage error (test data)
maseTest:
type: number
description: Mean absolute scaled error (test data)
rmseTest:
type: number
description: Root mean squared error (test data)
mdapeTest:
type: number
description: Median absolute percentage error (test data)
smapeTest:
type: number
description: Symmetric mean absolute percentage error (test data)
wmapeTest:
type: number
description: Weighted mean absolute percentage error (test data)
mnrmseTest:
type: number
description: Mean root mean squared error (test data)
mdnrmseTest:
type: number
description: Median root mean squared error (test data)
description: 'Timeseries metrics experiments valid for timeseries forecasting.
'
additionalProperties: false
ColumnTransform:
type: object
required:
- name
- changeType
properties:
name:
type: string
changeType:
type: string
ModelGetResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- id
- attributes
properties:
id:
$ref: '#/components/schemas/EntityId'
type:
enum:
- model
type: string
attributes:
$ref: '#/components/schemas/Model'
additionalProperties: false
additionalProperties: false
parameters:
experimentsFilter:
in: query
name: filter
style: deepObject
schema:
type: string
example: '`filter=ownerId eq UUID and experimentVersionId eq UUID`'
required: false
description: 'Experiment fields by which you can filter responses within this tenant
- `ownerId` ID string - ID of the owner/user that created the experiment
- `spaceId` ID string (or empty string for personal space) - ID of the space where the experiment is saved.
- `experimentVersionId` UUID string - ID of an experiment version in the experiment
- `modelId` UUID string - ID of a model associated with the experiment
- `deploymentId` UUID string - ID of a deployment of a model associated with the experiment
'
modelsFilter:
in: query
name: filter
style: deepObject
schema:
type: string
example: '`filter="id eq "UUID1" and experimentId eq "UUID" and hasDeployment eq true`'
required: false
description: "Model fields you can filter by:
\n\n- `experimentVersionId` UUID string - Find by experiment version ID\n- `batchNum` UUID string - Search by batch number\n- `isHpo` boolean - Is hyperparameter optimization used?\n- `isMetrics` boolean - Are metrics for regression, binary, or multiclass are used?\n- `id` UUID string - Find by model ID\n- `algorithm` enum string - Find by algorithm
\n\n - Valid algorithms: catboost_classifier, catboost_regression,\n elasticnet_regression, gaussian_nb, kneighbors_classifier,\n lasso_regression, lasso, lgbm_classifier, lgbm_regression,\n linear_regression, logistic_regression, random_forest_classifier,\n random_forest_regression, sgd_regression, xgb_classifier,\n xgb_regression
\n\n- `status` enum string - find by status
\n - Valid statuses: pending, training_requested, training_done, ready, error
\n- `hasDeployment` boolean - Models that are part of a deployment\n- `nameContains` string - Models with name includes this case-insensitive string\n- `exactName` string - Models with exact name. Model names may not be unique\n- `samplingRatio` number - Find models by sampling ratio\n- `modelState` enum string - State by which to find models
\n - Valid states: `pending, enabled, disabled, inactive`\n"
experimentVersionsFilter:
in: query
name: filter
style: deepObject
schema:
type: string
example: '`filter=isRunning eq false and status eq "finished"`'
required: false
description: "Experiment version filter options\n- `isRunning` boolean - Is the experiment version running (training models)?\n- `isSettled` boolean - Is the experiment version settled?\n- `status` enum string - Status to filter by. Omit to get models of any status.\n - Valid statuses: pending, ready, error, cancelled\n- `modelId` UUID string - ID of a model associated with the experiment\n"
modelId:
in: path
name: modelId
schema:
type: string
required: true
description: ID of the model
modelsSort:
in: query
name: sort
style: form
schema:
$ref: '#/components/schemas/EnumSortModels'
example: sort=field1,+field2,-field3,...
required: false
description: 'Field(s) by which to sort response
'
offset:
in: query
name: offset
schema:
type: integer
example: 32
required: false
description: Number of rows to skip before getting page[size]
limit:
in: query
name: limit
schema:
type: integer
default: 32
maximum: 100
example: 10
required: false
description: Number of results per page. Default is 32.
experimentId:
in: path
name: experimentId
schema:
type: string
required: true
description: ID of the experiment
experimentsSort:
in: query
name: sort
style: form
schema:
$ref: '#/components/schemas/EnumSortExperiments'
example: sort=field1,+field2,-field3,...
required: false
description: 'Field(s) by which to sort response
'
experimentVersionId:
in: path
name: experimentVersionId
schema:
type: string
required: true
description: ID of the experiment version
experimentVersionsSort:
in: query
name: sort
style: form
schema:
$ref: '#/components/schemas/EnumSortExperimentVersions'
example: sort=field1,+field2,-field3,...
required: false
description: 'Field(s) by which to sort response
'
responses:
503ServiceUnavailable:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Service Unavailable`'
400BadRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Bad Request`'
401Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Unauthorized`'
500InternalError:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Internal Error`'
403Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Forbidden`'
FailureDefault:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Unexpected Error`'
204NoContent:
description: '`No Content`'
404NotFound:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Not Found`'
502BadGateway:
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
description: '`Bad Gateway`'