ArthurAI Models V1 API
The Models V1 API from ArthurAI — 7 operation(s) for models v1.
The Models V1 API from ArthurAI — 7 operation(s) for models v1.
openapi: 3.1.0
info:
title: Arthur GenAI Engine Agent Discovery Models V1 API
version: 2.1.688
tags:
- name: Models V1
paths:
/api/v1/models/{model_id}:
patch:
tags:
- Models V1
summary: Update Model
description: Updates a single model. Requires model_update permission.
operationId: patch_model
security:
- OAuth2AuthorizationCode:
- model_update
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchModel'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Model'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Models V1
summary: Get Model By Id
description: Returns a single model by ID. Requires model_read permission.
operationId: get_model
security:
- OAuth2AuthorizationCode:
- model_read
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Model'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Models V1
summary: Delete Model By Id
description: Deletes a single model. Requires model_delete permission.
operationId: delete_model
security:
- OAuth2AuthorizationCode:
- model_delete
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
responses:
'204':
description: No Content
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/models/{model_id}/metric_config:
put:
tags:
- Models V1
summary: Update Model Metric Configuration By Model Id
description: Returns a single model metric spec. Requires model_put_metric_config permission.
operationId: put_model_metric_config
security:
- OAuth2AuthorizationCode:
- model_put_metric_config
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutModelMetricSpec'
responses:
'204':
description: Successful Response
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/models/{model_id}/schedule:
put:
tags:
- Models V1
summary: Update Model Metrics Schedule
description: Creates or overwrites the model metrics job schedule. Requires model_metrics_schedule_update permission.
operationId: put_model_metrics_schedule
security:
- OAuth2AuthorizationCode:
- model_metrics_schedule_update
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutModelMetricsSchedule'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Model'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestError'
description: Bad Request
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Models V1
summary: Delete Model Metrics Schedule
description: Deletes metrics job schedule. Requires model_metrics_schedule_delete permission.
operationId: delete_model_metrics_schedule
security:
- OAuth2AuthorizationCode:
- model_metrics_schedule_delete
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
responses:
'204':
description: Successful Response
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/workspaces/{workspace_id}/models:
get:
tags:
- Models V1
summary: Get Workspace Models.
description: Returns the applications the requesting user has access to across all projects in the workspace, matching the filter and sorting criteria. If multiple filters are specified, results will only be returned that match all of the specified criteria. Requires the workspace_list_models permission (granted by the Workspace Reader role); results are further limited to the projects in which the user has access to models.
operationId: get_models_in_workspace
security:
- OAuth2AuthorizationCode:
- workspace_list_models
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/ModelsSort'
description: Override the field used for sorting the returned list. Optional.
default: created_at
description: Override the field used for sorting the returned list. Optional.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: desc
description: Override the sort order used. Optional.
- name: dataset_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter for models based on a specific dataset ID.
title: Dataset Id
description: Filter for models based on a specific dataset ID.
- name: name
in: query
required: false
schema:
type: string
description: Filter for models with a name similar to this name.
title: Name
description: Filter for models with a name similar to this name.
- name: onboarding_identifier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter for models whose 'onboarding_identifier' matches the provided string.
title: Onboarding Identifier
description: Filter for models whose 'onboarding_identifier' matches the provided string.
- name: infrastructure
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/Infrastructure'
- type: 'null'
description: Filter for models by infrastructure type.
title: Infrastructure
description: Filter for models by infrastructure type.
- name: model_problem_type
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/ModelProblemType'
- type: 'null'
description: Filter for models by problem type.
title: Model Problem Type
description: Filter for models by problem type.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_Model_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/organization/models:
get:
tags:
- Models V1
summary: Get Organization Models.
description: Returns all models (applications) across every workspace in the organization, matching the filter and sorting criteria. If multiple filters are specified, only results matching all criteria are returned. Requires the organization_list_models permission; results are further limited to the projects in which the caller has access to models.
operationId: get_organization_models
security:
- OAuth2AuthorizationCode:
- organization_list_models
parameters:
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/ModelsSort'
description: Override the field used for sorting the returned list. Optional.
default: created_at
description: Override the field used for sorting the returned list. Optional.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: desc
description: Override the sort order used. Optional.
- name: dataset_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter for models based on a specific dataset ID.
title: Dataset Id
description: Filter for models based on a specific dataset ID.
- name: name
in: query
required: false
schema:
type: string
description: Filter for models with a name similar to this name.
title: Name
description: Filter for models with a name similar to this name.
- name: onboarding_identifier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter for models whose 'onboarding_identifier' matches the provided string.
title: Onboarding Identifier
description: Filter for models whose 'onboarding_identifier' matches the provided string.
- name: infrastructure
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/Infrastructure'
- type: 'null'
description: Filter for models by infrastructure type.
title: Infrastructure
description: Filter for models by infrastructure type.
- name: model_problem_type
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/ModelProblemType'
- type: 'null'
description: Filter for models by problem type.
title: Model Problem Type
description: Filter for models by problem type.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_Model_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/models:
post:
tags:
- Models V1
summary: Create Model
description: Creates a single model. Requires project_create_model permission.
operationId: post_model
security:
- OAuth2AuthorizationCode:
- project_create_model
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostModel'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Model'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Models V1
summary: List Models
description: Returns models matching the filter and sorting criteria. If multiple filters are specified, results will only be returned that match all of the specified criteria. Requires project_list_models permission.
operationId: get_models
security:
- OAuth2AuthorizationCode:
- project_list_models
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/ModelsSort'
description: Override the field used for sorting the returned list. Optional.
default: created_at
description: Override the field used for sorting the returned list. Optional.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: desc
description: Override the sort order used. Optional.
- name: dataset_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter the results for the models that are based on this dataset id. Optional.
title: Dataset Id
description: Filter the results for the models that are based on this dataset id. Optional.
- name: name
in: query
required: false
schema:
type: string
description: Filter the results for the models with a name similar to this name. Optional.
title: Name
description: Filter the results for the models with a name similar to this name. Optional.
- name: onboarding_identifier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter the results for models whose 'onboarding_identifier' matches the provided string.
title: Onboarding Identifier
description: Filter the results for models whose 'onboarding_identifier' matches the provided string.
- name: infrastructure
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/Infrastructure'
- type: 'null'
description: Filter for models by infrastructure type.
title: Infrastructure
description: Filter for models by infrastructure type.
- name: model_problem_type
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/ModelProblemType'
- type: 'null'
description: Filter for models by problem type.
title: Model Problem Type
description: Filter for models by problem type.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_Model_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/generate_metrics_spec:
post:
tags:
- Models V1
summary: Generates A Metrics Spec.
description: Generates a metric spec for a model based on one or several datasets. Requires project_generate_metrics_spec permission.
operationId: generate_metrics_spec
security:
- OAuth2AuthorizationCode:
- project_generate_metrics_spec
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateMetricsSpecRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PutModelMetricSpec'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
InternalServerError:
properties:
detail:
type: string
title: Detail
default: Internal server error
type: object
title: InternalServerError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ModelsSort:
type: string
enum:
- created_at
- updated_at
- name
title: ModelsSort
DatasetReference:
properties:
dataset_id:
type: string
format: uuid
title: Dataset Id
description: ID of the dataset.
dataset_name:
type: string
title: Dataset Name
description: Name of the dataset.
dataset_connector_type:
anyOf:
- $ref: '#/components/schemas/ConnectorType'
- type: 'null'
description: Type of connector associated with the dataset. If None, dataset is a joined dataset.
type: object
required:
- dataset_id
- dataset_name
- dataset_connector_type
title: DatasetReference
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
PostModel:
properties:
name:
type: string
title: Name
description: Name of the model.
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of model.
onboarding_identifier:
anyOf:
- type: string
maxLength: 1024
- type: 'null'
title: Onboarding Identifier
description: An optional label to help identify the model. Used by the task creation onboarding flow.
metric_config:
anyOf:
- $ref: '#/components/schemas/PutModelMetricSpec'
- type: 'null'
description: Metric configuration of the model. If left undefined, one will be derived
dataset_ids:
items:
type: string
format: uuid
type: array
title: Dataset Ids
description: IDs of datasets for the model.
type: object
required:
- name
- dataset_ids
title: PostModel
PutModelMetricsSchedule:
properties:
cron:
type: string
title: Cron
description: Cron expression defining a cadence to run the model's metrics job on. Must specify a period greater than or equal to 5 minutes.
lookback_period_seconds:
type: integer
title: Lookback Period Seconds
description: Lookback period of the scheduled job.
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: Optional name of the schedule.
type: object
required:
- cron
- lookback_period_seconds
title: PutModelMetricsSchedule
BadRequestError:
properties:
detail:
type: string
title: Detail
default: Bad Request
type: object
title: BadRequestError
DataPlane:
properties:
created_at:
type: string
format: date-time
title: Created At
description: Time of record creation.
updated_at:
type: string
format: date-time
title: Updated At
description: Time of last record update.
id:
type: string
format: uuid
title: Id
description: ID of the data plane.
name:
type: string
title: Name
description: Name of data plane.
workspace_id:
type: string
format: uuid
title: Workspace Id
description: ID of the parent workspace.
description:
type: string
title: Description
description: Description of data plane.
user_id:
type: string
format: uuid
title: User Id
description: ID of the data plane's underlying user.
infrastructure:
$ref: '#/components/schemas/Infrastructure'
description: Infrastructure where the engine is running (e.g., AWS, GCP, Azure, Docker, Kubernetes).
last_check_in_time:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Check In Time
description: Last time the data plane was confirmed to be connected.
capabilities:
$ref: '#/components/schemas/DataPlaneCapabilities'
description: Capabilities for this data plane.
type: object
required:
- created_at
- updated_at
- id
- name
- workspace_id
- description
- user_id
- infrastructure
- last_check_in_time
- capabilities
title: DataPlane
ModelMetricSpec:
properties:
aggregation_specs:
items:
$ref: '#/components/schemas/AggregationSpec'
type: array
title: Aggregation Specs
description: List of aggregations configured for the metric spec.
id:
type: string
format: uuid
title: Id
description: Unique ID of the metric spec.
type: object
required:
- aggregation_specs
- id
title: ModelMetricSpec
Infrastructure:
type: string
enum:
- AWS
- Azure
- GCP
- Docker
- Kubernetes
title: Infrastructure
ModelMetricsSchedule:
properties:
cron:
type: string
title: Cron
description: Cron expression defining a cadence to run the model's metrics job on. Must specify a period greater than or equal to 5 minutes.
lookback_period_seconds:
type: integer
title: Lookback Period Seconds
description: Lookback period of the scheduled job.
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: Optional name of the schedule.
id:
type: string
format: uuid
title: Id
description: Unique id of the schedule.
type: object
required:
- cron
- lookback_period_seconds
- id
title: ModelMetricsSchedule
AggregationKind:
type: string
enum:
- default
- custom
title: AggregationKind
NotFoundError:
properties:
detail:
type: string
title: Detail
default: Resource not found
type: object
title: NotFoundError
PutModelMetricSpec:
properties:
aggregation_specs:
items:
$ref: '#/components/schemas/AggregationSpec'
type: array
title: Aggregation Specs
description: List of aggregations configured for the metric spec.
type: object
required:
- aggregation_specs
title: PutModelMetricSpec
Model:
properties:
created_at:
type: string
format: date-time
title: Created At
description: Time of record creation.
updated_at:
type: string
format: date-time
title: Updated At
description: Time of last record update.
id:
type: string
format: uuid
title: Id
description: ID of the model.
project_id:
type: string
format: uuid
title: Project Id
description: ID of the parent project.
name:
type: string
title: Name
description: Name of the model.
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of model.
onboarding_identifier:
anyOf:
- type: string
- type: 'null'
title: Onboarding Identifier
description: An optional label to help ide
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthurai/refs/heads/main/openapi/arthurai-models-v1-api-openapi.yml