ArthurAI Jobs V1 API
The Jobs V1 API from ArthurAI — 7 operation(s) for jobs v1.
The Jobs V1 API from ArthurAI — 7 operation(s) for jobs v1.
openapi: 3.1.0
info:
title: Arthur GenAI Engine Agent Discovery Jobs V1 API
version: 2.1.688
tags:
- name: Jobs V1
paths:
/api/v1/jobs/{job_id}:
get:
tags:
- Jobs V1
summary: Get Job By Id
description: Returns a single job by ID. Requires project_job_read permission.
operationId: get_job
security:
- OAuth2AuthorizationCode:
- project_job_read
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'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'
patch:
tags:
- Jobs V1
summary: Update Job By Id
description: Updates a single job by ID. Requires project_job_update permission.
operationId: update_job
security:
- OAuth2AuthorizationCode:
- project_job_update
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchJob'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'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/jobs/{job_id}/state:
put:
tags:
- Jobs V1
summary: Update Job State
description: Update job state. Requires project_job_put_state permission.
operationId: put_job_state
security:
- OAuth2AuthorizationCode:
- project_job_put_state
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
- name: job_run_id
in: query
required: true
schema:
type: string
format: uuid
description: Job run ID associated with the state update.
title: Job Run Id
description: Job run ID associated with the state update.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutJobState'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'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/jobs/{job_id}/runs:
get:
tags:
- Jobs V1
summary: Get Job Runs
description: Get Job runs. Required project_job_read_runs permission.
operationId: get_job_runs
security:
- OAuth2AuthorizationCode:
- project_job_read_runs
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_JobRun_'
'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/jobs/{job_id}/runs/{job_run_id}/logs:
post:
tags:
- Jobs V1
summary: Append To Job Logs
description: Append job logs. Requires project_job_append_logs permission.
operationId: post_job_logs
security:
- OAuth2AuthorizationCode:
- project_job_append_logs
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
- name: job_run_id
in: path
required: true
schema:
type: string
format: uuid
description: The job run associated with the logs. Should be formatted as a UUID.
title: Job Run Id
description: The job run associated with the logs. Should be formatted as a UUID.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobLogs'
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'
get:
tags:
- Jobs V1
summary: Get Job Logs
description: Get job logs for a run. Requires project_job_read_logs permission.
operationId: get_job_logs
security:
- OAuth2AuthorizationCode:
- project_job_read_logs
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
- name: job_run_id
in: path
required: true
schema:
type: string
format: uuid
description: The job run associated with the logs. Should be formatted as a UUID.
title: Job Run Id
description: The job run associated with the logs. Should be formatted as a UUID.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: asc
description: Override the sort order used. Optional.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_JobLog_'
'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/jobs/{job_id}/runs/{job_run_id}/errors:
post:
tags:
- Jobs V1
summary: Append To Job Errors
description: Append job errors. Requires project_job_append_errors permission.
operationId: post_job_errors
security:
- OAuth2AuthorizationCode:
- project_job_append_errors
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
- name: job_run_id
in: path
required: true
schema:
type: string
format: uuid
description: The job run associated with the errors. Should be formatted as a UUID.
title: Job Run Id
description: The job run associated with the errors. Should be formatted as a UUID.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobErrors'
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'
get:
tags:
- Jobs V1
summary: Get Job Errors
description: Get job errors. Requires project_job_read_errors permission.
operationId: get_job_errors
security:
- OAuth2AuthorizationCode:
- project_job_read_errors
parameters:
- name: job_id
in: path
required: true
schema:
type: string
format: uuid
title: Job Id
- name: job_run_id
in: path
required: true
schema:
type: string
format: uuid
description: The job run associated with the errors. Should be formatted as a UUID.
title: Job Run Id
description: The job run associated with the errors. Should be formatted as a UUID.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_JobError_'
'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}/jobs:
get:
tags:
- Jobs V1
summary: List Jobs
description: 'Returns jobs in the project 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_jobs permission. Note: exclude_kinds takes precedence over kinds and will exclude jobs even if they are in kinds.'
operationId: get_jobs
security:
- OAuth2AuthorizationCode:
- project_list_jobs
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/JobsSort'
description: Override the field used for sorting the returned list. Optional.
default: queued_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: duration_sec_greater_than
in: query
required: false
schema:
type: integer
description: Filter the results for jobs that ran for greater than or equal to this number of seconds. Optional.
title: Duration Sec Greater Than
description: Filter the results for jobs that ran for greater than or equal to this number of seconds. Optional.
- name: duration_sec_less_than
in: query
required: false
schema:
type: integer
description: Filter the results for the jobs that ran for less than or equal to this number of seconds. Optional.
title: Duration Sec Less Than
description: Filter the results for the jobs that ran for less than or equal to this number of seconds. Optional.
- name: started_before
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that started before this timestamp. Optional.
title: Started Before
description: Filter the results for the jobs that started before this timestamp. Optional.
- name: started_after
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that started after this timestamp. Optional.
title: Started After
description: Filter the results for the jobs that started after this timestamp. Optional.
- name: queued_before
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that were queued before this timestamp. Optional.
title: Queued Before
description: Filter the results for the jobs that were queued before this timestamp. Optional.
- name: queued_after
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that were queued after this timestamp. Optional.
title: Queued After
description: Filter the results for the jobs that were queued after this timestamp. Optional.
- name: ready_before
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that are ready before this timestamp. Optional.
title: Ready Before
description: Filter the results for the jobs that are ready before this timestamp. Optional.
- name: ready_before_current_time
in: query
required: false
schema:
type: boolean
description: When true, filters jobs ready before the current server time. Takes precedence over ready_before. Optional.
default: false
title: Ready Before Current Time
description: When true, filters jobs ready before the current server time. Takes precedence over ready_before. Optional.
- name: ready_after
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that are ready after this timestamp. Optional.
title: Ready After
description: Filter the results for the jobs that are ready after this timestamp. Optional.
- name: ready_after_current_time
in: query
required: false
schema:
type: boolean
description: When true, filters jobs ready after the current server time. Takes precedence over ready_after. Optional.
default: false
title: Ready After Current Time
description: When true, filters jobs ready after the current server time. Takes precedence over ready_after. Optional.
- name: finished_before
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that finished before this timestamp. Optional.
title: Finished Before
description: Filter the results for the jobs that finished before this timestamp. Optional.
- name: finished_after
in: query
required: false
schema:
type: string
format: date-time
description: Filter the results for the jobs that finished after this timestamp. Optional.
title: Finished After
description: Filter the results for the jobs that finished after this timestamp. Optional.
- name: kinds
in: query
required: false
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/JobKind'
description: Filter the results for the jobs of this kind. Optional.
title: Kinds
description: Filter the results for the jobs of this kind. Optional.
- name: exclude_kinds
in: query
required: false
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/JobKind'
description: Exclude jobs of these kinds. Takes precedence over kinds.
title: Exclude Kinds
description: Exclude jobs of these kinds. Takes precedence over kinds.
- name: states
in: query
required: false
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/JobState'
description: Filter the results for jobs in these states. Optional.
title: States
description: Filter the results for jobs in these states. Optional.
- name: error_count_above
in: query
required: false
schema:
type: integer
description: Filter the results for the jobs that had greater than or equal to this many errors. Optional.
title: Error Count Above
description: Filter the results for the jobs that had greater than or equal to this many errors. Optional.
- name: data_plane_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter the results for the jobs that were ran on this dataplane. Optional.
title: Data Plane Id
description: Filter the results for the jobs that were ran on this dataplane. Optional.
- name: schedule_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter the results for jobs associated with this schedule ID. Optional.
title: Schedule Id
description: Filter the results for jobs associated with this schedule ID. Optional.
- name: trigger_type
in: query
required: false
schema:
$ref: '#/components/schemas/JobTrigger'
description: Filter the results for the jobs that were started by this trigger type. Optional.
description: Filter the results for the jobs that were started by this trigger type. Optional.
- name: triggered_by_user_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter the results for the jobs that started by this user id. Only valid when trigger_type = 'user'. Optional.
title: Triggered By User Id
description: Filter the results for the jobs that started by this user id. Only valid when trigger_type = 'user'. Optional.
- name: triggered_by_user_email
in: query
required: false
schema:
type: string
description: Filter the results for the jobs that started by this user email. Only valid when trigger_type = 'user'. Optional.
format: email
title: Triggered By User Email
description: Filter the results for the jobs that started by this user email. Only valid when trigger_type = 'user'. Optional.
- name: model_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter the results for jobs associated with this model ID. Includes jobs associated with datasets used by the model. Optional.
title: Model Id
description: Filter the results for jobs associated with this model ID. Includes jobs associated with datasets used by the model. Optional.
- name: nonce
in: query
required: false
schema:
type: string
description: Filter the results for jobs that match a job nonce used to ensure exactly once execution.
title: Nonce
description: Filter the results for jobs that match a job nonce used to ensure exactly once execution.
- 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/InfiniteResourceList_Job_'
'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'
post:
tags:
- Jobs V1
summary: Submit Jobs Batch
description: Submit new jobs to run. Requires project_create_job permission.
operationId: post_submit_jobs_batch
security:
- OAuth2AuthorizationCode:
- project_create_job
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/PostJobBatch'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/JobsBatch'
'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'
/api/v1/data_planes/{data_plane_id}/jobs/next:
post:
tags:
- Jobs V1
summary: Dequeue Job
description: Returns the next available job for processing from the data plane's job queue. Requires data_plane_jobs_dequeue_next permission.
operationId: post_dequeue_job
security:
- OAuth2AuthorizationCode:
- data_plane_jobs_dequeue_next
parameters:
- name: data_plane_id
in: path
required: true
schema:
type: string
format: uuid
title: Data Plane Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobDequeueParameters'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/JobRun'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'204':
description: No Content
'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:
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
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:
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthurai/refs/heads/main/openapi/arthurai-jobs-v1-api-openapi.yml