openapi: 3.1.0
info:
title: Arthur GenAI Engine Agent Discovery Tasks API
version: 2.1.688
description: Endpoints to manage tasks and their rules
tags:
- name: Tasks
description: Endpoints to manage tasks and their rules
paths:
/api/v2/tasks:
get:
tags:
- Tasks
summary: Get All Tasks
description: '[Deprecated] Use /tasks/search endpoint. This endpoint will be removed in a future release.'
operationId: get_all_tasks_api_v2_tasks_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/TaskResponse'
type: array
title: Response Get All Tasks Api V2 Tasks Get
deprecated: true
security:
- API Key: []
post:
tags:
- Tasks
summary: Create Task
description: Register a new task. When a new task is created, all existing default rules will be auto-applied for this new task. Optionally specify if the task is agentic.
operationId: create_task_api_v2_tasks_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewTaskRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- API Key: []
/api/v2/tasks/{task_id}:
delete:
tags:
- Tasks
summary: Archive Task
description: Archive task. Also archives all task-scoped rules. Associated default rules are unaffected.
operationId: archive_task_api_v2_tasks__task_id__delete
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Tasks
summary: Get Task
description: Get tasks.
operationId: get_task_api_v2_tasks__task_id__get
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/tasks/{task_id}/unarchive:
post:
tags:
- Tasks
summary: Unarchive Task
description: Unarchive a previously archived task. Also unarchives all task-scoped rules and metrics that were archived with it.
operationId: unarchive_task_api_v2_tasks__task_id__unarchive_post
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/agent-tasks:
get:
tags:
- Tasks
summary: Get Agent Tasks
description: Get agentic tasks with enriched agent metadata (tools, sub-agents, models). Returns only agentic tasks.
operationId: get_agent_tasks_api_v2_agent_tasks_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/EnrichedTaskResponse'
type: array
title: Response Get Agent Tasks Api V2 Agent Tasks Get
security:
- API Key: []
/api/v2/task:
post:
tags:
- Tasks
summary: Redirect To Tasks
description: Redirect to /tasks endpoint.
operationId: redirect_to_tasks_api_v2_task_post
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v2/tasks/search:
post:
tags:
- Tasks
summary: Search Tasks
description: Search tasks. Can filter by task IDs, task name substring, and agentic status.
operationId: search_tasks_api_v2_tasks_search_post
security:
- API Key: []
parameters:
- 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
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTasksRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTasksResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/tasks/{task_id}/rules:
post:
tags:
- Tasks
summary: Create Task Rule
description: 'Create a rule to be applied only to this task. Available rule types are KeywordRule, ModelHallucinationRuleV2, ModelSensitiveDataRule, PIIDataRule, PromptInjectionRule, RegexRule, ToxicityRule.Note: The rules are cached by the validation endpoints for 60 seconds.'
operationId: create_task_rule_api_v2_tasks__task_id__rules_post
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRuleRequest'
examples:
example1:
summary: Sensitive Data Example
description: Sensitive Data Example with its required configuration
value:
name: Sensitive Data Rule
type: ModelSensitiveDataRule
apply_to_prompt: true
apply_to_response: false
config:
examples:
- example: John has O negative blood group
result: true
- example: Most of the people have A positive blood group
result: false
hint: specific individual's blood types
example2:
summary: Regex Example
description: Regex Example with its required configuration. Be sure to properly encode requests using JSON libraries. For example, the regex provided encodes to a different string when encoded to account for escape characters.
value:
name: SSN Regex Rule
type: RegexRule
apply_to_prompt: true
apply_to_response: true
config:
regex_patterns:
- \d{3}-\d{2}-\d{4}
- \d{5}-\d{6}-\d{7}
example3:
summary: Keywords Rule Example
description: Keywords Rule Example with its required configuration
value:
name: Blocked Keywords Rule
type: KeywordRule
apply_to_prompt: true
apply_to_response: true
config:
keywords:
- Blocked_Keyword_1
- Blocked_Keyword_2
example4:
summary: Prompt Injection Rule Example
description: Prompt Injection Rule Example, no configuration required
value:
name: Prompt Injection Rule
type: PromptInjectionRule
apply_to_prompt: true
apply_to_response: false
example5:
summary: Hallucination Rule V1 Example (Deprecated)
description: Hallucination Rule Example, no configuration required (This rule is deprecated. Use ModelHallucinationRuleV2 instead.)
value:
name: Hallucination Rule
type: ModelHallucinationRule
apply_to_prompt: false
apply_to_response: true
example6:
summary: Hallucination Rule V2 Example
description: Hallucination Rule Example, no configuration required
value:
name: Hallucination Rule
type: ModelHallucinationRuleV2
apply_to_prompt: false
apply_to_response: true
example7:
summary: Hallucination Rule V3 Example (Beta)
description: Hallucination Rule Example, no configuration required. This rule is in beta and must be enabled by the system administrator.
value:
name: Hallucination Rule
type: ModelHallucinationRuleV3
apply_to_prompt: false
apply_to_response: true
example8:
summary: PII Rule Example
description: PII Rule Example, no configuration required. "disabled_pii_entities", "confidence_threshold", and "allow_list" accepted. Valid value for "confidence_threshold" is 0.0-1.0. Valid values for "disabled_pii_entities" are CREDIT_CARD,CRYPTO,DATE_TIME,EMAIL_ADDRESS,IBAN_CODE,IP_ADDRESS,NRP,LOCATION,PERSON,PHONE_NUMBER,MEDICAL_LICENSE,URL,US_BANK_NUMBER,US_DRIVER_LICENSE,US_ITIN,US_PASSPORT,US_SSN
value:
name: PII Rule
type: PIIDataRule
apply_to_prompt: true
apply_to_response: true
config:
disabled_pii_entities:
- EMAIL_ADDRESS
- PHONE_NUMBER
confidence_threshold: '0.5'
allow_list:
- arthur.ai
- Arthur
example9:
summary: Toxicity Rule Example
description: Toxicity Rule Example, no configuration required. Threshold accepted
value:
name: Toxicity Rule
type: ToxicityRule
apply_to_prompt: true
apply_to_response: true
config:
threshold: 0.5
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RuleResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/tasks/{task_id}/rules/{rule_id}:
patch:
tags:
- Tasks
summary: Update Task Rules
description: Enable or disable an existing rule for this task including the default rules.
operationId: update_task_rules_api_v2_tasks__task_id__rules__rule_id__patch
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
- name: rule_id
in: path
required: true
schema:
type: string
format: uuid
title: Rule Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRuleRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Tasks
summary: Archive Task Rule
description: Archive an existing rule for this task.
operationId: archive_task_rule_api_v2_tasks__task_id__rules__rule_id__delete
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
- name: rule_id
in: path
required: true
schema:
type: string
format: uuid
title: Rule Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/tasks/{task_id}/metrics:
post:
tags:
- Tasks
summary: Create Task Metric
description: Create metrics for a task. Only agentic tasks can have metrics.
operationId: create_task_metric_api_v2_tasks__task_id__metrics_post
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewMetricRequest'
examples:
example1:
type: QueryRelevance
name: My User Query Relevance
metric_metadata: This is a test metric metadata
example2:
type: QueryRelevance
name: My User Query Relevance with Config
metric_metadata: This is a test metric metadata
config:
relevance_threshold: 0.8
use_llm_judge: false
example3:
type: ResponseRelevance
name: My Response Relevance
metric_metadata: This is a test metric metadata
config:
use_llm_judge: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/MetricResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/tasks/{task_id}/metrics/{metric_id}:
patch:
tags:
- Tasks
summary: Update Task Metric
description: Update a task metric.
operationId: update_task_metric_api_v2_tasks__task_id__metrics__metric_id__patch
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
- name: metric_id
in: path
required: true
schema:
type: string
format: uuid
title: Metric Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMetricRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Tasks
summary: Archive Task Metric
description: Archive a task metric.
operationId: archive_task_metric_api_v2_tasks__task_id__metrics__metric_id__delete
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
format: uuid
title: Task Id
- name: metric_id
in: path
required: true
schema:
type: string
format: uuid
title: Metric Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/tasks/{task_id}/demos/chatbot/stream:
post:
tags:
- Tasks
summary: Stream Demo Chatbot
description: Stream a demo chatbot response.
operationId: stream_demo_chatbot_api_v1_tasks__task_id__demos_chatbot_stream_post
security:
- API Key: []
parameters:
- name: task_id
in: path
required: true
schema:
type: string
title: Task Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChatbotRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
AgentMetadataResponse:
properties:
provider:
$ref: '#/components/schemas/RegisteredAgentProvider'
description: Provider of the registered agent.
gcp_metadata:
anyOf:
- $ref: '#/components/schemas/GCPAgentMetadataResponse'
- type: 'null'
description: Metadata for the agent.
service_names:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Service Names
description: List of service names that send traces to this task
type: object
required:
- provider
title: AgentMetadataResponse
description: Agent metadata for responses.
ToxicityConfig:
properties:
threshold:
type: number
title: Threshold
description: 'Optional. Float (0, 1) indicating the level of tolerable toxicity to consider the rule passed or failed. Min: 0 (no toxic language) Max: 1 (very toxic language). Default: 0.5'
default: 0.5
additionalProperties: false
type: object
title: ToxicityConfig
example:
threshold: 0.5
MetricType:
type: string
enum:
- QueryRelevance
- ResponseRelevance
- ToolSelection
title: MetricType
NewRuleRequest:
properties:
name:
type: string
title: Name
description: Name of the rule
examples:
- SSN Regex Rule
type:
type: string
title: Type
description: Type of the rule. It can only be one of KeywordRule, RegexRule, ModelSensitiveDataRule, ModelHallucinationRule, ModelHallucinationRuleV2, PromptInjectionRule, PIIDataRule
examples:
- RegexRule
apply_to_prompt:
type: boolean
title: Apply To Prompt
description: Boolean value to enable or disable the rule for llm prompt
examples:
- true
apply_to_response:
type: boolean
title: Apply To Response
description: Boolean value to enable or disable the rule for llm response
examples:
- false
config:
anyOf:
- $ref: '#/components/schemas/KeywordsConfig'
- $ref: '#/components/schemas/RegexConfig'
- $ref: '#/components/schemas/ExamplesConfig'
- $ref: '#/components/schemas/ToxicityConfig'
- $ref: '#/components/schemas/PIIConfig'
- type: 'null'
title: Config
description: Config of the rule
type: object
required:
- name
- type
- apply_to_prompt
- apply_to_response
title: NewRuleRequest
example1:
description: Sensitive Data Example with its required configuration
summary: Sensitive Data Example
value:
apply_to_prompt: true
apply_to_response: false
config:
examples:
- example: John has O negative blood group
result: true
- example: Most of the people have A positive blood group
result: false
hint: specific individual's blood types
name: Sensitive Data Rule
type: ModelSensitiveDataRule
example2:
description: Regex Example with its required configuration. Be sure to properly encode requests using JSON libraries. For example, the regex provided encodes to a different string when encoded to account for escape characters.
summary: Regex Example
value:
apply_to_prompt: true
apply_to_response: true
config:
regex_patterns:
- \d{3}-\d{2}-\d{4}
- \d{5}-\d{6}-\d{7}
name: SSN Regex Rule
type: RegexRule
example3:
description: Keywords Rule Example with its required configuration
summary: Keywords Rule Example
value:
apply_to_prompt: true
apply_to_response: true
config:
keywords:
- Blocked_Keyword_1
- Blocked_Keyword_2
name: Blocked Keywords Rule
type: KeywordRule
example4:
description: Prompt Injection Rule Example, no configuration required
summary: Prompt Injection Rule Example
value:
apply_to_prompt: true
apply_to_response: false
name: Prompt Injection Rule
type: PromptInjectionRule
example5:
description: Hallucination Rule Example, no configuration required (This rule is deprecated. Use ModelHallucinationRuleV2 instead.)
summary: Hallucination Rule V1 Example (Deprecated)
value:
apply_to_prompt: false
apply_to_response: true
name: Hallucination Rule
type: ModelHallucinationRule
example6:
description: Hallucination Rule Example, no configuration required
summary: Hallucination Rule V2 Example
value:
apply_to_prompt: false
apply_to_response: true
name: Hallucination Rule
type: ModelHallucinationRuleV2
example7:
description: Hallucination Rule Example, no configuration required. This rule is in beta and must be enabled by the system administrator.
summary: Hallucination Rule V3 Example (Beta)
value:
apply_to_prompt: false
apply_to_response: true
name: Hallucination Rule
type: ModelHallucinationRuleV3
example8:
description: PII Rule Example, no configuration required. "disabled_pii_entities", "confidence_threshold", and "allow_list" accepted. Valid value for "confidence_threshold" is 0.0-1.0. Valid values for "disabled_pii_entities" are CREDIT_CARD,CRYPTO,DATE_TIME,EMAIL_ADDRESS,IBAN_CODE,IP_ADDRESS,NRP,LOCATION,PERSON,PHONE_NUMBER,MEDICAL_LICENSE,URL,US_BANK_NUMBER,US_DRIVER_LICENSE,US_ITIN,US_PASSPORT,US_SSN
summary: PII Rule Example
value:
apply_to_prompt: true
apply_to_response: true
config:
allow_list:
- arthur.ai
- Arthur
confidence_threshold: '0.5'
disabled_pii_entities:
- EMAIL_ADDRESS
- PHONE_NUMBER
name: PII Rule
type: PIIDataRule
example9:
description: Toxicity Rule Example, no configuration required. Threshold accepted
summary: Toxicity Rule Example
value:
apply_to_prompt: true
apply_to_response: true
config:
threshold: 0.5
name: Toxicity Rule
type: ToxicityRule
AgentCreationSource:
anyOf:
- $ref: '#/components/schemas/GCPAgentCreationSource'
- $ref: '#/components/schemas/OTELAgentCreationSource'
- $ref: '#/components/schemas/ManualAgentCreationSource'
title: AgentCreationSource
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
RegisteredAgentProvider:
type: string
enum:
- gcp
- external
title: RegisteredAgentProvider
LLMModel:
properties:
name:
type: string
title: Name
description: Name of the model.
type: object
required:
- name
title: LLMModel
description: Model used by an agent.
UpdateRuleRequest:
properties:
enabled:
type: boolean
title: Enabled
description: 'Boolean value to enable or disable the rule. '
type: object
required:
- enabled
title: UpdateRuleRequest
KeywordsConfig:
properties:
keywords:
items:
type: string
type: array
title: Keywords
description: List of Keywords
type: object
required:
- keywords
title: KeywordsConfig
example:
keywords:
- Blocked_Keyword_1
- Blocked_Keyword_2
MetricResponse:
properties:
id:
type: string
title: Id
description: ID of the Metric
name:
type: string
title: Name
description: Name of the Metric
type:
$ref: '#/components/schemas/MetricType'
description: Type of the Metric
metric_metadata:
type: string
title: Metric Metadata
description: Metadata of the Metric
config:
anyOf:
- type: string
- type: 'null'
title: Config
description: JSON-serialized configuration for the Metric
created_at:
type: string
format: date-time
title: Created At
description: Time the Metric was created in unix milliseconds
updated_at:
type: string
format: date-time
title: Updated At
description: Time the Metric was updated in unix milliseconds
enabled:
anyOf:
- type: boolean
- type: 'null'
title: Enabled
description: Whether the Metric is enabled
type: object
required:
- id
- name
- type
- metric_metadata
- created_at
- updated_at
title: MetricResponse
ManualAgentCreationSource:
properties:
type:
type: string
const: MANUAL
title: Type
default: MANUAL
type: object
title: ManualAgentCreationSource
description: Creation source for manually created tasks.
RuleResponse:
properties:
id:
type: string
title: Id
description: ID of the Rule
name:
type: string
title: Name
description: Name of the Rule
type:
$ref: '#/components/schemas/RuleType'
description: Type of Rule
apply_to_prompt:
type: boolean
title: Apply To Prompt
description: Rule applies to prompt
apply_to_response:
type: boolean
title: Apply To Response
description: Rule applies to response
enabled:
anyOf:
- type: boolean
- type: 'null'
title: Enabled
description: Rule is enabled for the task
scope:
$ref: '#/components/schemas/RuleScope'
description: Scope of the rule. The rule can be set at default level or task level.
created_at:
type: integer
title: Created At
description: Time the rule was created in unix milliseconds
updated_at:
type: integer
title: Updated At
description: Time the rule was updated in unix milliseconds
config:
anyOf:
- $ref: '#/components/schemas/KeywordsConfig'
- $ref: '#/components/schemas/RegexConfig'
- $ref: '#/components/schemas/ExamplesConfig'
- $ref: '#/components/schemas/ToxicityConfig'
- $ref: '#/components/schemas/PIIConfig'
- type: 'null'
title: Config
description: Config of the rule
type: object
required:
- id
- name
- type
- apply_to_prompt
- apply_to_response
- scope
- created_at
- updated_at
title: RuleResponse
TaskResponse:
properties:
id:
type: string
title: Id
description: ' ID of the task'
name:
type: string
title: Name
description: Name of the task
created_at:
type: integer
title: Created At
description: Time the task was created in unix milliseconds
updated_at:
type: integer
title: Updated At
description: Time the task was created in unix milliseconds
is_agentic:
anyOf:
- type: boolean
- type: 'null'
title: Is Agentic
description: Whether the task is agentic or not
is_system_task:
anyOf:
- type: boolean
- type: 'null'
title: Is System Task
description: Whether this is a system-managed task (e.g., for traces without a task_id or service name, or for Arthur-created traces)
default: false
is_autocreated:
anyOf:
- type: boolean
- type: 'null'
title: Is Autocreated
description: Whether this task was automatically created by Arthur
default: false
is_archived:
anyOf:
- type: boolean
- type: 'null'
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthurai/refs/heads/main/openapi/arthurai-tasks-api-openapi.yml