{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/paper-instruments/json-schema/paper-instruments-post-v1-chat-completions-request-schema.json",
  "title": "PostV1ChatCompletionsRequest",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/paper-instruments-openapi-generated.yml#/components/schemas/PostV1ChatCompletionsRequest",
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "ultramarine-1-flash"
    },
    "messages": {
      "type": "string",
      "description": "Required, non-empty array. Roles: system, user, assistant, tool"
    },
    "reasoning_effort": {
      "type": "string",
      "description": "low, high, or max. Default: max"
    },
    "max_completion_tokens": {
      "type": "string",
      "description": "Positive integer, including reasoning"
    },
    "stream": {
      "type": "string",
      "description": "Boolean. Default: false"
    },
    "stream_options": {
      "type": "string",
      "description": "Set {\"include_usage\": true} to receive stream usage"
    },
    "tools": {
      "type": "string",
      "description": "Function tools and tool selection"
    },
    "tool_choice": {
      "type": "string",
      "description": "Tool selection"
    },
    "parallel_tool_calls": {
      "type": "string",
      "description": "Parallel tool calls"
    },
    "response_format": {
      "type": "string",
      "description": "Structured output: json_object or json_schema, or plain text"
    },
    "temperature": {
      "type": "string",
      "description": "Number, 0–2. Default and recommended: 1"
    },
    "top_p": {
      "type": "string",
      "description": "Number, 0–1. Default and recommended: 0.95"
    },
    "top_k": {
      "type": "string",
      "description": "Integer, -1 or greater. Default and recommended: -1"
    },
    "min_p": {
      "type": "string",
      "description": "Minimum-probability sampling control"
    },
    "presence_penalty": {
      "type": "string",
      "description": "Token selection control"
    },
    "frequency_penalty": {
      "type": "string",
      "description": "Token selection control"
    },
    "repetition_penalty": {
      "type": "string",
      "description": "Token selection control"
    },
    "logit_bias": {
      "type": "string",
      "description": "Token selection control"
    },
    "logprobs": {
      "type": "string",
      "description": "Token probabilities"
    },
    "top_logprobs": {
      "type": "string",
      "description": "Token probabilities. Must be an integer, 0–20"
    },
    "n": {
      "type": "string",
      "description": "Integer, 1–16. Default: 1"
    },
    "stop": {
      "type": "string",
      "description": "A string or up to 16 non-empty strings, each at most 1,024 characters"
    },
    "seed": {
      "type": "string",
      "description": "Sampling seed"
    },
    "prompt_cache_key": {
      "type": "string",
      "description": "Optional cache hint"
    },
    "user": {
      "type": "string",
      "description": "User identifier"
    }
  },
  "required": [
    "model",
    "messages"
  ]
}