Skip to content
小树 edited this page May 2, 2026 · 2 revisions

Models

All models are frozen dataclasses with slots=True.

Document

Type alias: V1Document | V2Document


V1Document

Field Type Default Description
friendly_name str required Display name
link str required API endpoint URL
func str required HTTP method
apicore_version Literal["1.0"] "1.0" Version identifier
parameters tuple[Parameter, ...] () API parameters
response ResponseConfig factory Response mapping
intro str | None None Description text
icon str | None None Icon URL or path

V2Document

All fields from V1Document, plus:

Field Type Default Description
apicore_version Literal["2.0"] "2.0" Version identifier
configs Configs | None None Request/retry/rate-limit
handlers dict[str, HandlerRule] {} Status code handlers

Parameter

Field Type Default Description
enable bool required Whether parameter is active
name str | None required Parameter key name
type str required "integer", "number", "boolean", "string", "list", "enum"
required bool required Whether value is required
value Any required Default value
friendly_name str required Display label
friendly_value tuple[str, ...] | None None Display labels for enum values
min_value int | float | None None Minimum (integer/number)
max_value int | float | None None Maximum (integer/number)
split_str str | None None List separator
tooltip str | None None Hover tooltip
placeholder str | None None Input placeholder (string only)
text_secret bool False Mask input (string only)
extra dict[str, Any] {} Unrecognised v2 fields

Notes:

  • friendly_name must be present for every parameter.
  • Enabled parameters require a non-empty friendly_name.
  • Disabled parameters may keep friendly_name="".
  • Unknown v2-only parameter fields are preserved in extra.

ResponseConfig

Field Type Default Description
image ResponseImage | None None Image response
others tuple[ResponseGroup, ...] () Additional data groups

ResponseImage

Field Type Default Description
content_type Literal["URL","BINARY"] required Image source type
path str required JSON path to image
is_list bool False Multiple images
is_base64 bool False Base64-encoded

Notes:

  • path must be non-empty when content_type is URL.
  • path may be empty when content_type is BINARY.

ResponseGroup

Field Type Description
friendly_name str Group display name
data tuple[ResponseDataField, ...] Fields in this group

ResponseDataField

Field Type Description
friendly_name str Field display name
path str JSON path to value

Configs

Field Type Default Description
request RequestConfig | None None HTTP request config
retry RetryPolicy | None None Retry behaviour
rate_limit RateLimit | None None Rate limiting

RequestConfig

Field Type Default Description
headers dict[str, str] {} Custom HTTP headers
timeout_ms int | str 30000 Request timeout

RetryPolicy

Field Type Default Description
count int 3 Max retry attempts
delay_ms int 10000 Delay between retries

RateLimit

Field Type Default Description
frequency int | None None Request count
per Literal["sec","min","hour","day"] "min" Time unit

HandlerRule

Field Type Default Description
action Literal["response","success","warning","error","message","browser","run","retry","return"] required Handler action type
extract dict[str, str] {} Data to extract from response
message str | None None Message to display
link str | None None URL for browser action
script str | None None Script for run action
front bool False Whether to show in foreground
count int | None None Retry count (retry action)
delay_ms int | None None Retry delay (retry action)

Handler keys are usually HTTP status codes such as 200 or fallbacks such as default.


Type Aliases

Name Value
APICoreVersion Literal["v1", "v2"]
FormatName Literal["json", "yaml", "toml"]

Clone this wiki locally