Files
Rdmclin2 1334209461 ✨ feat(openapi): expose eval resources and external run lifecycle (#19428)
* ✨ feat(openapi): expose eval resources and external run lifecycle

* 🐛 fix(openapi): report and aggregate shared eval dataset cases
2026-09-11 17:00:23 +08:00

19085 lines
607 KiB
YAML

openapi: 3.1.0
components:
schemas:
ApiError:
additionalProperties: false
properties:
error:
type: string
success:
const: false
type: boolean
timestamp:
format: date-time
type: string
required:
- error
- success
- timestamp
type: object
ApiKey:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
enabled:
type:
- boolean
- "null"
expiresAt:
format: date-time
type:
- string
- "null"
id:
type: string
lastUsedAt:
format: date-time
type:
- string
- "null"
name:
type: string
scopes:
items:
enum:
- "*"
- agent:read
- agent:write
- eval:read
- eval:write
- chat:read
- chat:write
- model:invoke
- model:read
- model:write
- file:read
- file:write
- knowledge:read
- knowledge:write
- mcp:read
- mcp:write
- usage:read
- workspace:read
- workspace:write
- user:read
- user:write
type: string
type:
- array
- "null"
updatedAt:
format: date-time
type: string
required:
- id
- name
- createdAt
- updatedAt
type: object
Agent:
additionalProperties: false
properties:
avatar:
type:
- string
- "null"
chatConfig:
additionalProperties: true
type:
- object
- "null"
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
id:
type: string
model:
type:
- string
- "null"
params:
additionalProperties: true
type:
- object
- "null"
plugins:
type: array
items:
type: object
additionalProperties: false
properties:
identifier:
type: string
mode:
type: string
enum:
- pinned
- auto
- disabled
required:
- identifier
- mode
provider:
type:
- string
- "null"
slug:
type:
- string
- "null"
systemRole:
type:
- string
- "null"
title:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
required:
- id
- createdAt
- updatedAt
type: object
AgentGroup:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
id:
type: string
name:
type: string
sort:
type:
- integer
- "null"
updatedAt:
format: date-time
type: string
required:
- id
- name
- createdAt
- updatedAt
type: object
ChatResponse:
additionalProperties: false
properties:
content:
type: string
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
usage:
additionalProperties: false
properties:
completion_tokens:
type:
- integer
- "null"
prompt_tokens:
type:
- integer
- "null"
total_tokens:
type:
- integer
- "null"
type:
- object
- "null"
required:
- content
type: object
EvalRun:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
datasetId:
type: string
id:
type: string
metrics:
additionalProperties: true
type:
- object
- "null"
name:
type:
- string
- "null"
startedAt:
format: date-time
type:
- string
- "null"
status:
enum:
- idle
- pending
- running
- completed
- failed
- aborted
- external
type: string
targetAgentId:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
required:
- id
- datasetId
- status
- createdAt
- updatedAt
type: object
EvalRunResult:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
input:
type: string
passed:
type:
- boolean
- "null"
result:
additionalProperties: true
type:
- object
- "null"
score:
type:
- number
- "null"
status:
type:
- string
- "null"
testCaseId:
type: string
topicId:
type: string
required:
- testCaseId
- topicId
- input
- createdAt
type: object
File:
additionalProperties: true
properties:
createdAt:
format: date-time
type: string
fileType:
type: string
id:
type: string
metadata:
additionalProperties: true
type:
- object
- "null"
name:
type: string
parentId:
type:
- string
- "null"
size:
type: integer
source:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
url:
type: string
visibility:
enum:
- private
- public
type: string
required:
- id
- fileType
- name
- size
- url
- createdAt
- updatedAt
type: object
KnowledgeBase:
additionalProperties: true
properties:
avatar:
type:
- string
- "null"
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
id:
type: string
isPublic:
type:
- boolean
- "null"
name:
type: string
settings:
additionalProperties: true
type:
- object
- "null"
type:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
visibility:
enum:
- private
- public
type: string
required:
- id
- name
- createdAt
- updatedAt
type: object
Message:
additionalProperties: true
properties:
agentId:
type:
- string
- "null"
content:
type:
- string
- "null"
createdAt:
format: date-time
type: string
error:
additionalProperties: true
type:
- object
- "null"
favorite:
type:
- boolean
- "null"
id:
type: string
metadata:
additionalProperties: true
type:
- object
- "null"
model:
type:
- string
- "null"
parentId:
type:
- string
- "null"
provider:
type:
- string
- "null"
reasoning:
additionalProperties: true
type:
- object
- "null"
role:
type: string
search:
additionalProperties: true
type:
- object
- "null"
threadId:
type:
- string
- "null"
tools:
additionalProperties: true
type:
- object
- "null"
topicId:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
usage:
additionalProperties: true
type:
- object
- "null"
required:
- id
- role
- createdAt
- updatedAt
type: object
McpServer:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
hasCredentials:
type: boolean
id:
format: uuid
type: string
identifier:
type: string
isEnabled:
type: boolean
name:
type: string
serverUrl:
format: uri
type: string
status:
enum:
- connected
- disconnected
- error
type: string
tools:
items:
additionalProperties: false
properties:
description:
type:
- string
- "null"
id:
format: uuid
type: string
inputSchema:
additionalProperties: true
type:
- object
- "null"
name:
type: string
permission:
enum:
- auto
- needs_approval
- disabled
type: string
required:
- id
- name
- permission
type: object
type: array
updatedAt:
format: date-time
type: string
required:
- id
- identifier
- name
- serverUrl
- status
- isEnabled
- hasCredentials
- tools
- createdAt
- updatedAt
type: object
Model:
additionalProperties: false
properties:
abilities:
additionalProperties: true
type:
- object
- "null"
config:
additionalProperties: true
type:
- object
- "null"
contextWindowTokens:
type:
- integer
- "null"
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
displayName:
type:
- string
- "null"
enabled:
type:
- boolean
- "null"
id:
type: string
organization:
type:
- string
- "null"
parameters:
additionalProperties: true
type:
- object
- "null"
pricing:
additionalProperties: true
type:
- object
- "null"
providerId:
type: string
releasedAt:
type:
- string
- "null"
settings:
additionalProperties: true
type:
- object
- "null"
sort:
type:
- integer
- "null"
source:
type:
- string
- "null"
type:
type: string
updatedAt:
format: date-time
type: string
required:
- id
- providerId
- type
- createdAt
- updatedAt
type: object
Permission:
additionalProperties: false
properties:
category:
type: string
code:
type: string
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
id:
type: string
isActive:
type:
- boolean
- "null"
name:
type: string
updatedAt:
format: date-time
type: string
required:
- id
- code
- name
- category
- createdAt
- updatedAt
type: object
Provider:
additionalProperties: false
properties:
checkModel:
type:
- string
- "null"
config:
additionalProperties: true
type:
- object
- "null"
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
enabled:
type:
- boolean
- "null"
fetchOnClient:
type:
- boolean
- "null"
id:
type: string
logo:
type:
- string
- "null"
name:
type:
- string
- "null"
settings:
additionalProperties: true
type:
- object
- "null"
sort:
type:
- integer
- "null"
source:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
required:
- id
- createdAt
- updatedAt
type: object
Role:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
displayName:
type: string
id:
type: string
isActive:
type:
- boolean
- "null"
isSystem:
type:
- boolean
- "null"
name:
type: string
updatedAt:
format: date-time
type: string
required:
- id
- name
- displayName
- createdAt
- updatedAt
type: object
Topic:
additionalProperties: true
properties:
agentId:
type:
- string
- "null"
completedAt:
format: date-time
type:
- string
- "null"
content:
type:
- string
- "null"
cost:
additionalProperties: true
type:
- object
- "null"
createdAt:
format: date-time
type: string
description:
type:
- string
- "null"
favorite:
type:
- boolean
- "null"
groupId:
type:
- string
- "null"
historySummary:
type:
- string
- "null"
id:
type: string
metadata:
additionalProperties: true
type:
- object
- "null"
mode:
type:
- string
- "null"
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
sessionId:
type:
- string
- "null"
status:
type:
- string
- "null"
title:
type:
- string
- "null"
totalCost:
type:
- number
- "null"
totalInputTokens:
type:
- integer
- "null"
totalOutputTokens:
type:
- integer
- "null"
totalTokens:
type:
- integer
- "null"
trigger:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
usage:
additionalProperties: true
type:
- object
- "null"
required:
- id
- createdAt
- updatedAt
type: object
User:
additionalProperties: true
properties:
avatar:
type:
- string
- "null"
createdAt:
format: date-time
type: string
email:
type:
- string
- "null"
firstName:
type:
- string
- "null"
fullName:
type:
- string
- "null"
id:
type: string
isOnboarded:
type:
- boolean
- "null"
lastName:
type:
- string
- "null"
phone:
type:
- string
- "null"
updatedAt:
format: date-time
type: string
username:
type:
- string
- "null"
required:
- id
- createdAt
- updatedAt
type: object
Usage:
additionalProperties: false
properties:
available:
type: boolean
currency:
const: USD
type: string
daily:
items:
additionalProperties: false
properties:
date:
type: string
value:
type: number
required:
- date
- value
type: object
type: array
period:
additionalProperties: false
properties:
since:
format: date-time
type: string
until:
format: date-time
type: string
required:
- since
- until
type: object
remainingBalance:
type:
- number
- "null"
scope:
enum:
- personal
- workspace
type: string
spent:
type: number
usageByType:
items:
additionalProperties: false
properties:
count:
type:
- integer
- "null"
spend:
type: number
type:
type: string
required:
- count
- spend
- type
type: object
type: array
required:
- available
- currency
- daily
- period
- remainingBalance
- scope
- spent
- usageByType
type: object
securitySchemes:
bearerAuth:
bearerFormat: API Key (sk-lh-...) or OIDC JWT
scheme: bearer
type: http
info:
title: LobeHub API
description: LobeHub platform REST API. Generated from `packages/openapi` routes
— do not edit openapi.yml by hand; run `bun generate:openapi` instead.
version: 1.0.0
security:
- bearerAuth: []
servers:
- description: LobeHub Cloud
url: https://app.lobehub.com
paths:
/api/v1/health:
get:
operationId: getApiV1Health
summary: Health check
tags:
- health
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
service:
type: string
status:
const: ok
type: string
timestamp:
format: date-time
type: string
required:
- service
- status
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
/api/v1/agent-groups:
get:
operationId: getApiV1AgentGroups
summary: Get agent group list
tags:
- agent-groups
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
items:
$ref: "#/components/schemas/AgentGroup"
type: array
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
post:
operationId: postApiV1AgentGroups
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
sort:
type:
- number
- "null"
required:
- name
responses:
"200":
description: Response
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
id:
type: string
required:
- id
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agent-groups
/api/v1/agent-groups/{id}:
get:
operationId: getApiV1AgentGroupsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/AgentGroup"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agent-groups
patch:
operationId: patchApiV1AgentGroupsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
anyOf:
- type: string
minLength: 1
- type: "null"
sort:
type:
- number
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/AgentGroup"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agent-groups
delete:
operationId: deleteApiV1AgentGroupsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agent-groups
/api/v1/agents:
get:
operationId: getApiV1Agents
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
agents:
items:
$ref: "#/components/schemas/Agent"
type: array
total:
minimum: 0
type: integer
required:
- agents
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agents
post:
operationId: postApiV1Agents
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
agencyConfig:
anyOf:
- type: object
properties:
enableGraphMode:
type:
- boolean
- "null"
graph:
anyOf:
- type: object
properties:
description:
type: string
fields:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
desc:
type: string
minLength: 1
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- desc
- schema
maxInstructionCount:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
name:
type: string
minLength: 1
nodes:
type: object
propertyNames:
type: string
additionalProperties:
oneOf:
- type: object
properties:
allowedToolApiNames:
type: array
items:
type: string
minLength: 1
maxAgentSteps:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
type:
type: string
const: agent
required:
- type
- type: object
properties:
type:
type: string
const: llm
required:
- type
terminal:
type: string
minLength: 1
edges:
type: array
items:
type: object
properties:
condition:
type: object
propertyNames:
type: string
additionalProperties: {}
from:
type: string
input:
type: object
properties:
fields:
type: array
items:
type: object
properties:
desc:
type: string
minLength: 1
field:
type: string
minLength: 1
required:
type: boolean
from:
type: string
minLength: 1
required:
- field
- from
output:
type: object
properties:
fields:
type: array
items:
type: object
properties:
desc:
type: string
minLength: 1
field:
type: string
minLength: 1
required:
type: boolean
required:
- field
instruction:
type: string
minLength: 1
instruction:
type: string
minLength: 1
maxTraversals:
type: integer
minimum: 0
maximum: 9007199254740991
to:
type: string
required:
- from
- instruction
- to
required:
- fields
- name
- nodes
- terminal
- edges
- type: "null"
- type: "null"
avatar:
type:
- string
- "null"
chatConfig:
anyOf:
- type: object
properties:
disableContextCaching:
type:
- boolean
- "null"
displayMode:
anyOf:
- type: string
enum:
- chat
- docs
- type: "null"
enableCompressHistory:
type:
- boolean
- "null"
enableHistoryCount:
type:
- boolean
- "null"
enableMaxTokens:
type:
- boolean
- "null"
enableReasoning:
type:
- boolean
- "null"
enableReasoningEffort:
type:
- boolean
- "null"
historyCount:
type:
- number
- "null"
reasoningBudgetToken:
type:
- number
- "null"
reasoningEffort:
anyOf:
- type: string
enum:
- low
- medium
- high
- type: "null"
searchFCModel:
type:
- string
- "null"
searchMode:
anyOf:
- type: string
enum:
- disabled
- enabled
- type: "null"
useModelBuiltinSearch:
type:
- boolean
- "null"
- type: "null"
description:
type:
- string
- "null"
model:
type:
- string
- "null"
plugins:
maxItems: 100
type: array
items:
type: object
properties:
identifier:
type: string
minLength: 1
maxLength: 255
mode:
type: string
enum:
- pinned
- auto
- disabled
required:
- identifier
additionalProperties: false
params:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
provider:
type:
- string
- "null"
systemRole:
type:
- string
- "null"
title:
type: string
minLength: 1
required:
- title
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Agent"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agents
/api/v1/agents/{id}:
get:
operationId: getApiV1AgentsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Agent"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agents
patch:
operationId: patchApiV1AgentsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
agencyConfig:
anyOf:
- type: object
properties:
enableGraphMode:
type:
- boolean
- "null"
graph:
anyOf:
- type: object
properties:
description:
type: string
fields:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
desc:
type: string
minLength: 1
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- desc
- schema
maxInstructionCount:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
name:
type: string
minLength: 1
nodes:
type: object
propertyNames:
type: string
additionalProperties:
oneOf:
- type: object
properties:
allowedToolApiNames:
type: array
items:
type: string
minLength: 1
maxAgentSteps:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
type:
type: string
const: agent
required:
- type
- type: object
properties:
type:
type: string
const: llm
required:
- type
terminal:
type: string
minLength: 1
edges:
type: array
items:
type: object
properties:
condition:
type: object
propertyNames:
type: string
additionalProperties: {}
from:
type: string
input:
type: object
properties:
fields:
type: array
items:
type: object
properties:
desc:
type: string
minLength: 1
field:
type: string
minLength: 1
required:
type: boolean
from:
type: string
minLength: 1
required:
- field
- from
output:
type: object
properties:
fields:
type: array
items:
type: object
properties:
desc:
type: string
minLength: 1
field:
type: string
minLength: 1
required:
type: boolean
required:
- field
instruction:
type: string
minLength: 1
instruction:
type: string
minLength: 1
maxTraversals:
type: integer
minimum: 0
maximum: 9007199254740991
to:
type: string
required:
- from
- instruction
- to
required:
- fields
- name
- nodes
- terminal
- edges
- type: "null"
- type: "null"
avatar:
type:
- string
- "null"
chatConfig:
anyOf:
- type: object
properties:
disableContextCaching:
type:
- boolean
- "null"
displayMode:
anyOf:
- type: string
enum:
- chat
- docs
- type: "null"
enableCompressHistory:
type:
- boolean
- "null"
enableHistoryCount:
type:
- boolean
- "null"
enableMaxTokens:
type:
- boolean
- "null"
enableReasoning:
type:
- boolean
- "null"
enableReasoningEffort:
type:
- boolean
- "null"
historyCount:
type:
- number
- "null"
reasoningBudgetToken:
type:
- number
- "null"
reasoningEffort:
anyOf:
- type: string
enum:
- low
- medium
- high
- type: "null"
searchFCModel:
type:
- string
- "null"
searchMode:
anyOf:
- type: string
enum:
- disabled
- enabled
- type: "null"
useModelBuiltinSearch:
type:
- boolean
- "null"
- type: "null"
description:
type:
- string
- "null"
model:
type:
- string
- "null"
plugins:
maxItems: 100
type: array
items:
type: object
properties:
identifier:
type: string
minLength: 1
maxLength: 255
mode:
type: string
enum:
- pinned
- auto
- disabled
required:
- identifier
additionalProperties: false
params:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
provider:
type:
- string
- "null"
systemRole:
type:
- string
- "null"
title:
type: string
minLength: 1
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Agent"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agents
delete:
operationId: deleteApiV1AgentsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- agents
/api/v1/agents/{id}/duplicate:
post:
operationId: postApiV1AgentsByIdDuplicate
summary: Duplicate agent
tags:
- agents
responses:
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 255
additionalProperties: false
/api/v1/api-keys:
get:
operationId: getApiV1ApiKeys
summary: List API keys
tags:
- api-keys
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
items:
$ref: "#/components/schemas/ApiKey"
type: array
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
post:
operationId: postApiV1ApiKeys
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expiresAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
- type: "null"
name:
type: string
minLength: 1
maxLength: 256
scopes:
anyOf:
- minItems: 1
type: array
items:
type: string
enum:
- "*"
- agent:read
- agent:write
- eval:read
- eval:write
- chat:read
- chat:write
- model:invoke
- model:read
- model:write
- file:read
- file:write
- knowledge:read
- knowledge:write
- mcp:read
- mcp:write
- usage:read
- workspace:read
- workspace:write
- user:read
- user:write
- type: "null"
required:
- name
additionalProperties: false
responses:
"200":
description: Response
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
createdAt:
format: date-time
type: string
enabled:
type:
- boolean
- "null"
expiresAt:
format: date-time
type:
- string
- "null"
id:
type: string
lastUsedAt:
format: date-time
type:
- string
- "null"
name:
type: string
scopes:
items:
enum:
- "*"
- agent:read
- agent:write
- eval:read
- eval:write
- chat:read
- chat:write
- model:invoke
- model:read
- model:write
- file:read
- file:write
- knowledge:read
- knowledge:write
- mcp:read
- mcp:write
- usage:read
- workspace:read
- workspace:write
- user:read
- user:write
type: string
type:
- array
- "null"
updatedAt:
format: date-time
type: string
key:
type: string
required:
- id
- name
- key
- createdAt
- updatedAt
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- api-keys
/api/v1/api-keys/{id}:
get:
operationId: getApiV1ApiKeysById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/ApiKey"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- api-keys
patch:
operationId: patchApiV1ApiKeysById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
expiresAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
- type: "null"
name:
type: string
minLength: 1
maxLength: 256
additionalProperties: false
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/ApiKey"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- api-keys
delete:
operationId: deleteApiV1ApiKeysById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- api-keys
/api/v1/chat:
post:
operationId: postApiV1Chat
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
frequency_penalty:
type: number
minimum: -2
maximum: 2
max_tokens:
anyOf:
- type: integer
minimum: 1
maximum: 1000000
- type: "null"
messages:
minItems: 1
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
minLength: 1
maxLength: 1000000
role:
type: string
enum:
- user
- assistant
- system
required:
- content
- role
model:
anyOf:
- type: string
minLength: 1
maxLength: 150
- type: "null"
presence_penalty:
type: number
minimum: -2
maximum: 2
provider:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
stream:
type:
- boolean
- "null"
temperature:
anyOf:
- type: number
minimum: 0
maximum: 2
- type: "null"
top_p:
type: number
minimum: 0
maximum: 1
required:
- messages
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/ChatResponse"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- chat
/api/v1/chat/translate:
post:
operationId: postApiV1ChatTranslate
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
minLength: 1
maxLength: 32
model:
anyOf:
- type: string
minLength: 1
maxLength: 150
- type: "null"
provider:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
text:
type: string
minLength: 1
maxLength: 1000000
to:
type: string
minLength: 1
maxLength: 32
required:
- text
- to
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
translatedText:
type: string
required:
- translatedText
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- chat
/api/v1/chat/generate-reply:
post:
operationId: postApiV1ChatGenerateReply
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
agentId:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
chatConfig:
anyOf:
- type: object
properties:
disableContextCaching:
type:
- boolean
- "null"
displayMode:
anyOf:
- type: string
enum:
- chat
- docs
- type: "null"
enableCompressHistory:
type:
- boolean
- "null"
enableHistoryCount:
type:
- boolean
- "null"
enableMaxTokens:
type:
- boolean
- "null"
enableReasoning:
type:
- boolean
- "null"
enableReasoningEffort:
type:
- boolean
- "null"
historyCount:
anyOf:
- type: integer
minimum: 0
maximum: 1000
- type: "null"
inputTemplate:
anyOf:
- type: string
maxLength: 100000
- type: "null"
reasoningBudgetToken:
anyOf:
- type: integer
minimum: 0
maximum: 1000000
- type: "null"
reasoningEffort:
anyOf:
- type: string
enum:
- low
- medium
- high
- type: "null"
searchMode:
anyOf:
- type: string
enum:
- off
- on
- auto
- type: "null"
thinkingBudget:
anyOf:
- type: integer
minimum: 0
maximum: 1000000
- type: "null"
useModelBuiltinSearch:
type:
- boolean
- "null"
- type: "null"
conversationHistory:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
minLength: 1
maxLength: 1000000
role:
type: string
enum:
- user
- assistant
- system
required:
- content
- role
model:
anyOf:
- type: string
minLength: 1
maxLength: 150
- type: "null"
provider:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
sessionId:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
userMessage:
type: string
minLength: 1
maxLength: 1000000
required:
- conversationHistory
- sessionId
- userMessage
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
reply:
type: string
required:
- reply
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- chat
/api/v1/eval/runs:
post:
operationId: postApiV1EvalRuns
description: Queues an asynchronous QStash-backed evaluation run and returns
immediately.
summary: Create an eval run
tags:
- eval
responses:
"202":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
config:
type: object
propertyNames:
type: string
additionalProperties: {}
executionMode:
type: string
enum:
- internal
- external
datasetId:
type: string
experimentId:
type:
- string
- "null"
parentRunId:
type:
- string
- "null"
status:
type: string
enum:
- idle
- pending
- running
- external
- completed
- failed
- aborted
targetAgentId:
type:
- string
- "null"
name:
type:
- string
- "null"
metrics:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
startedAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
required:
- id
- createdAt
- updatedAt
- config
- executionMode
- datasetId
- experimentId
- parentRunId
- status
- targetAgentId
- name
- metrics
- startedAt
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
config:
type: object
properties:
maxConcurrency:
type: integer
minimum: 1
maximum: 100
caseSelection:
oneOf:
- type: object
properties:
mode:
type: string
const: all
required:
- mode
additionalProperties: false
- type: object
properties:
mode:
type: string
enum:
- include
- exclude
caseIds:
minItems: 1
maxItems: 10000
type: array
items:
type: string
minLength: 1
required:
- mode
- caseIds
additionalProperties: false
k:
type: integer
minimum: 1
maximum: 10
maxSteps:
type: integer
minimum: 1
maximum: 1000
timeout:
type: integer
minimum: 60000
maximum: 21600000
additionalProperties: false
executionMode:
type: string
enum:
- internal
- external
experimentId:
type: string
minLength: 1
maxLength: 128
datasetId:
type: string
minLength: 1
maxLength: 128
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
targetAgentId:
type: string
minLength: 1
maxLength: 128
required:
- datasetId
- targetAgentId
additionalProperties: false
get:
operationId: getApiV1EvalRuns
summary: List eval runs
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
runs:
type: array
items:
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
config:
type: object
propertyNames:
type: string
additionalProperties: {}
executionMode:
type: string
enum:
- internal
- external
datasetId:
type: string
experimentId:
type:
- string
- "null"
parentRunId:
type:
- string
- "null"
status:
type: string
enum:
- idle
- pending
- running
- external
- completed
- failed
- aborted
targetAgentId:
type:
- string
- "null"
name:
type:
- string
- "null"
metrics:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
startedAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
required:
- id
- createdAt
- updatedAt
- config
- executionMode
- datasetId
- experimentId
- parentRunId
- status
- targetAgentId
- name
- metrics
- startedAt
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- runs
- total
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: experimentId
schema:
type: string
minLength: 1
maxLength: 128
- in: query
name: datasetId
schema:
type: string
minLength: 1
maxLength: 128
- in: query
name: status
schema:
type: string
enum:
- idle
- pending
- running
- completed
- failed
- aborted
- external
/api/v1/eval/runs/{id}/topics:
get:
operationId: getApiV1EvalRunsByIdTopics
summary: List topic results of an eval run
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
topics:
type: array
items:
type: object
properties:
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
evalResult:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
passed:
type:
- boolean
- "null"
runId:
type: string
score:
type:
- number
- "null"
status:
type:
- string
- "null"
testCaseId:
type: string
topicId:
type: string
input:
type: string
required:
- createdAt
- evalResult
- passed
- runId
- score
- status
- testCaseId
- topicId
- input
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
runId:
type: string
required:
- topics
- total
- runId
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
/api/v1/eval/runs/{id}:
get:
operationId: getApiV1EvalRunsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
config:
type: object
propertyNames:
type: string
additionalProperties: {}
executionMode:
type: string
enum:
- internal
- external
datasetId:
type: string
experimentId:
type:
- string
- "null"
parentRunId:
type:
- string
- "null"
status:
type: string
enum:
- idle
- pending
- running
- external
- completed
- failed
- aborted
targetAgentId:
type:
- string
- "null"
name:
type:
- string
- "null"
metrics:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
startedAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
required:
- id
- createdAt
- updatedAt
- config
- executionMode
- datasetId
- experimentId
- parentRunId
- status
- targetAgentId
- name
- metrics
- startedAt
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- eval
/api/v1/eval/runs/{id}/results:
get:
operationId: getApiV1EvalRunsByIdResults
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
results:
type: array
items:
type: object
properties:
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
passed:
type:
- boolean
- "null"
score:
type:
- number
- "null"
status:
type:
- string
- "null"
testCaseId:
type: string
topicId:
type: string
input:
type: string
result:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- createdAt
- passed
- score
- status
- testCaseId
- topicId
- input
- result
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
runId:
type: string
required:
- results
- total
- runId
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- eval
post:
operationId: postApiV1EvalRunsByIdResults
summary: reportBatch
tags:
- eval
description: "Claim: one pending worker succeeds, others receive 409. Reports:
identical replays succeed; different results conflict. Batches are
atomic. External workers can supply testCaseId to associate their own
topic with a dataset case on first report. Retry: only terminal runs,
concurrent repeats conflict."
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
items:
type: array
items:
type: object
properties:
idempotent:
type: boolean
reportedThreads:
type: number
runId:
type: string
runStatus:
type: string
success:
type: boolean
threadId:
type: string
topicFinalized:
type: boolean
topicId:
type: string
totalThreads:
type: number
required:
- idempotent
- reportedThreads
- runId
- success
- topicFinalized
- topicId
- totalThreads
additionalProperties: false
runId:
type: string
runStatus:
type: string
success:
type: boolean
required:
- items
- runId
- runStatus
- success
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
minItems: 1
maxItems: 100
type: array
items:
type: object
properties:
testCaseId:
type: string
minLength: 1
maxLength: 128
correct:
type: boolean
score:
type: number
result:
type: object
propertyNames:
type: string
additionalProperties: {}
threadId:
type: string
minLength: 1
maxLength: 128
topicId:
type: string
minLength: 1
maxLength: 128
required:
- correct
- score
- topicId
additionalProperties: false
required:
- items
additionalProperties: false
/api/v1/eval/benchmarks:
post:
operationId: postApiV1EvalBenchmarks
summary: createBenchmark
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
type:
- string
- "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
pattern:
type: string
required:
- pattern
additionalProperties: false
- type: object
properties:
code:
type: string
required:
- code
additionalProperties: false
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
additionalProperties: false
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
isSystem:
type: boolean
required:
- id
- identifier
- name
- description
- metadata
- referenceUrl
- rubrics
- createdAt
- updatedAt
- isSystem
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
anyOf:
- type: string
maxLength: 10000
- type: "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
anyOf:
- type: string
format: uri
- type: "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
- type: object
properties:
pattern:
type: string
required:
- pattern
- type: object
properties:
code:
type: string
required:
- code
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
required:
- identifier
- name
additionalProperties: false
get:
operationId: getApiV1EvalBenchmarks
summary: listBenchmarks
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
benchmarks:
type: array
items:
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
type:
- string
- "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
pattern:
type: string
required:
- pattern
additionalProperties: false
- type: object
properties:
code:
type: string
required:
- code
additionalProperties: false
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
additionalProperties: false
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
isSystem:
type: boolean
required:
- id
- identifier
- name
- description
- metadata
- referenceUrl
- rubrics
- createdAt
- updatedAt
- isSystem
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- benchmarks
- total
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
/api/v1/eval/benchmarks/{id}:
get:
operationId: getApiV1EvalBenchmarksById
summary: getBenchmark
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
type:
- string
- "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
pattern:
type: string
required:
- pattern
additionalProperties: false
- type: object
properties:
code:
type: string
required:
- code
additionalProperties: false
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
additionalProperties: false
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
isSystem:
type: boolean
required:
- id
- identifier
- name
- description
- metadata
- referenceUrl
- rubrics
- createdAt
- updatedAt
- isSystem
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
patch:
operationId: patchApiV1EvalBenchmarksById
summary: updateBenchmark
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
type:
- string
- "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
pattern:
type: string
required:
- pattern
additionalProperties: false
- type: object
properties:
code:
type: string
required:
- code
additionalProperties: false
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
additionalProperties: false
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
isSystem:
type: boolean
required:
- id
- identifier
- name
- description
- metadata
- referenceUrl
- rubrics
- createdAt
- updatedAt
- isSystem
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
description:
anyOf:
- type: string
maxLength: 10000
- type: "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
referenceUrl:
anyOf:
- type: string
format: uri
- type: "null"
rubrics:
default: []
maxItems: 100
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
name:
type: string
minLength: 1
maxLength: 255
type:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
weight:
type: number
minimum: 0
threshold:
type: number
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
config:
anyOf:
- type: object
properties:
value:
type: string
threshold:
type: number
required:
- value
additionalProperties: false
- type: object
properties:
value:
type: number
tolerance:
type: number
required:
- value
- type: object
properties:
pattern:
type: string
required:
- pattern
- type: object
properties:
code:
type: string
required:
- code
- type: object
properties:
criteria:
type: string
model:
type: string
provider:
type: string
systemRole:
type: string
required:
- criteria
- type: object
properties:
values:
type: array
items:
type: string
caseSensitive:
type: boolean
required:
- values
additionalProperties: false
- type: object
properties:
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- schema
additionalProperties: false
- type: object
properties:
extractor:
oneOf:
- type: object
properties:
type:
type: string
const: regex
pattern:
type: string
group:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- type
- pattern
additionalProperties: false
- type: object
properties:
type:
type: string
const: delimiter
delimiter:
type: string
position:
type: string
enum:
- first
- last
required:
- type
- delimiter
additionalProperties: false
- type: object
properties:
type:
type: string
const: last-line
trim:
type: boolean
required:
- type
additionalProperties: false
- type: object
properties:
type:
type: string
const: choice-index
labels:
type: array
items:
type: string
pattern:
type: string
required:
- type
additionalProperties: false
innerMatcher:
type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
required:
- extractor
additionalProperties: false
required:
- id
- name
- type
- weight
- config
additionalProperties: false
additionalProperties: false
delete:
operationId: deleteApiV1EvalBenchmarksById
summary: deleteBenchmark
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
required:
- id
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
/api/v1/eval/datasets:
post:
operationId: postApiV1EvalDatasets
summary: createDataset
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
type:
- string
- "null"
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
type:
- string
- "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
sourceExperimentId:
type:
- string
- "null"
testCaseCount:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- id
- identifier
- name
- benchmarkId
- description
- metadata
- evalConfig
- evalMode
- createdAt
- updatedAt
- sourceExperimentId
- testCaseCount
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
description:
anyOf:
- type: string
maxLength: 10000
- type: "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
required:
- identifier
- name
additionalProperties: false
get:
operationId: getApiV1EvalDatasets
summary: listDatasets
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
datasets:
type: array
items:
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
type:
- string
- "null"
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
type:
- string
- "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
sourceExperimentId:
type:
- string
- "null"
testCaseCount:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- id
- identifier
- name
- benchmarkId
- description
- metadata
- evalConfig
- evalMode
- createdAt
- updatedAt
- sourceExperimentId
- testCaseCount
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- datasets
- total
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: benchmarkId
schema:
type: string
minLength: 1
maxLength: 128
/api/v1/eval/datasets/{id}:
get:
operationId: getApiV1EvalDatasetsById
summary: getDataset
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
type:
- string
- "null"
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
type:
- string
- "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
sourceExperimentId:
type:
- string
- "null"
testCaseCount:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- id
- identifier
- name
- benchmarkId
- description
- metadata
- evalConfig
- evalMode
- createdAt
- updatedAt
- sourceExperimentId
- testCaseCount
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
patch:
operationId: patchApiV1EvalDatasetsById
summary: updateDataset
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
type:
- string
- "null"
description:
type:
- string
- "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
type:
- string
- "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
sourceExperimentId:
type:
- string
- "null"
testCaseCount:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- id
- identifier
- name
- benchmarkId
- description
- metadata
- evalConfig
- evalMode
- createdAt
- updatedAt
- sourceExperimentId
- testCaseCount
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
minLength: 1
maxLength: 255
name:
type: string
minLength: 1
maxLength: 255
benchmarkId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
description:
anyOf:
- type: string
maxLength: 10000
- type: "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
additionalProperties: false
delete:
operationId: deleteApiV1EvalDatasetsById
summary: deleteDataset
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
required:
- id
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
/api/v1/eval/datasets/{datasetId}/test-cases:
post:
operationId: postApiV1EvalDatasetsByDatasetIdTestCases
summary: createTestCase
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type:
- number
- "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
datasetId:
type: string
content:
type: object
propertyNames:
type: string
additionalProperties: {}
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- id
- input
- sortOrder
- createdAt
- updatedAt
- datasetId
- content
- metadata
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: datasetId
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
minLength: 1
maxLength: 128
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type: integer
minimum: 0
maximum: 9007199254740991
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- input
additionalProperties: false
get:
operationId: getApiV1EvalDatasetsByDatasetIdTestCases
summary: listTestCases
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
testCases:
type: array
items:
type: object
properties:
id:
type: string
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type:
- number
- "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
datasetId:
type: string
content:
type: object
propertyNames:
type: string
additionalProperties: {}
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- id
- input
- sortOrder
- createdAt
- updatedAt
- datasetId
- content
- metadata
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- testCases
- total
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: datasetId
schema:
type: string
minLength: 1
maxLength: 128
required: true
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
/api/v1/eval/test-cases/{id}:
get:
operationId: getApiV1EvalTestCasesById
summary: getTestCase
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type:
- number
- "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
datasetId:
type: string
content:
type: object
propertyNames:
type: string
additionalProperties: {}
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- id
- input
- sortOrder
- createdAt
- updatedAt
- datasetId
- content
- metadata
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
patch:
operationId: patchApiV1EvalTestCasesById
summary: updateTestCase
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type:
- number
- "null"
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
datasetId:
type: string
content:
type: object
propertyNames:
type: string
additionalProperties: {}
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
required:
- id
- input
- sortOrder
- createdAt
- updatedAt
- datasetId
- content
- metadata
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
input:
type: string
expected:
type: string
category:
type: string
choices:
type: array
items:
type: string
environment:
type: object
properties:
envPrompt:
type: string
toolForwarding:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
endpoint:
type: string
format: uri
timeoutMs:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
required:
- endpoint
additionalProperties: false
additionalProperties: false
messages:
maxItems: 1000
type: array
items:
type: object
properties:
content:
type: string
role:
type: string
enum:
- user
- assistant
- system
- tool
id:
type: string
minLength: 1
maxLength: 128
parentId:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: "null"
model:
type: string
provider:
type: string
createdAt:
type:
- string
- number
updatedAt:
type:
- string
- number
tools:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
tool_call_id:
type: string
metadata:
type: object
propertyNames:
type: string
additionalProperties: {}
reasoning:
type: object
propertyNames:
type: string
additionalProperties: {}
plugin:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginState:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginError:
type: object
propertyNames:
type: string
additionalProperties: {}
pluginIntervention:
type: object
propertyNames:
type: string
additionalProperties: {}
error:
type: object
propertyNames:
type: string
additionalProperties: {}
search:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- content
- role
additionalProperties: false
caseId:
type: string
minLength: 1
maxLength: 128
sortOrder:
type: integer
minimum: 0
maximum: 9007199254740991
evalMode:
anyOf:
- type: string
enum:
- equals
- contains
- regex
- starts-with
- ends-with
- any-of
- numeric
- extract-match
- json-schema
- javascript
- python
- llm-rubric
- factuality
- answer-relevance
- similar
- levenshtein
- rubric
- external
- type: "null"
evalConfig:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
additionalProperties: false
delete:
operationId: deleteApiV1EvalTestCasesById
summary: deleteTestCase
description: "Creates accept an optional id: an identical replay returns the
resource; conflicting id or identifier returns 409. Lists are
paginated."
tags:
- eval
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
required:
- id
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
/api/v1/eval/runs/{id}/claim:
post:
operationId: postApiV1EvalRunsByIdClaim
summary: claim
tags:
- eval
description: "Claim: one pending worker succeeds, others receive 409. Reports:
identical replays succeed; different results conflict. Batches are
atomic. External workers can supply testCaseId to associate their own
topic with a dataset case on first report. Retry: only terminal runs,
concurrent repeats conflict."
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
config:
type: object
propertyNames:
type: string
additionalProperties: {}
executionMode:
type: string
enum:
- internal
- external
datasetId:
type: string
experimentId:
type:
- string
- "null"
parentRunId:
type:
- string
- "null"
status:
type: string
enum:
- idle
- pending
- running
- external
- completed
- failed
- aborted
targetAgentId:
type:
- string
- "null"
name:
type:
- string
- "null"
metrics:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
startedAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
required:
- id
- createdAt
- updatedAt
- config
- executionMode
- datasetId
- experimentId
- parentRunId
- status
- targetAgentId
- name
- metrics
- startedAt
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
/api/v1/eval/runs/{id}/status:
patch:
operationId: patchApiV1EvalRunsByIdStatus
summary: setStatus
tags:
- eval
description: "Claim: one pending worker succeeds, others receive 409. Reports:
identical replays succeed; different results conflict. Batches are
atomic. External workers can supply testCaseId to associate their own
topic with a dataset case on first report. Retry: only terminal runs,
concurrent repeats conflict."
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
config:
type: object
propertyNames:
type: string
additionalProperties: {}
executionMode:
type: string
enum:
- internal
- external
datasetId:
type: string
experimentId:
type:
- string
- "null"
parentRunId:
type:
- string
- "null"
status:
type: string
enum:
- idle
- pending
- running
- external
- completed
- failed
- aborted
targetAgentId:
type:
- string
- "null"
name:
type:
- string
- "null"
metrics:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
startedAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
required:
- id
- createdAt
- updatedAt
- config
- executionMode
- datasetId
- experimentId
- parentRunId
- status
- targetAgentId
- name
- metrics
- startedAt
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- running
- external
- completed
- failed
- aborted
required:
- status
additionalProperties: false
/api/v1/eval/runs/{id}/retry-errors:
post:
operationId: postApiV1EvalRunsByIdRetryErrors
summary: retryErrors
tags:
- eval
description: "Claim: one pending worker succeeds, others receive 409. Reports:
identical replays succeed; different results conflict. Batches are
atomic. External workers can supply testCaseId to associate their own
topic with a dataset case on first report. Retry: only terminal runs,
concurrent repeats conflict."
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
runId:
type: string
retryCount:
type: number
required:
- runId
- retryCount
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 128
required: true
/api/v1/eval/runs/{runId}/topics/{topicId}/result:
put:
operationId: putApiV1EvalRunsByRunIdTopicsByTopicIdResult
summary: report
tags:
- eval
description: "Claim: one pending worker succeeds, others receive 409. Reports:
identical replays succeed; different results conflict. Batches are
atomic. External workers can supply testCaseId to associate their own
topic with a dataset case on first report. Retry: only terminal runs,
concurrent repeats conflict."
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
idempotent:
type: boolean
reportedThreads:
type: number
runId:
type: string
runStatus:
type: string
success:
type: boolean
threadId:
type: string
topicFinalized:
type: boolean
topicId:
type: string
totalThreads:
type: number
required:
- idempotent
- reportedThreads
- runId
- success
- topicFinalized
- topicId
- totalThreads
additionalProperties: false
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: runId
schema:
type: string
minLength: 1
maxLength: 128
required: true
- in: path
name: topicId
schema:
type: string
minLength: 1
maxLength: 128
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
testCaseId:
type: string
minLength: 1
maxLength: 128
correct:
type: boolean
score:
type: number
result:
type: object
propertyNames:
type: string
additionalProperties: {}
threadId:
type: string
minLength: 1
maxLength: 128
required:
- correct
- score
additionalProperties: false
/api/v1/plugins:
get:
operationId: getApiV1Plugins
summary: List installed plugins in the current workspace or personal scope
tags:
- plugins
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
type: object
properties:
plugins:
type: array
items:
type: object
additionalProperties: false
properties:
identifier:
type: string
type:
type: string
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
total:
type: integer
required:
- plugins
- total
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
/api/v1/files:
get:
operationId: getApiV1Files
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
- in: query
name: fileType
schema:
type: string
- in: query
name: knowledgeBaseId
schema:
type: string
- in: query
name: queryAll
schema:
type: string
- in: query
name: updatedAtEnd
schema:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- in: query
name: updatedAtStart
schema:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- in: query
name: userId
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
files:
items:
$ref: "#/components/schemas/File"
type: array
total:
minimum: 0
type: integer
required:
- files
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
post:
operationId: postApiV1Files
requestBody:
content:
multipart/form-data:
schema:
properties:
agentId:
type: string
directory:
type: string
file:
format: binary
type: string
knowledgeBaseId:
type: string
sessionId:
type: string
skipCheckFileType:
type: boolean
skipDeduplication:
type: boolean
required:
- file
type: object
required: true
summary: Upload a file and return the corresponding file record
tags:
- files
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
file:
$ref: "#/components/schemas/File"
parsed:
type: object
required:
- file
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
/api/v1/files/{id}:
get:
operationId: getApiV1FilesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
file:
$ref: "#/components/schemas/File"
parsed:
type: object
required:
- file
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
patch:
operationId: patchApiV1FilesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
knowledgeBaseId:
type:
- string
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/File"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
delete:
operationId: deleteApiV1FilesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
/api/v1/files/{id}/url:
get:
operationId: getApiV1FilesByIdUrl
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
- in: query
name: expiresIn
schema:
type:
- string
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
/api/v1/files/{id}/parses:
post:
operationId: postApiV1FilesByIdParses
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
- in: query
name: skipExist
schema:
type:
- string
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
/api/v1/files/{id}/chunks:
post:
operationId: postApiV1FilesByIdChunks
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
autoEmbedding:
type: boolean
skipExist:
type: boolean
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
get:
operationId: getApiV1FilesByIdChunks
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
/api/v1/files/batches:
post:
operationId: postApiV1FilesBatches
requestBody:
content:
multipart/form-data:
schema:
properties:
agentId:
type: string
directory:
type: string
files:
items:
format: binary
type: string
maxItems: 20
minItems: 1
type: array
knowledgeBaseId:
type: string
sessionId:
type: string
skipCheckFileType:
type: boolean
required:
- files
type: object
required: true
summary: Batch file upload
tags:
- files
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
failed:
items:
additionalProperties: false
properties:
error:
type: string
name:
type: string
required:
- error
- name
type: object
type: array
successful:
items:
additionalProperties: false
properties:
file:
$ref: "#/components/schemas/File"
parsed:
type: object
required:
- file
type: object
type: array
summary:
additionalProperties: false
properties:
failed:
minimum: 0
type: integer
successful:
minimum: 0
type: integer
total:
minimum: 0
type: integer
required:
- failed
- successful
- total
type: object
required:
- failed
- successful
- summary
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
/api/v1/files/queries:
post:
operationId: postApiV1FilesQueries
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fileIds:
minItems: 1
type: array
items:
type: string
minLength: 1
required:
- fileIds
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
failed:
items:
additionalProperties: false
properties:
error:
type: string
fileId:
type: string
required:
- error
- fileId
type: object
type: array
files:
items:
additionalProperties: false
properties:
file:
$ref: "#/components/schemas/File"
parsed:
type: object
required:
- file
type: object
type: array
success:
minimum: 0
type: integer
total:
minimum: 0
type: integer
required:
- failed
- files
- success
- total
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- files
/api/v1/knowledge-bases:
get:
operationId: getApiV1KnowledgeBases
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
knowledgeBases:
items:
$ref: "#/components/schemas/KnowledgeBase"
type: array
total:
minimum: 0
type: integer
required:
- knowledgeBases
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
post:
operationId: postApiV1KnowledgeBases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
avatar:
type: string
format: uri
description:
type: string
maxLength: 1000
name:
type: string
minLength: 1
maxLength: 255
required:
- name
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/KnowledgeBase"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
/api/v1/knowledge-bases/{id}:
get:
operationId: getApiV1KnowledgeBasesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/KnowledgeBase"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
patch:
operationId: patchApiV1KnowledgeBasesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
avatar:
type: string
format: uri
description:
type: string
maxLength: 1000
name:
type: string
minLength: 1
maxLength: 255
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/KnowledgeBase"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
delete:
operationId: deleteApiV1KnowledgeBasesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
/api/v1/knowledge-bases/{id}/files:
get:
operationId: getApiV1KnowledgeBasesByIdFiles
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
- in: query
name: fileType
schema:
type:
- string
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
/api/v1/knowledge-bases/{id}/files/batch:
post:
operationId: postApiV1KnowledgeBasesByIdFilesBatch
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fileIds:
minItems: 1
type: array
items:
type: string
minLength: 1
required:
- fileIds
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
delete:
operationId: deleteApiV1KnowledgeBasesByIdFilesBatch
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fileIds:
minItems: 1
type: array
items:
type: string
minLength: 1
required:
- fileIds
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
/api/v1/knowledge-bases/{id}/files/move:
post:
operationId: postApiV1KnowledgeBasesByIdFilesMove
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fileIds:
minItems: 1
type: array
items:
type: string
minLength: 1
targetKnowledgeBaseId:
type: string
minLength: 1
required:
- fileIds
- targetKnowledgeBaseId
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- knowledge-bases
/api/v1/mcp-servers:
get:
operationId: getApiV1McpServers
summary: List remote MCP servers
tags:
- mcp-servers
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
items:
$ref: "#/components/schemas/McpServer"
type: array
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
post:
operationId: postApiV1McpServers
summary: Add a remote MCP server
tags:
- mcp-servers
responses:
"201":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/McpServer"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
credentials:
oneOf:
- type: object
properties:
token:
type: string
minLength: 1
maxLength: 10000
type:
type: string
const: bearer
required:
- token
- type
additionalProperties: false
- type: object
properties:
apiKey:
type: string
minLength: 1
maxLength: 10000
type:
type: string
const: apikey
required:
- apiKey
- type
additionalProperties: false
- type: object
properties:
headers:
type: object
propertyNames:
type: string
minLength: 1
maxLength: 256
additionalProperties:
type: string
maxLength: 10000
type:
type: string
const: header
required:
- headers
- type
additionalProperties: false
description:
type: string
maxLength: 2000
identifier:
type: string
minLength: 1
maxLength: 255
pattern: ^[a-z\d](?:[\w-]*[a-z\d])?$
isEnabled:
default: true
type: boolean
name:
type: string
minLength: 1
maxLength: 255
serverUrl:
type: string
maxLength: 2048
format: uri
required:
- identifier
- name
- serverUrl
additionalProperties: false
/api/v1/mcp-servers/{id}:
get:
operationId: getApiV1McpServersById
parameters:
- in: path
name: id
schema:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/McpServer"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- mcp-servers
patch:
operationId: patchApiV1McpServersById
parameters:
- in: path
name: id
schema:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
credentials:
anyOf:
- oneOf:
- type: object
properties:
token:
type: string
minLength: 1
maxLength: 10000
type:
type: string
const: bearer
required:
- token
- type
additionalProperties: false
- type: object
properties:
apiKey:
type: string
minLength: 1
maxLength: 10000
type:
type: string
const: apikey
required:
- apiKey
- type
additionalProperties: false
- type: object
properties:
headers:
type: object
propertyNames:
type: string
minLength: 1
maxLength: 256
additionalProperties:
type: string
maxLength: 10000
type:
type: string
const: header
required:
- headers
- type
additionalProperties: false
- type: "null"
description:
anyOf:
- type: string
maxLength: 2000
- type: "null"
isEnabled:
type: boolean
name:
type: string
minLength: 1
maxLength: 255
serverUrl:
type: string
maxLength: 2048
format: uri
additionalProperties: false
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/McpServer"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- mcp-servers
delete:
operationId: deleteApiV1McpServersById
parameters:
- in: path
name: id
schema:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- mcp-servers
/api/v1/mcp-servers/{id}/sync:
post:
operationId: postApiV1McpServersByIdSync
summary: Discover and sync MCP tools
tags:
- mcp-servers
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
id:
format: uuid
type: string
status:
const: connected
type: string
toolCount:
minimum: 0
type: integer
required:
- id
- status
- toolCount
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: id
schema:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
required: true
/api/v1/message-translations/{messageId}:
post:
operationId: postApiV1MessageTranslationsByMessageId
parameters:
- in: path
name: messageId
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
to:
type: string
minLength: 1
required:
- to
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- message-translations
get:
operationId: getApiV1MessageTranslationsByMessageId
parameters:
- in: path
name: messageId
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- message-translations
patch:
operationId: patchApiV1MessageTranslationsByMessageId
parameters:
- in: path
name: messageId
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
to:
type: string
minLength: 1
content:
type: string
required:
- to
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- message-translations
delete:
operationId: deleteApiV1MessageTranslationsByMessageId
parameters:
- in: path
name: messageId
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- message-translations
/api/v1/messages/count:
get:
operationId: getApiV1MessagesCount
parameters:
- in: query
name: topicId
schema:
type: string
minLength: 1
- in: query
name: threadId
schema:
type: string
minLength: 1
- in: query
name: topicIds
schema:
type:
- string
- "null"
- in: query
name: userId
schema:
type:
- string
- "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
count:
minimum: 0
type: integer
required:
- count
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
/api/v1/messages:
get:
operationId: getApiV1Messages
parameters:
- in: query
name: threadId
schema:
type: string
minLength: 1
- in: query
name: topicId
schema:
type:
- string
- "null"
- in: query
name: userId
schema:
type:
- string
- "null"
- in: query
name: role
schema:
anyOf:
- type: string
enum:
- user
- system
- assistant
- tool
- type: "null"
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
messages:
items:
$ref: "#/components/schemas/Message"
type: array
total:
minimum: 0
type: integer
required:
- messages
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
post:
operationId: postApiV1Messages
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
content:
type: string
minLength: 1
role:
type: string
enum:
- user
- system
- assistant
- tool
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
topicId:
type:
- string
- "null"
threadId:
type:
- string
- "null"
parentId:
type:
- string
- "null"
quotaId:
type:
- string
- "null"
agentId:
type:
- string
- "null"
clientId:
type:
- string
- "null"
metadata:
anyOf:
- {}
- type: "null"
reasoning:
anyOf:
- {}
- type: "null"
search:
anyOf:
- {}
- type: "null"
tools:
anyOf:
- {}
- type: "null"
traceId:
type:
- string
- "null"
observationId:
type:
- string
- "null"
files:
anyOf:
- type: array
items:
type: string
- type: "null"
favorite:
default: false
type:
- boolean
- "null"
required:
- content
- role
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Message"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
delete:
operationId: deleteApiV1Messages
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
messageIds:
minItems: 1
type: array
items:
type: string
minLength: 1
required:
- messageIds
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
/api/v1/messages/{id}:
get:
operationId: getApiV1MessagesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Message"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
delete:
operationId: deleteApiV1MessagesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
/api/v1/messages/replies:
post:
operationId: postApiV1MessagesReplies
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
content:
type: string
minLength: 1
role:
type: string
const: user
model:
type:
- string
- "null"
provider:
type:
- string
- "null"
topicId:
type:
- string
- "null"
threadId:
type:
- string
- "null"
parentId:
type:
- string
- "null"
quotaId:
type:
- string
- "null"
agentId:
type:
- string
- "null"
clientId:
type:
- string
- "null"
metadata:
anyOf:
- {}
- type: "null"
reasoning:
anyOf:
- {}
- type: "null"
search:
anyOf:
- {}
- type: "null"
tools:
anyOf:
- {}
- type: "null"
traceId:
type:
- string
- "null"
observationId:
type:
- string
- "null"
files:
anyOf:
- type: array
items:
type: string
- type: "null"
favorite:
default: false
type:
- boolean
- "null"
required:
- content
- role
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
anyOf:
- $ref: "#/components/schemas/Message"
- type: "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- messages
/api/v1/models:
get:
operationId: getApiV1Models
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
- in: query
name: enabled
schema:
type:
- string
- "null"
- in: query
name: provider
schema:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: "null"
- in: query
name: type
schema:
anyOf:
- type: string
enum:
- chat
- embedding
- tts
- asr
- image
- text2video
- text2music
- realtime
- stt
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
models:
items:
$ref: "#/components/schemas/Model"
type: array
total:
minimum: 0
type: integer
required:
- models
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- models
post:
operationId: postApiV1Models
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
abilities:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
config:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
contextWindowTokens:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
description:
type:
- string
- "null"
displayName:
type: string
minLength: 1
enabled:
type:
- boolean
- "null"
organization:
type:
- string
- "null"
parameters:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
pricing:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
releasedAt:
type:
- string
- "null"
sort:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
source:
anyOf:
- type: string
enum:
- remote
- custom
- builtin
- type: "null"
type:
anyOf:
- type: string
enum:
- chat
- embedding
- tts
- asr
- image
- text2video
- text2music
- realtime
- stt
- type: "null"
id:
type: string
minLength: 1
maxLength: 150
providerId:
type: string
minLength: 1
maxLength: 64
required:
- displayName
- id
- providerId
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Model"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- models
/api/v1/models/{providerId}/{modelId}:
get:
operationId: getApiV1ModelsByProviderIdByModelId
parameters:
- in: path
name: modelId
schema:
type: string
minLength: 1
maxLength: 150
required: true
- in: path
name: providerId
schema:
type: string
minLength: 1
maxLength: 64
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- models
patch:
operationId: patchApiV1ModelsByProviderIdByModelId
parameters:
- in: path
name: modelId
schema:
type: string
minLength: 1
maxLength: 150
required: true
- in: path
name: providerId
schema:
type: string
minLength: 1
maxLength: 64
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
abilities:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
config:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
contextWindowTokens:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
description:
type:
- string
- "null"
displayName:
type: string
minLength: 1
enabled:
type:
- boolean
- "null"
organization:
type:
- string
- "null"
parameters:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
pricing:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: "null"
releasedAt:
type:
- string
- "null"
sort:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
source:
anyOf:
- type: string
enum:
- remote
- custom
- builtin
- type: "null"
type:
anyOf:
- type: string
enum:
- chat
- embedding
- tts
- asr
- image
- text2video
- text2music
- realtime
- stt
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- models
/api/v1/permissions:
get:
operationId: getApiV1Permissions
parameters:
- in: query
name: active
schema:
type:
- string
- "null"
- in: query
name: category
schema:
anyOf:
- type: string
minLength: 1
- type: "null"
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
permissions:
items:
$ref: "#/components/schemas/Permission"
type: array
total:
minimum: 0
type: integer
required:
- permissions
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- permissions
post:
operationId: postApiV1Permissions
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
category:
type: string
minLength: 1
code:
type: string
minLength: 1
description:
type:
- string
- "null"
isActive:
default: true
type:
- boolean
- "null"
name:
type: string
minLength: 1
required:
- category
- code
- name
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Permission"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- permissions
/api/v1/permissions/{id}:
get:
operationId: getApiV1PermissionsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Permission"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- permissions
patch:
operationId: patchApiV1PermissionsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
category:
type: string
minLength: 1
code:
type: string
minLength: 1
description:
type:
- string
- "null"
isActive:
default: true
type:
- boolean
- "null"
name:
type: string
minLength: 1
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Permission"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- permissions
delete:
operationId: deleteApiV1PermissionsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 16
maxLength: 16
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- permissions
/api/v1/providers:
get:
operationId: getApiV1Providers
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
- in: query
name: enabled
schema:
type: boolean
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
providers:
items:
$ref: "#/components/schemas/Provider"
type: array
total:
minimum: 0
type: integer
required:
- providers
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- providers
post:
operationId: postApiV1Providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
checkModel:
type:
- string
- "null"
config:
type: object
propertyNames:
type: string
additionalProperties: {}
description:
type:
- string
- "null"
enabled:
type: boolean
fetchOnClient:
type:
- boolean
- "null"
keyVaults:
type: object
propertyNames:
type: string
additionalProperties:
type: string
logo:
type:
- string
- "null"
name:
anyOf:
- type: string
minLength: 1
- type: "null"
settings:
type: object
propertyNames:
type: string
additionalProperties: {}
sort:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
source:
type: string
enum:
- builtin
- custom
id:
type: string
minLength: 1
required:
- id
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Provider"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- providers
/api/v1/providers/{id}:
get:
operationId: getApiV1ProvidersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 64
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Provider"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- providers
patch:
operationId: patchApiV1ProvidersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 64
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
checkModel:
type:
- string
- "null"
config:
type: object
propertyNames:
type: string
additionalProperties: {}
description:
type:
- string
- "null"
enabled:
type: boolean
fetchOnClient:
type:
- boolean
- "null"
keyVaults:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties:
type: string
- type: "null"
logo:
type:
- string
- "null"
name:
anyOf:
- type: string
minLength: 1
- type: "null"
settings:
type: object
propertyNames:
type: string
additionalProperties: {}
sort:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: "null"
source:
type: string
enum:
- builtin
- custom
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Provider"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- providers
delete:
operationId: deleteApiV1ProvidersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 64
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- providers
/api/v1/responses:
post:
operationId: postApiV1Responses
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
input:
anyOf:
- type: string
- type: array
items:
oneOf:
- type: object
properties:
content:
anyOf:
- type: string
- type: array
items:
oneOf:
- type: object
properties:
text:
type: string
type:
type: string
const: input_text
required:
- text
- type
- type: object
properties:
annotations:
type: array
items: {}
logprobs:
type: array
items: {}
text:
type: string
type:
type: string
const: output_text
required:
- text
- type
- type: object
properties:
detail:
type: string
enum:
- auto
- low
- high
image_url:
type: string
type:
type: string
const: input_image
required:
- type
- type: object
properties:
file_data:
type: string
file_id:
type: string
filename:
type: string
type:
type: string
const: input_file
required:
- type
id:
type: string
role:
type: string
enum:
- user
- assistant
- system
- developer
status:
type: string
enum:
- completed
- in_progress
type:
type: string
const: message
required:
- content
- role
- type
additionalProperties: {}
- type: object
properties:
arguments:
type: string
call_id:
type: string
id:
type: string
name:
type: string
status:
type: string
enum:
- completed
- in_progress
type:
type: string
const: function_call
required:
- arguments
- name
- type
- type: object
properties:
call_id:
type: string
id:
type: string
output:
type: string
status:
type: string
enum:
- completed
- in_progress
- incomplete
type:
type: string
const: function_call_output
required:
- call_id
- output
- type
instructions:
type:
- string
- "null"
max_output_tokens:
anyOf:
- type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
- type: "null"
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties:
type: string
- type: "null"
model:
type: string
parallel_tool_calls:
type:
- boolean
- "null"
previous_response_id:
type:
- string
- "null"
reasoning:
anyOf:
- type: object
properties:
effort:
type: string
enum:
- low
- medium
- high
- type: "null"
stream:
type:
- boolean
- "null"
temperature:
anyOf:
- type: number
minimum: 0
maximum: 2
- type: "null"
tool_choice:
anyOf:
- anyOf:
- type: string
enum:
- auto
- required
- none
- type: object
properties:
name:
type: string
type:
type: string
const: function
required:
- name
- type
- type: "null"
tools:
anyOf:
- type: array
items:
anyOf:
- type: object
properties:
description:
type: string
name:
type: string
parameters:
type: object
propertyNames:
type: string
additionalProperties: {}
strict:
type: boolean
type:
type: string
const: function
required:
- name
- type
- type: object
properties:
type:
type: string
format: starts_with
pattern: ^lobe-.*
required:
- type
- type: "null"
top_p:
anyOf:
- type: number
minimum: 0
maximum: 1
- type: "null"
truncation:
anyOf:
- type: object
properties:
type:
default: disabled
type: string
enum:
- auto
- disabled
- type: "null"
user:
type:
- string
- "null"
required:
- input
- model
additionalProperties: {}
responses:
"200":
content:
application/json:
schema:
additionalProperties: true
properties:
id:
type: string
object:
const: response
type: string
output:
items:
type: object
type: array
status:
type: string
usage:
type:
- object
- "null"
required:
- id
- object
- output
- status
type: object
text/event-stream:
schema:
type: string
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- responses
/api/v1/roles:
get:
operationId: getApiV1Roles
parameters:
- in: query
name: active
schema:
type:
- string
- "null"
- in: query
name: system
schema:
type:
- string
- "null"
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
roles:
items:
$ref: "#/components/schemas/Role"
type: array
total:
minimum: 0
type: integer
required:
- roles
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
post:
operationId: postApiV1Roles
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type:
- string
- "null"
displayName:
type: string
minLength: 1
isActive:
default: true
type:
- boolean
- "null"
isSystem:
default: false
type:
- boolean
- "null"
name:
type: string
minLength: 1
required:
- displayName
- name
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Role"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
/api/v1/roles/{id}:
get:
operationId: getApiV1RolesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Role"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
patch:
operationId: patchApiV1RolesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type:
- string
- "null"
displayName:
type: string
minLength: 1
isActive:
default: true
type:
- boolean
- "null"
isSystem:
default: false
type:
- boolean
- "null"
name:
type: string
minLength: 1
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Role"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
delete:
operationId: deleteApiV1RolesById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
/api/v1/roles/{id}/permissions:
get:
operationId: getApiV1RolesByIdPermissions
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
patch:
operationId: patchApiV1RolesByIdPermissions
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
grant:
anyOf:
- type: array
items:
type: string
minLength: 1
- type: "null"
revoke:
anyOf:
- type: array
items:
type: string
minLength: 1
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
delete:
operationId: deleteApiV1RolesByIdPermissions
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- roles
/api/v1/topics:
get:
operationId: getApiV1Topics
parameters:
- in: query
name: agentId
schema:
type:
- string
- "null"
- in: query
name: excludeTriggers
schema:
type: array
items:
type: string
- in: query
name: groupId
schema:
type:
- string
- "null"
- in: query
name: includeTriggers
schema:
type: array
items:
type: string
- in: query
name: isInbox
schema:
type: string
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
topics:
items:
$ref: "#/components/schemas/Topic"
type: array
total:
minimum: 0
type: integer
required:
- topics
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- topics
post:
operationId: postApiV1Topics
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
agentId:
type:
- string
- "null"
clientId:
type: string
favorite:
type: boolean
groupId:
type:
- string
- "null"
title:
type: string
minLength: 1
required:
- title
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Topic"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- topics
/api/v1/topics/{id}:
get:
operationId: getApiV1TopicsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Topic"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- topics
patch:
operationId: patchApiV1TopicsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
favorite:
type: boolean
historySummary:
type: string
metadata:
type: object
properties:
model:
type: string
provider:
type: string
boundDeviceId:
type: string
workingDirectory:
type: string
title:
type: string
minLength: 1
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Topic"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- topics
delete:
operationId: deleteApiV1TopicsById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- topics
/api/v1/topics/{topicId}/threads:
get:
operationId: getApiV1TopicsByTopicIdThreads
summary: List topic threads
tags:
- topics
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
type: object
properties:
threads:
type: array
items:
type: object
additionalProperties: false
properties:
id:
type: string
topicId:
type: string
title:
type:
- string
- "null"
type:
type: string
status:
type:
- string
- "null"
parentThreadId:
type:
- string
- "null"
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
total:
type: integer
required:
- threads
- total
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
parameters:
- in: path
name: topicId
schema:
type: string
minLength: 1
required: true
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
minimum: 0
maximum: 1000000
- in: query
name: page
schema:
type: integer
minimum: 1
maximum: 1000000
- in: query
name: pageSize
schema:
type: integer
minimum: 1
maximum: 100
/api/v1/users/me:
get:
operationId: getApiV1UsersMe
summary: Get current authenticated user
tags:
- users
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
anyOf:
- $ref: "#/components/schemas/User"
- additionalProperties: false
properties:
id:
type: string
required:
- id
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
/api/v1/users:
get:
operationId: getApiV1Users
parameters:
- in: query
name: keyword
schema:
type: string
- in: query
name: page
schema:
type: string
- in: query
name: pageSize
schema:
type: string
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
properties:
users:
items:
$ref: "#/components/schemas/User"
type: array
total:
minimum: 0
type: integer
required:
- users
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
post:
operationId: postApiV1Users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
avatar:
type:
- string
- "null"
email:
anyOf:
- type: string
format: email
pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
- type: "null"
firstName:
type:
- string
- "null"
fullName:
type:
- string
- "null"
id:
type:
- string
- "null"
lastName:
type:
- string
- "null"
phone:
type:
- string
- "null"
roleIds:
anyOf:
- type: array
items:
type: string
minLength: 1
- type: "null"
username:
anyOf:
- type: string
minLength: 1
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/User"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
/api/v1/users/{id}:
get:
operationId: getApiV1UsersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/User"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
patch:
operationId: patchApiV1UsersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
avatar:
type:
- string
- "null"
email:
anyOf:
- type: string
format: email
pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
- type: "null"
firstName:
type:
- string
- "null"
fullName:
type:
- string
- "null"
isOnboarded:
type:
- boolean
- "null"
lastName:
type:
- string
- "null"
phone:
type:
- string
- "null"
preference:
anyOf:
- {}
- type: "null"
roleIds:
anyOf:
- type: array
items:
type: string
minLength: 1
- type: "null"
username:
anyOf:
- type: string
minLength: 1
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/User"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
delete:
operationId: deleteApiV1UsersById
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
/api/v1/users/{id}/roles:
get:
operationId: getApiV1UsersByIdRoles
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
patch:
operationId: patchApiV1UsersByIdRoles
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
addRoles:
anyOf:
- type: array
items:
type: object
properties:
expiresAt:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: "null"
roleId:
type: string
minLength: 1
required:
- roleId
- type: "null"
removeRoles:
anyOf:
- type: array
items:
type: string
minLength: 1
- type: "null"
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type: object
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
delete:
operationId: deleteApiV1UsersByIdRoles
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: true
type:
- object
- "null"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
description: Validation Error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items: {}
data: {}
required:
- success
- error
- data
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error
tags:
- users
/api/v1/usage:
get:
operationId: getApiV1Usage
summary: Get usage and quota summary
tags:
- usage
responses:
"200":
content:
application/json:
schema:
additionalProperties: false
properties:
data:
$ref: "#/components/schemas/Usage"
message:
type: string
success:
const: true
type: boolean
timestamp:
format: date-time
type: string
required:
- success
- timestamp
type: object
description: Successful response
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Invalid request
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Authentication required
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Insufficient permission
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Resource conflict
"429":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Rate limit exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/ApiError"
description: Internal server error