Katechon Technology Custom Providers API
The Custom Providers API from Katechon Technology — 11 operation(s) for custom providers.
The Custom Providers API from Katechon Technology — 11 operation(s) for custom providers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/katechon-technology:katechon-technology-custom-providers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Katechon Arc Custom Providers API
description: Agent-powered AI video studio
version: 1.0.0
tags:
- name: Custom Providers
paths:
/api/v1/custom-providers:
get:
tags:
- Custom Providers
summary: List Providers
description: 列出所有自定义供应商(含模型列表)。
operationId: list_providers_api_v1_custom_providers_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- OAuth2PasswordBearer: []
post:
tags:
- Custom Providers
summary: Create Provider
description: 创建自定义供应商,可同时创建模型列表。
operationId: create_provider_api_v1_custom_providers_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProviderRequest'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- OAuth2PasswordBearer: []
/api/v1/custom-providers/endpoints:
get:
tags:
- Custom Providers
summary: List Endpoint Catalog
description: '暴露两个命名空间的 endpoint 作为前端单一真相源:渲染下拉、显示路径与分组都派生自此返回值。
内置取自 ENDPOINT_REGISTRY,自定义由 custom_endpoint 表的定义现构造——不做启动时全量装载,
定义原地改完、目录下次拉取即是新的。单行定义构造不出 spec(只可能来自手工改库)时跳过并
告警,而不是让整份目录失败:一条坏定义不该把端点下拉整个打空。'
operationId: list_endpoint_catalog_api_v1_custom_providers_endpoints_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EndpointCatalogResponse'
security:
- OAuth2PasswordBearer: []
/api/v1/custom-providers/endpoints/{endpoint_key}/definition:
get:
tags:
- Custom Providers
summary: Get Endpoint Definition
description: '取内置声明式端点的定义 JSON,供「复制为我的」原样 POST 成 ce- 副本。
Python 实现的内置端点没有定义可取,与未知键一并回 404。返回体是定义原样(零封套),
与导入导出的文件格式同一份东西。'
operationId: get_endpoint_definition_api_v1_custom_providers_endpoints__endpoint_key__definition_get
security:
- OAuth2PasswordBearer: []
parameters:
- name: endpoint_key
in: path
required: true
schema:
type: string
title: Endpoint Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Get Endpoint Definition Api V1 Custom Providers Endpoints Endpoint Key Definition Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/custom-providers/{provider_id}:
get:
tags:
- Custom Providers
summary: Get Provider
description: 获取单个自定义供应商详情。
operationId: get_provider_api_v1_custom_providers__provider_id__get
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Custom Providers
summary: Update Provider
description: 更新自定义供应商配置。
operationId: update_provider_api_v1_custom_providers__provider_id__patch
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProviderRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Custom Providers
summary: Full Update Provider
description: 原子更新供应商元数据 + 模型列表(单一事务)。
operationId: full_update_provider_api_v1_custom_providers__provider_id__put
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FullUpdateProviderRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Custom Providers
summary: Delete Provider
description: 删除自定义供应商(级联删除模型,清理悬空默认配置)。
operationId: delete_provider_api_v1_custom_providers__provider_id__delete
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/custom-providers/{provider_id}/credentials:
get:
tags:
- Custom Providers
summary: Get Provider Credentials
description: '返回明文 base_url + api_key,供 Agent 配置导入复用。
仅 CurrentUser 鉴权,与现有 PATCH 接口对齐;日志不打印 body。
多用户场景需重新评估细粒度授权。'
operationId: get_provider_credentials_api_v1_custom_providers__provider_id__credentials_get
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CredentialsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/custom-providers/{provider_id}/models:
put:
tags:
- Custom Providers
summary: Replace Models
description: 替换供应商的整个模型列表。
operationId: replace_models_api_v1_custom_providers__provider_id__models_put
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReplaceModelsRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/custom-providers/discover:
post:
tags:
- Custom Providers
summary: Discover Models Endpoint
description: 模型发现:根据 discovery_format + base_url + api_key 查询可用模型。
operationId: discover_models_endpoint_api_v1_custom_providers_discover_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectivityCheckRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- OAuth2PasswordBearer: []
/api/v1/custom-providers/discover-anthropic:
post:
tags:
- Custom Providers
summary: Discover Anthropic Models Endpoint
description: 'Anthropic 协议模型发现:Agent 配置专用。
凭据缺失时 fallback 到 active credential(AgentCredentialRepository)。'
operationId: discover_anthropic_models_endpoint_api_v1_custom_providers_discover_anthropic_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DiscoverAnthropicRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/DiscoverResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- OAuth2PasswordBearer: []
/api/v1/custom-providers/{provider_id}/discover:
post:
tags:
- Custom Providers
summary: Discover Models By Id
description: 使用已存储凭证发现指定供应商的可用模型。
operationId: discover_models_by_id_api_v1_custom_providers__provider_id__discover_post
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/custom-providers/test:
post:
tags:
- Custom Providers
summary: Check Connectivity
description: 连通性检查:验证 discovery_format + base_url + api_key 是否可达。免费探针,不证明任何模型可生成。
operationId: check_connectivity_api_v1_custom_providers_test_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectivityCheckRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- OAuth2PasswordBearer: []
/api/v1/custom-providers/{provider_id}/test:
post:
tags:
- Custom Providers
summary: Check Connectivity By Id
description: 用已存储凭证对指定供应商做连通性检查。
operationId: check_connectivity_by_id_api_v1_custom_providers__provider_id__test_post
security:
- OAuth2PasswordBearer: []
parameters:
- name: provider_id
in: path
required: true
schema:
type: integer
title: Provider Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
FullUpdateProviderRequest:
properties:
display_name:
type: string
title: Display Name
base_url:
type: string
title: Base Url
api_key:
anyOf:
- type: string
- type: 'null'
title: Api Key
models:
items:
$ref: '#/components/schemas/ModelInput'
type: array
title: Models
image_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Image Max Workers
video_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Video Max Workers
audio_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Audio Max Workers
type: object
required:
- display_name
- base_url
- models
title: FullUpdateProviderRequest
description: PUT 全量更新:provider 元数据与模型列表。
DiscoverResponse:
properties:
models:
items:
additionalProperties: true
type: object
type: array
title: Models
default: []
not_applicable:
type: boolean
title: Not Applicable
default: false
reason:
anyOf:
- type: string
- type: 'null'
title: Reason
type: object
title: DiscoverResponse
ConnectivityCheckRequest:
properties:
discovery_format:
type: string
title: Discovery Format
base_url:
type: string
title: Base Url
api_key:
type: string
title: Api Key
type: object
required:
- discovery_format
- base_url
- api_key
title: ConnectivityCheckRequest
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
UpdateProviderRequest:
properties:
display_name:
anyOf:
- type: string
- type: 'null'
title: Display Name
base_url:
anyOf:
- type: string
- type: 'null'
title: Base Url
api_key:
anyOf:
- type: string
- type: 'null'
title: Api Key
type: object
title: UpdateProviderRequest
EndpointCatalogResponse:
properties:
endpoints:
items:
$ref: '#/components/schemas/EndpointDescriptor'
type: array
title: Endpoints
type: object
required:
- endpoints
title: EndpointCatalogResponse
EndpointDescriptor:
properties:
key:
type: string
title: Key
media_type:
type: string
title: Media Type
family:
type: string
title: Family
kind:
type: string
title: Kind
source:
type: string
enum:
- builtin
- custom
title: Source
default: builtin
display_name_key:
type: string
title: Display Name Key
display_name:
anyOf:
- type: string
- type: 'null'
title: Display Name
request_method:
type: string
title: Request Method
request_path_template:
type: string
title: Request Path Template
image_capabilities:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Image Capabilities
end_image_capable:
type: boolean
title: End Image Capable
default: false
size_fixed:
type: boolean
title: Size Fixed
default: false
duration_fixed:
type: boolean
title: Duration Fixed
default: false
duration_frame_rate_missing:
type: boolean
title: Duration Frame Rate Missing
default: false
duration_tier_empty:
type: boolean
title: Duration Tier Empty
default: false
native_resolution:
anyOf:
- type: string
- type: 'null'
title: Native Resolution
type: object
required:
- key
- media_type
- family
- kind
- display_name_key
- request_method
- request_path_template
title: EndpointDescriptor
description: 前端从 catalog API 拿到的单条 endpoint 描述(与 lib.custom_provider.endpoints.EndpointSpec 对齐,去掉闭包)。
ModelInput:
properties:
model_id:
type: string
title: Model Id
display_name:
type: string
title: Display Name
endpoint:
type: string
title: Endpoint
is_default:
type: boolean
title: Is Default
default: false
is_enabled:
type: boolean
title: Is Enabled
default: true
price_unit:
anyOf:
- type: string
- type: 'null'
title: Price Unit
price_input:
anyOf:
- type: number
- type: 'null'
title: Price Input
price_output:
anyOf:
- type: number
- type: 'null'
title: Price Output
currency:
anyOf:
- type: string
- type: 'null'
title: Currency
supported_durations:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Supported Durations
resolution:
anyOf:
- type: string
- type: 'null'
title: Resolution
capability_overrides:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Capability Overrides
type: object
required:
- model_id
- display_name
- endpoint
title: ModelInput
ReplaceModelsRequest:
properties:
models:
items:
$ref: '#/components/schemas/ModelInput'
type: array
title: Models
type: object
required:
- models
title: ReplaceModelsRequest
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
CreateProviderRequest:
properties:
display_name:
type: string
title: Display Name
discovery_format:
type: string
enum:
- openai
- google
- comfyui
title: Discovery Format
base_url:
type: string
title: Base Url
api_key:
type: string
title: Api Key
models:
items:
$ref: '#/components/schemas/ModelInput'
type: array
title: Models
default: []
image_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Image Max Workers
video_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Video Max Workers
audio_max_workers:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Audio Max Workers
type: object
required:
- display_name
- discovery_format
- base_url
- api_key
title: CreateProviderRequest
DiscoverAnthropicRequest:
properties:
base_url:
anyOf:
- type: string
- type: 'null'
title: Base Url
api_key:
anyOf:
- type: string
- type: 'null'
title: Api Key
type: object
title: DiscoverAnthropicRequest
CredentialsResponse:
properties:
base_url:
type: string
title: Base Url
api_key:
type: string
title: Api Key
type: object
required:
- base_url
- api_key
title: CredentialsResponse
securitySchemes:
OAuth2PasswordBearer:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: /api/v1/auth/token