ArthurAI Notebooks API
Endpoints for managing experiment notebooks
Endpoints for managing experiment notebooks
openapi: 3.1.0
info:
title: Arthur GenAI Engine Agent Discovery Notebooks API
version: 2.1.688
description: Endpoints for managing experiment notebooks
tags:
- name: Notebooks
description: Endpoints for managing experiment notebooks
paths:
/api/v1/tasks/{task_id}/notebooks:
post:
tags:
- Notebooks
summary: Create a notebook
description: Create a new notebook for organizing experiments within a task
operationId: create_notebook_api_v1_tasks__task_id__notebooks_post
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateNotebookRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookDetail'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Notebooks
summary: List notebooks
description: List all notebooks for a task with pagination and optional name search
operationId: list_notebooks_api_v1_tasks__task_id__notebooks_get
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Name
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/PaginationSortMethod'
description: Sort the results (asc/desc)
default: desc
description: Sort the results (asc/desc)
- name: page_size
in: query
required: false
schema:
type: integer
description: Page size. Default is 10. Must be greater than 0 and less than 5000.
default: 10
title: Page Size
description: Page size. Default is 10. Must be greater than 0 and less than 5000.
- name: page
in: query
required: false
schema:
type: integer
description: Page number
default: 0
title: Page
description: Page number
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/notebooks/{notebook_id}:
get:
tags:
- Notebooks
summary: Get notebook details
description: Get detailed information about a notebook including state and experiment history
operationId: get_notebook_api_v1_notebooks__notebook_id__get
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookDetail'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Notebooks
summary: Update notebook metadata
description: Update notebook name or description (not the state)
operationId: update_notebook_api_v1_notebooks__notebook_id__put
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateNotebookRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookDetail'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Notebooks
summary: Delete notebook
description: Delete a notebook (experiments are kept)
operationId: delete_notebook_api_v1_notebooks__notebook_id__delete
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/notebooks/{notebook_id}/state:
get:
tags:
- Notebooks
summary: Get notebook state
description: Get the current state (draft configuration) of a notebook
operationId: get_notebook_state_api_v1_notebooks__notebook_id__state_get
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookState-Output'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Notebooks
summary: Set notebook state
description: Set the state (draft configuration) of a notebook
operationId: set_notebook_state_api_v1_notebooks__notebook_id__state_put
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetNotebookStateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NotebookDetail'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/notebooks/{notebook_id}/history:
get:
tags:
- Notebooks
summary: Get notebook history
description: Get paginated list of experiments run from this notebook
operationId: get_notebook_history_api_v1_notebooks__notebook_id__history_get
security:
- API Key: []
parameters:
- name: notebook_id
in: path
required: true
schema:
type: string
description: Notebook ID
title: Notebook Id
description: Notebook ID
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/PaginationSortMethod'
description: Sort the results (asc/desc)
default: desc
description: Sort the results (asc/desc)
- name: page_size
in: query
required: false
schema:
type: integer
description: Page size. Default is 10. Must be greater than 0 and less than 5000.
default: 10
title: Page Size
description: Page size. Default is 10. Must be greater than 0 and less than 5000.
- name: page
in: query
required: false
schema:
type: integer
description: Page number
default: 0
title: Page
description: Page number
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PromptExperimentListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
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
EvalVariableMapping-Input:
properties:
variable_name:
type: string
title: Variable Name
description: Name of the eval variable
source:
oneOf:
- $ref: '#/components/schemas/DatasetColumnVariableSource'
- $ref: '#/components/schemas/ExperimentOutputVariableSource'
title: Source
description: Source of the variable value
discriminator:
propertyName: type
mapping:
dataset_column: '#/components/schemas/DatasetColumnVariableSource'
experiment_output: '#/components/schemas/ExperimentOutputVariableSource'
type: object
required:
- variable_name
- source
title: EvalVariableMapping
description: Mapping of an eval variable to its source (dataset column or experiment output)
CreateNotebookRequest:
properties:
name:
type: string
title: Name
description: Name of the notebook
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description
state:
anyOf:
- $ref: '#/components/schemas/NotebookState-Input'
- type: 'null'
description: Initial state
type: object
required:
- name
title: CreateNotebookRequest
description: Request to create a new notebook
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
PromptExperimentListResponse:
properties:
page:
type: integer
title: Page
description: Current page number (0-indexed)
page_size:
type: integer
title: Page Size
description: Number of items per page
total_pages:
type: integer
title: Total Pages
description: Total number of pages
total_count:
type: integer
title: Total Count
description: Total number of records
data:
items:
$ref: '#/components/schemas/PromptExperimentSummary'
type: array
title: Data
description: List of prompt experiment summaries
type: object
required:
- page
- page_size
- total_pages
- total_count
- data
title: PromptExperimentListResponse
description: Paginated list of prompt experiments
NotebookListResponse:
properties:
data:
items:
$ref: '#/components/schemas/NotebookSummary'
type: array
title: Data
description: List of notebook summaries
page:
type: integer
title: Page
description: Current page number (0-indexed)
page_size:
type: integer
title: Page Size
description: Number of items per page
total_pages:
type: integer
title: Total Pages
description: Total number of pages
total_count:
type: integer
title: Total Count
description: Total number of notebooks
type: object
required:
- data
- page
- page_size
- total_pages
- total_count
title: NotebookListResponse
description: Paginated list of notebooks
DatasetRef:
properties:
id:
type: string
format: uuid
title: Id
description: Dataset ID
version:
type: integer
title: Version
description: Dataset version number
name:
type: string
title: Name
description: Dataset name
type: object
required:
- id
- version
- name
title: DatasetRef
description: Reference to a dataset and version (with name)
ModelProvider:
type: string
enum:
- anthropic
- openai
- gemini
- bedrock
- vertex_ai
- hosted_vllm
- azure
title: ModelProvider
PaginationSortMethod:
type: string
enum:
- asc
- desc
title: PaginationSortMethod
ExperimentOutputVariableSource:
properties:
type:
type: string
const: experiment_output
title: Type
description: 'Type of source: ''experiment_output'''
experiment_output:
$ref: '#/components/schemas/ExperimentOutputSource'
description: Experiment output source
type: object
required:
- type
- experiment_output
title: ExperimentOutputVariableSource
description: Variable source from experiment output
PromptVariableMapping-Input:
properties:
variable_name:
type: string
title: Variable Name
description: Name of the prompt variable
source:
$ref: '#/components/schemas/DatasetColumnVariableSource'
description: Dataset column source
type: object
required:
- variable_name
- source
title: PromptVariableMapping
description: Mapping of a prompt variable to a dataset column source
DatasetColumnVariableSource:
properties:
type:
type: string
const: dataset_column
title: Type
description: 'Type of source: ''dataset_column'''
dataset_column:
$ref: '#/components/schemas/DatasetColumnSource'
description: Dataset column source
type: object
required:
- type
- dataset_column
title: DatasetColumnVariableSource
description: Variable source from a dataset column
NotebookDetail:
properties:
id:
type: string
title: Id
description: Notebook ID
task_id:
type: string
title: Task Id
description: Associated task ID
name:
type: string
title: Name
description: Notebook name
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description
created_at:
type: string
title: Created At
description: ISO timestamp when created
updated_at:
type: string
title: Updated At
description: ISO timestamp when last updated
state:
$ref: '#/components/schemas/NotebookState-Output'
description: Current draft state
experiments:
items:
$ref: '#/components/schemas/PromptExperimentSummary'
type: array
title: Experiments
description: History of experiments run from this notebook
type: object
required:
- id
- task_id
- name
- created_at
- updated_at
- state
- experiments
title: NotebookDetail
description: Detailed notebook information
PromptExperimentSummary:
properties:
id:
type: string
title: Id
description: Unique identifier for the experiment
name:
type: string
title: Name
description: Name of the experiment
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of the experiment
created_at:
type: string
title: Created At
description: ISO timestamp when experiment was created
finished_at:
anyOf:
- type: string
- type: 'null'
title: Finished At
description: ISO timestamp when experiment finished
status:
$ref: '#/components/schemas/ExperimentStatus'
description: Current status of the experiment
dataset_id:
type: string
format: uuid
title: Dataset Id
description: ID of the dataset used
dataset_name:
type: string
title: Dataset Name
description: Name of the dataset used
dataset_version:
type: integer
title: Dataset Version
description: Version of the dataset used
total_rows:
type: integer
title: Total Rows
description: Total number of test rows in the experiment
completed_rows:
type: integer
title: Completed Rows
description: Number of test rows completed successfully
failed_rows:
type: integer
title: Failed Rows
description: Number of test rows that failed
total_cost:
anyOf:
- type: string
- type: 'null'
title: Total Cost
description: Total cost of running the experiment
prompt_configs:
items:
oneOf:
- $ref: '#/components/schemas/SavedPromptConfig'
- $ref: '#/components/schemas/UnsavedPromptConfig'
discriminator:
propertyName: type
mapping:
saved: '#/components/schemas/SavedPromptConfig'
unsaved: '#/components/schemas/UnsavedPromptConfig'
type: array
title: Prompt Configs
description: List of prompts being tested
type: object
required:
- id
- name
- created_at
- status
- dataset_id
- dataset_name
- dataset_version
- total_rows
- completed_rows
- failed_rows
- prompt_configs
title: PromptExperimentSummary
description: Summary of a prompt experiment
EvalRef-Output:
properties:
name:
type: string
title: Name
description: Name of the evaluation
version:
type: integer
title: Version
description: Version of the evaluation
variable_mapping:
items:
$ref: '#/components/schemas/EvalVariableMapping-Output'
type: array
title: Variable Mapping
description: Mapping of eval variables to data sources
type: object
required:
- name
- version
- variable_mapping
title: EvalRef
description: Reference to an evaluation configuration
NotebookState-Input:
properties:
prompt_configs:
anyOf:
- items:
oneOf:
- $ref: '#/components/schemas/SavedPromptConfig'
- $ref: '#/components/schemas/UnsavedPromptConfig'
discriminator:
propertyName: type
mapping:
saved: '#/components/schemas/SavedPromptConfig'
unsaved: '#/components/schemas/UnsavedPromptConfig'
type: array
- type: 'null'
title: Prompt Configs
description: List of prompt configurations
prompt_variable_mapping:
anyOf:
- items:
$ref: '#/components/schemas/PromptVariableMapping-Input'
type: array
- type: 'null'
title: Prompt Variable Mapping
description: Variable mappings for prompts
dataset_ref:
anyOf:
- $ref: '#/components/schemas/DatasetRef'
- type: 'null'
description: Dataset reference (includes name)
dataset_row_filter:
anyOf:
- items:
$ref: '#/components/schemas/NewDatasetVersionRowColumnItemRequest'
type: array
- type: 'null'
title: Dataset Row Filter
description: Optional list of column name and value filters. Only rows matching ALL specified column name-value pairs (AND condition) will be included.
eval_list:
anyOf:
- items:
$ref: '#/components/schemas/EvalRef-Input'
type: array
- type: 'null'
title: Eval List
description: List of evaluations
type: object
title: NotebookState
description: Draft state of a notebook - mirrors experiment config but all fields optional.
NotebookSummary:
properties:
id:
type: string
title: Id
description: Notebook ID
task_id:
type: string
title: Task Id
description: Associated task ID
name:
type: string
title: Name
description: Notebook name
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description
created_at:
type: string
title: Created At
description: ISO timestamp when created
updated_at:
type: string
title: Updated At
description: ISO timestamp when last updated
run_count:
type: integer
title: Run Count
description: Number of experiments run from this notebook
latest_run_id:
anyOf:
- type: string
- type: 'null'
title: Latest Run Id
description: ID of most recent experiment run
latest_run_status:
anyOf:
- $ref: '#/components/schemas/ExperimentStatus'
- type: 'null'
description: Status of most recent experiment
type: object
required:
- id
- task_id
- name
- created_at
- updated_at
- run_count
title: NotebookSummary
description: Summary of a notebook
UnsavedPromptConfig:
properties:
type:
type: string
const: unsaved
title: Type
default: unsaved
auto_name:
anyOf:
- type: string
- type: 'null'
title: Auto Name
description: Auto-generated name (set by backend)
messages:
items:
additionalProperties: true
type: object
type: array
title: Messages
description: Prompt messages
model_name:
type: string
title: Model Name
description: LLM model name
model_provider:
$ref: '#/components/schemas/ModelProvider'
description: LLM provider
tools:
anyOf:
- items:
additionalProperties: true
type: object
type: array
- type: 'null'
title: Tools
description: Available tools
config:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Config
description: LLM config settings
variables:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Variables
description: Variables (auto-detected if not provided)
type: object
required:
- messages
- model_name
- model_provider
title: UnsavedPromptConfig
description: Configuration for an unsaved prompt
EvalVariableMapping-Output:
properties:
variable_name:
type: string
title: Variable Name
description: Name of the eval variable
source:
oneOf:
- $ref: '#/components/schemas/DatasetColumnVariableSource'
- $ref: '#/components/schemas/ExperimentOutputVariableSource'
title: Source
description: Source of the variable value
discriminator:
propertyName: type
mapping:
dataset_column: '#/components/schemas/DatasetColumnVariableSource'
experiment_output: '#/components/schemas/ExperimentOutputVariableSource'
type: object
required:
- variable_name
- source
title: EvalVariableMapping
description: Mapping of an eval variable to its source (dataset column or experiment output)
ExperimentStatus:
type: string
enum:
- queued
- running
- failed
- completed
title: ExperimentStatus
description: Status of an experiment
PromptVariableMapping-Output:
properties:
variable_name:
type: string
title: Variable Name
description: Name of the prompt variable
source:
$ref: '#/components/schemas/DatasetColumnVariableSource'
description: Dataset column source
type: object
required:
- variable_name
- source
title: PromptVariableMapping
description: Mapping of a prompt variable to a dataset column source
SavedPromptConfig:
properties:
type:
type: string
const: saved
title: Type
default: saved
name:
type: string
title: Name
description: Name of the saved prompt
version:
type: integer
title: Version
description: Version of the saved prompt
type: object
required:
- name
- version
title: SavedPromptConfig
description: Configuration for a saved prompt
DatasetColumnSource:
properties:
name:
type: string
title: Name
description: Name of the dataset column
type: object
required:
- name
title: DatasetColumnSource
description: Reference to a dataset column
SetNotebookStateRequest:
properties:
state:
$ref: '#/components/schemas/NotebookState-Input'
description: New state for the notebook
type: object
required:
- state
title: SetNotebookStateRequest
description: Request to set the notebook state
UpdateNotebookRequest:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: New name
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: New description
type: object
title: UpdateNotebookRequest
description: Request to update a notebook
NotebookState-Output:
properties:
prompt_configs:
anyOf:
- items:
oneOf:
- $ref: '#/components/schemas/SavedPromptConfig'
- $ref: '#/components/schemas/UnsavedPromptConfig'
discriminator:
propertyName: type
mapping:
saved: '#/components/schemas/SavedPromptConfig'
unsaved: '#/components/schemas/UnsavedPromptConfig'
type: array
- type: 'null'
title: Prompt Configs
description: List of prompt configurations
prompt_variable_mapping:
anyOf:
- items:
$ref: '#/components/schemas/PromptVariableMapping-Output'
type: array
- type: 'null'
title: Prompt Variable Mapping
description: Variable mappings for prompts
dataset_ref:
anyOf:
- $ref: '#/components/schemas/DatasetRef'
- type: 'null'
description: Dataset reference (includes name)
dataset_row_filter:
anyOf:
- items:
$ref: '#/components/schemas/NewDatasetVersionRowColumnItemRequest'
type: array
- type: 'null'
title: Dataset Row Filter
description: Optional list of column name and value filters. Only rows matching ALL specified column name-value pairs (AND condition) will be included.
eval_list:
anyOf:
- items:
$ref: '#/components/schemas/EvalRef-Output'
type: array
- type: 'null'
title: Eval List
description: List of evaluations
type: object
title: NotebookState
description: Draft state of a notebook - mirrors experiment config but all fields optional.
EvalRef-Input:
properties:
name:
type: string
title: Name
description: Name of the evaluation
version:
type: integer
title: Version
description: Version of the evaluation
variable_mapping:
items:
$ref: '#/components/schemas/EvalVariableMapping-Input'
type: array
title: Variable Mapping
description: Mapping of eval variables to data sources
type: object
required:
- name
- version
- variable_mapping
title: EvalRef
description: Reference to an evaluation configuration
ExperimentOutputSource:
properties:
json_path:
anyOf:
- type: string
- type: 'null'
title: Json Path
description: Optional JSON path to extract from experiment output. Should use dot notation for array indexing (eg. response.objects.0.properties.category)
type: object
title: ExperimentOutputSource
description: Reference to experiment output
NewDatasetVersionRowColumnItemRequest:
properties:
column_name:
type: string
title: Column Name
description: Name of column.
column_value:
type: string
title: Column Value
description: Value of column for the row.
type: object
required:
- column_name
- column_value
title: NewDatasetVersionRowColumnItemRequest
description: Represents a single column-value pair in a dataset row.
securitySchemes:
API Key:
type: http
description: Bearer token authentication with an API key
scheme: bearer