Antfly · Schema

InferenceGenerateRequest

AISearchRetrievalVectorHybrid

Properties

Name Type Description
model string Name of the generator model from models_dir/generators/
messages array Conversation messages (OpenAI-compatible format). When `context_management.checkpoint` is supplied, this array is the active suffix; the archived prefix represented by the checkpoint is not resent.
logprobs boolean Return actual token log-probabilities for non-streaming native grammar decoding. Incompatible routes reject the request.
top_logprobs integer Bounded alternatives per decoded token; retained evidence also has a hard byte ceiling.
max_tokens integer Maximum tokens to generate
temperature number Sampling temperature (0.0 = deterministic, higher = more random)
top_p number Nucleus sampling probability
top_k integer Top-k sampling (inference extension, not in OpenAI API)
stream boolean If true, partial message deltas will be sent as SSE events
stream_options object
chat_template_kwargs object
ignore_eos boolean inference-native benchmarking and controlled-generation extension. When true, generation does not stop on the model's end-of-sequence token and continues until another stop condition, such as `max_tok
tools array List of tools (functions) the model can call. Only supported by models with tool_call_format configured.
min_p number Min-p sampling threshold. Filters tokens where p < min_p * max_p. Simpler alternative to top_p.
repetition_penalty number Repetition penalty factor applied to previously generated tokens (1.0 = disabled, >1.0 penalizes, <1.0 encourages)
frequency_penalty number Additive penalty based on token frequency in context (logit -= frequency_penalty * count)
presence_penalty number Additive penalty for tokens that appeared at all in context (logit -= presence_penalty if count > 0)
response_format object Structured output control. OpenAI-compatible entry point for requesting JSON output. `{"type":"json_object"}` is supported directly. `{"type":"json_schema"}` is compiled into a native constrained-deco
grammar string inference-native grammar override. When set, this takes precedence over `response_format`. Grammar-constrained decoding is currently native-backend only.
draft_model string inference-native speculative decoding extension. Path or model identifier for a smaller draft model.
speculative_k integer inference-native speculative decoding extension. Number of draft tokens proposed per verification round.
speculation_policy string inference-native speculative decoding policy: `auto`, `force`, or `off`. Defaults to `auto` when a draft model is requested.
speculation_calibration string inference-native speculative decoding calibration state: `none`, `probe`, or `positive`. Defaults to `probe` for `auto` draft requests so they are measured instead of silently disabled, and to `none`
cache_dtype string inference-native KV cache quantization format. Lower precision reduces memory usage but may affect generation quality. Default auto-selects based on backend (f16 for GPU, f32 for CPU).
cache_compaction_ratio number inference-native KV cache compaction ratio applied after prefill via Attention Matching. Selects a subset of keys and fits new values via OLS to preserve attention behavior. 0.02 = 50x compression, 0.
context_management object
kv_cache object
prompt_cache_key string inference-native prompt prefix cache namespace key. Requests with the same key can reuse matching prompt-prefix KV on the same node. Required to enable prompt caching; requests without a key are never
prompt_cache boolean inference-native prompt prefix cache control. False bypasses prompt cache for this request. On Metal, an eligible cache request stays on the eager paged-attention path instead of automatically selecti
backend object
mode string inference-native graph execution mode. `eager` keeps the direct runtime path when possible. `compiled` runs inference graph planning, partitioning, and backend executor attachment.
compiled_target string inference-native compiled graph target. `partitioned` attaches compiled executors to eligible graph partitions. `whole-model` requests a compiled backend only when it can own the full traced graph sha
tool_choice object Controls how the model uses tools
View JSON Schema on GitHub

JSON Schema

