{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/zurelay-com/json-schema/zurelay-com-post-v1-chat-completions-request-schema.json",
  "title": "PostV1ChatCompletionsRequest",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/zurelay-com-openapi-generated.yml#/components/schemas/PostV1ChatCompletionsRequest",
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "A model ID from the models page, such as claude-opus-5-5 or gpt-6-sol."
    },
    "messages": {
      "type": "array",
      "description": "The conversation: system (or developer), user, assistant and tool messages. Content is a string, or an array of parts to add images, PDFs, audio or video."
    },
    "stream": {
      "type": "boolean",
      "description": "Send the answer as server‑sent events while it’s written."
    },
    "stream_options": {
      "type": "object",
      "description": "Object with \"include_usage\": true to add a final chunk with token usage."
    },
    "max_completion_tokens": {
      "type": "integer",
      "description": "The most tokens to generate, reasoning included. max_tokens works too."
    },
    "temperature": {
      "type": "number",
      "description": "0 to 2. Lower is more focused, higher more varied."
    },
    "top_p": {
      "type": "number",
      "description": "Nucleus sampling, 0 to 1. Change this or temperature, not both."
    },
    "stop": {
      "type": "string",
      "description": "Up to 4 sequences where generation stops."
    },
    "tools": {
      "type": "array",
      "description": "Functions the model may call."
    },
    "tool_choice": {
      "type": "string",
      "description": "auto, none, required, or a specific function."
    },
    "response_format": {
      "type": "object",
      "description": "JSON output: { \"type\": \"json_object\" } or json_schema with a schema."
    },
    "reasoning_effort": {
      "type": "string",
      "description": "How hard a reasoning model thinks: none, minimal, low, medium, high, xhigh or max."
    },
    "seed": {
      "type": "integer",
      "description": "Best‑effort reproducibility, for models that support it."
    },
    "models": {
      "type": "array",
      "description": "Smart routing alternatives to try, in order, if the model is down."
    }
  },
  "required": [
    "model",
    "messages"
  ]
}