antfly-inference-generate-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/antfly/json-schema/antfly-inference-generate-request-schema.json",
  "title": "InferenceGenerateRequest",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/antfly-openapi.yaml#/components/schemas/InferenceGenerateRequest",
  "type": "object",
  "required": [
    "model",
    "messages"
  ],
  "properties": {
    "model": {
      "type": "string",
      "description": "Name of the generator model from models_dir/generators/"
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/InferenceChatMessage"
      },
      "description": "Conversation messages (OpenAI-compatible format). When\n`context_management.checkpoint` is supplied, this array is the active suffix;\nthe archived prefix represented by the checkpoint is not resent.\n"
    },
    "logprobs": {
      "type": "boolean",
      "default": false,
      "description": "Return actual token log-probabilities for non-streaming native grammar decoding. Incompatible routes reject the request."
    },
    "top_logprobs": {
      "type": "integer",
      "minimum": 1,
      "maximum": 64,
      "default": 64,
      "description": "Bounded alternatives per decoded token; retained evidence also has a hard byte ceiling."
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Maximum tokens to generate",
      "default": 256
    },
    "temperature": {
      "type": "number",
      "format": "float",
      "x-go-type-skip-optional-pointer": false,
      "description": "Sampling temperature (0.0 = deterministic, higher = more random)",
      "minimum": 0,
      "maximum": 2,
      "default": 0
    },
    "top_p": {
      "type": "number",
      "format": "float",
      "x-go-type-skip-optional-pointer": false,
      "description": "Nucleus sampling probability",
      "minimum": 0,
      "maximum": 1,
      "default": 0
    },
    "top_k": {
      "type": "integer",
      "x-go-type-skip-optional-pointer": false,
      "minimum": 0,
      "maximum": 2147483647,
      "description": "Top-k sampling (inference extension, not in OpenAI API)",
      "default": 0
    },
    "stream": {
      "type": "boolean",
      "description": "If true, partial message deltas will be sent as SSE events",
      "default": false
    },
    "stream_options": {
      "$ref": "#/$defs/InferenceGenerateStreamOptions"
    },
    "chat_template_kwargs": {
      "$ref": "#/$defs/InferenceGenerateChatTemplateKwargs"
    },
    "ignore_eos": {
      "type": "boolean",
      "description": "inference-native benchmarking and controlled-generation extension. When true, generation\ndoes not stop on the model's end-of-sequence token and continues until another stop\ncondition, such as `max_tokens`, is reached. Omitted or false preserves normal EOS handling.\n",
      "default": false
    },
    "tools": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/InferenceTool"
      },
      "description": "List of tools (functions) the model can call.\nOnly supported by models with tool_call_format configured.\n"
    },
    "min_p": {
      "type": "number",
      "format": "float",
      "description": "Min-p sampling threshold. Filters tokens where p < min_p * max_p. Simpler alternative to top_p.",
      "minimum": 0,
      "maximum": 1,
      "default": 0
    },
    "repetition_penalty": {
      "type": "number",
      "format": "float",
      "description": "Repetition penalty factor applied to previously generated tokens (1.0 = disabled, >1.0 penalizes, <1.0 encourages)",
      "minimum": 0,
      "exclusiveMinimum": true,
      "default": 1
    },
    "frequency_penalty": {
      "type": "number",
      "format": "float",
      "description": "Additive penalty based on token frequency in context (logit -= frequency_penalty * count)",
      "minimum": -2,
      "maximum": 2,
      "default": 0
    },
    "presence_penalty": {
      "type": "number",
      "format": "float",
      "description": "Additive penalty for tokens that appeared at all in context (logit -= presence_penalty if count > 0)",
      "minimum": -2,
      "maximum": 2,
      "default": 0
    },
    "response_format": {
      "$ref": "#/$defs/InferenceGenerateResponseFormat",
      "description": "Structured output control. OpenAI-compatible entry point for requesting JSON output.\n`{\"type\":\"json_object\"}` is supported directly. `{\"type\":\"json_schema\"}` is compiled into a native constrained-decoding grammar on the native backend.\n"
    },
    "grammar": {
      "type": "string",
      "description": "inference-native grammar override. When set, this takes precedence over `response_format`.\nGrammar-constrained decoding is currently native-backend only.\n"
    },
    "draft_model": {
      "type": "string",
      "description": "inference-native speculative decoding extension. Path or model identifier for a smaller draft model.\n"
    },
    "speculative_k": {
      "type": "integer",
      "minimum": 1,
      "maximum": 16,
      "description": "inference-native speculative decoding extension. Number of draft tokens proposed per verification round.\n"
    },
    "speculation_policy": {
      "type": "string",
      "enum": [
        "auto",
        "force",
        "off"
      ],
      "description": "inference-native speculative decoding policy: `auto`, `force`, or `off`.\nDefaults to `auto` when a draft model is requested.\n"
    },
    "speculation_calibration": {
      "type": "string",
      "enum": [
        "none",
        "probe",
        "positive"
      ],
      "description": "inference-native speculative decoding calibration state: `none`, `probe`, or `positive`.\nDefaults to `probe` for `auto` draft requests so they are measured instead of silently disabled,\nand to `none` for `force` or `off`.\n"
    },
    "cache_dtype": {
      "type": "string",
      "enum": [
        "f16",
        "f32",
        "int8",
        "fp8",
        "int4"
      ],
      "description": "inference-native KV cache quantization format. Lower precision reduces memory usage but may\naffect generation quality. Default auto-selects based on backend (f16 for GPU, f32 for CPU).\n"
    },
    "cache_compaction_ratio": {
      "type": "number",
      "format": "float",
      "minimum": 0.0,
      "exclusiveMinimum": true,
      "maximum": 1.0,
      "description": "inference-native KV cache compaction ratio applied after prefill via Attention Matching.\nSelects a subset of keys and fits new values via OLS to preserve attention behavior.\n0.02 = 50x compression, 0.1 = 10x, 0.5 = 2x. Null/omitted = no compaction.\nThe resident HTTP server currently rejects non-null values with `UNSUPPORTED_FEATURE`;\ndevice-backed compaction is not yet supported.\n"
    },
    "context_management": {
      "$ref": "#/$defs/InferenceContextManagement"
    },
    "kv_cache": {
      "$ref": "#/$defs/InferenceKvCachePolicy"
    },
    "prompt_cache_key": {
      "type": "string",
      "maxLength": 256,
      "description": "inference-native prompt prefix cache namespace key. Requests with the same key can\nreuse matching prompt-prefix KV on the same node. Required to enable prompt caching;\nrequests without a key are never cached.\n"
    },
    "prompt_cache": {
      "type": "boolean",
      "description": "inference-native prompt prefix cache control. False bypasses prompt cache for this request.\nOn Metal, an eligible cache request stays on the eager paged-attention path instead of\nautomatically selecting whole-model compiled execution. Explicit `mode: compiled` is\nrejected while prompt caching is active.\n"
    },
    "backend": {
      "$ref": "#/$defs/InferenceModelBackend"
    },
    "mode": {
      "type": "string",
      "enum": [
        "eager",
        "compiled"
      ],
      "description": "inference-native graph execution mode. `eager` keeps the direct runtime path when possible.\n`compiled` runs inference graph planning, partitioning, and backend executor attachment.\n"
    },
    "compiled_target": {
      "type": "string",
      "enum": [
        "partitioned",
        "whole-model"
      ],
      "description": "inference-native compiled graph target. `partitioned` attaches compiled executors to eligible\ngraph partitions. `whole-model` requests a compiled backend only when it can own the full\ntraced graph shape.\n"
    },
    "tool_choice": {
      "$ref": "#/$defs/InferenceToolChoice",
      "description": "Controls how the model uses tools"
    }
  },
  "$defs": {
    "ChatMessageContent": {
      "x-go-type": "stdjson.RawMessage",
      "x-go-type-import": {
        "path": "encoding/json",
        "name": "stdjson"
      },
      "description": "Message content. Supports two formats:\n- Simple string: \"Hello, how are you?\"\n- Array of content parts: [{\"type\": \"text\", \"text\": \"Hello\"}]\n",
      "oneOf": [
        {
          "type": "string",
          "description": "Simple text content."
        },
        {
          "type": "array",
          "description": "Array of multimodal content parts.",
          "items": {
            "$ref": "#/$defs/ContentPart"
          }
        }
      ]
    },
    "ContentPart": {
      "description": "A content part for multimodal input (text, image URL, or inline media).",
      "oneOf": [
        {
          "$ref": "#/$defs/TextContentPart"
        },
        {
          "$ref": "#/$defs/ImageURLContentPart"
        },
        {
          "$ref": "#/$defs/MediaContentPart"
        }
      ]
    },
    "ImageURL": {
      "type": "object",
      "description": "Image URL or data URI.",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "URL or data URI (data:image/png;base64,...)."
        }
      }
    },
    "ImageURLContentPart": {
      "type": "object",
      "description": "Image content in OpenAI-compatible format.",
      "required": [
        "type",
        "image_url"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "image_url"
          ]
        },
        "image_url": {
          "$ref": "#/$defs/ImageURL"
        }
      }
    },
    "InferenceChatMessage": {
      "type": "object",
      "required": [
        "role"
      ],
      "properties": {
        "extra_content": {
          "type": "object",
          "additionalProperties": true,
          "description": "Opaque provider message metadata. Preserve unchanged when replaying assistant messages; native Anthropic content retains signed thinking blocks."
        },
        "role": {
          "$ref": "#/$defs/InferenceRole"
        },
        "content": {
          "$ref": "#/$defs/ChatMessageContent"
        },
        "tool_calls": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ToolCall"
          },
          "description": "Tool calls made by the assistant (only for role=assistant)"
        },
        "tool_call_id": {
          "type": "string",
          "description": "ID of the tool call this message is responding to (only for role=tool)"
        }
      }
    },
    "InferenceContextCheckpoint": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "version",
        "covered_messages",
        "covered_prefix_sha256",
        "memory_sha256",
        "model_revision",
        "tokenizer_revision",
        "template_revision",
        "memory"
      ],
      "properties": {
        "version": {
          "type": "string",
          "enum": [
            "v1"
          ],
          "description": "Structured-memory checkpoint wire version."
        },
        "covered_messages": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of authoritative leading messages represented by this checkpoint."
        },
        "covered_prefix_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$",
          "description": "SHA-256 of the canonical covered message prefix."
        },
        "parent_checkpoint_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "memory_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$",
          "description": "SHA-256 of the canonical structured memory payload."
        },
        "model_revision": {
          "type": "string"
        },
        "tokenizer_revision": {
          "type": "string"
        },
        "template_revision": {
          "type": "string"
        },
        "memory": {
          "$ref": "#/$defs/InferenceContextStructuredMemory"
        }
      },
      "description": "Structured memory bound to the exact model, tokenizer and chat-template\nrevisions. HTTP 409 CONTEXT_CHECKPOINT_STALE_REVISION means one of these\nrevisions changed. Rebuild from the original transcript using the selected\nmodel; retrying the same checkpoint against another generator is not a\nfallback. Digest/history/format failures use CONTEXT_CHECKPOINT_MISMATCH.\n"
    },
    "InferenceContextManagement": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "reject",
            "window"
          ],
          "description": "`reject` fails when the rendered input exceeds the model budget. `window`\npermits deterministic removal of older turns. Omission preserves the\nserver's existing reject-on-overflow behavior. Generation accepts only\nthese admission policies; `inspect` and `compact` are explicit preparation\noperations. The latest user turn, including its tool-call/result sequence,\nis always retained. A mandatory turn that cannot fit is rejected rather\nthan split; keep_recent_turns=0 does not remove the active turn.\n"
        },
        "checkpoint": {
          "$ref": "#/$defs/InferenceContextCheckpoint"
        },
        "max_input_tokens": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483647,
          "description": "Optional client ceiling below the model's effective input limit."
        },
        "keep_recent_turns": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2147483647,
          "default": 2,
          "description": "Minimum number of most recent complete turns retained by windowing."
        }
      }
    },
    "InferenceContextStructuredMemory": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "conversation",
        "tool_evidence",
        "unresolved_tool_calls"
      ],
      "properties": {
        "conversation": {
          "type": "string",
          "description": "Compacted conversation memory excluding attributed tool evidence."
        },
        "tool_evidence": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/InferenceContextToolEvidence"
          }
        },
        "unresolved_tool_calls": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/InferenceContextUnresolvedToolCall"
          }
        }
      }
    },
    "InferenceContextToolEvidence": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tool_call_id",
        "tool_name",
        "facts"
      ],
      "properties": {
        "tool_call_id": {
          "type": "string"
        },
        "tool_name": {
          "type": "string"
        },
        "facts": {
          "type": "string",
          "description": "Compacted evidence attributed to this completed tool call."
        }
      }
    },
    "InferenceContextUnresolvedToolCall": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tool_call_id",
        "tool_name"
      ],
      "properties": {
        "tool_call_id": {
          "type": "string"
        },
        "tool_name": {
          "type": "string"
        }
      }
    },
    "InferenceFunctionDefinition": {
      "type": "object",
      "description": "Definition of a function that can be called by the model",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the function to call"
        },
        "description": {
          "type": "string",
          "description": "A description of what the function does"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": true,
          "description": "JSON Schema object describing the function parameters"
        },
        "strict": {
          "type": "boolean",
          "description": "Whether to enforce strict parameter validation",
          "default": false
        }
      }
    },
    "InferenceGenerateChatTemplateKwargs": {
      "type": "object",
      "additionalProperties": false,
      "description": "Typed options passed to the model's chat template.",
      "properties": {
        "enable_thinking": {
          "type": "boolean",
          "x-go-type-skip-optional-pointer": false,
          "description": "Controls templates that support an `enable_thinking` variable. False asks the\ntemplate to open a public/final response channel directly. Omitted preserves the\nmodel template's default behavior.\n"
        }
      }
    },
    "InferenceGenerateJsonSchemaConfig": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Schema name"
        },
        "strict": {
          "type": "boolean",
          "description": "Whether output should strictly follow the schema"
        },
        "schema": {
          "type": "object",
          "additionalProperties": true,
          "description": "JSON Schema object"
        }
      }
    },
    "InferenceGenerateResponseFormat": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "Structured output mode",
          "enum": [
            "text",
            "json_object",
            "json_schema"
          ]
        },
        "json_schema": {
          "$ref": "#/$defs/InferenceGenerateJsonSchemaConfig",
          "description": "Optional schema payload for `type=json_schema`. Enforced during native constrained decoding and validated after generation."
        }
      }
    },
    "InferenceGenerateStreamOptions": {
      "type": "object",
      "description": "Options that apply only to streamed generation responses.",
      "properties": {
        "include_usage": {
          "type": "boolean",
          "description": "When true, emit a final usage-only chunk before the `[DONE]` sentinel.\nAll preceding chunks carry null or omitted usage.\n",
          "default": false
        }
      }
    },
    "InferenceKvCachePolicy": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "exact_hybrid",
            "select_v1"
          ],
          "description": "Requested KV retention policy. `exact_hybrid` uses only model-native exact\nlocal/global attention retention. `select_v1` requests the versioned lossy\nselector and is rejected when the loaded model/backend has not qualified it.\n"
        },
        "version": {
          "type": "string",
          "enum": [
            "v1"
          ],
          "default": "v1",
          "description": "Wire-contract version. The initial policies use `v1` only."
        }
      }
    },
    "InferenceModelBackend": {
      "type": "string",
      "description": "Optional backend preference for model loading or request execution.\n`auto` keeps the node default behavior.\n`xla` selects the PJRT/XLA backend and may require a PJRT plugin path via\n`ANTFLY_INFERENCE_XLA_PLUGIN`, `ANTFLY_INFERENCE_PJRT_PLUGIN`,\n`PJRT_PLUGIN_PATH`, or `PJRT_PLUGIN`.\n`webgpu` selects the Wasm/WebGPU backend in Wasm builds; pair it with\n`mode: \"compiled\"` on generation requests to request WebGPU graph partition execution.\n",
      "enum": [
        "auto",
        "native",
        "metal",
        "cuda",
        "xla",
        "webgpu",
        "wasm"
      ]
    },
    "InferenceRole": {
      "type": "string",
      "enum": [
        "user",
        "assistant",
        "system",
        "developer",
        "tool"
      ],
      "description": "Chat message role, including developer instructions preserved by context management."
    },
    "InferenceTool": {
      "type": "object",
      "description": "A tool (function) that the model can call",
      "required": [
        "type",
        "function"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "function"
          ],
          "description": "The type of tool (currently only \"function\" is supported)"
        },
        "function": {
          "$ref": "#/$defs/InferenceFunctionDefinition"
        }
      }
    },
    "InferenceToolChoice": {
      "description": "Controls how the model uses tools. Options:\n- \"auto\": Model decides whether to call a tool (default)\n- \"none\": Model will not call any tools\n- \"required\": Model must call at least one tool\n- object: Force a specific function to be called\n",
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "required"
          ]
        },
        {
          "type": "object",
          "description": "Force a specific function to be called",
          "required": [
            "type",
            "function"
          ],
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "function"
              ]
            },
            "function": {
              "$ref": "#/$defs/InferenceToolChoiceFunction"
            }
          }
        }
      ]
    },
    "InferenceToolChoiceFunction": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the function to call"
        }
      }
    },
    "MediaContentPart": {
      "type": "object",
      "description": "Inline binary media content (audio, image, etc.).",
      "required": [
        "type",
        "data",
        "mime_type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "media"
          ]
        },
        "data": {
          "type": "string",
          "format": "byte",
          "description": "Base64-encoded binary data."
        },
        "mime_type": {
          "type": "string",
          "description": "MIME type (audio/wav, image/gif, image/png, etc.)."
        },
        "sampling": {
          "$ref": "#/$defs/VideoSamplingPolicy"
        }
      }
    },
    "TextContentPart": {
      "type": "object",
      "description": "Text content for multimodal input.",
      "required": [
        "type",
        "text"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "text"
          ]
        },
        "text": {
          "type": "string",
          "description": "Text content."
        }
      }
    },
    "ToolCall": {
      "type": "object",
      "description": "OpenAI-compatible assistant tool call.",
      "required": [
        "id",
        "type",
        "function"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Tool call identifier."
        },
        "type": {
          "type": "string",
          "enum": [
            "function"
          ]
        },
        "function": {
          "$ref": "#/$defs/ToolCallFunction"
        },
        "extra_content": {
          "type": "object",
          "additionalProperties": true,
          "description": "Opaque provider tool metadata, including Google thought signatures. Preserve it unchanged when replaying assistant tool calls."
        }
      }
    },
    "ToolCallFunction": {
      "type": "object",
      "description": "The function called by a model tool call.",
      "required": [
        "name",
        "arguments"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Function name."
        },
        "arguments": {
          "type": "string",
          "description": "JSON string of function arguments."
        }
      }
    },
    "VideoSamplingPolicy": {
      "type": "object",
      "description": "Explicit EmbeddingGemma 2 video-group sampling. Timestamp windows are half-open and relative to the first presentation picture.",
      "required": [
        "policy"
      ],
      "properties": {
        "policy": {
          "type": "string",
          "enum": [
            "reference",
            "timestamps"
          ]
        },
        "start_ns": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "end_ns": {
          "type": "integer",
          "format": "int64",
          "minimum": 1
        },
        "step_ns": {
          "type": "integer",
          "format": "int64",
          "minimum": 1
        },
        "max_frames": {
          "type": "integer",
          "minimum": 1,
          "maximum": 32
        },
        "overflow": {
          "type": "string",
          "enum": [
            "uniform",
            "truncate"
          ]
        },
        "hold": {
          "type": "boolean",
          "description": "Sample the displayed picture, including VFR holds, rather than the next picture at or after the target."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/antfly-inference-generate-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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.