{ "openapi": "3.0.0", "info": { "description": "AI gateway routing requests to multiple LLM providers (OpenAI, Anthropic, Gemini, Groq, Fireworks AI, Meta, OpenRouter, Kilo AI, DeepSeek, Z.ai, xAI, MiniMax, Xiaomi MiMo, OpenCode Go, Oracle, Ollama, Bailian). Drop-in OpenAI-compatible API.", "title": "GoModel API", "contact": {}, "version": "1.0" }, "paths": { "/admin/access": { "get": { "description": "Reports whether the credential administers the whole gateway\nor only one user-path subtree, so clients can adapt what\nthey offer before hitting scoped endpoints.", "tags": [ "admin" ], "summary": "Describe the caller's admin scope", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.accessResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/access", "title": "Describe the caller's admin scope", "description": "GoModel API reference for GET /admin/access: Describe the caller's admin scope." } } } }, "/admin/audit/conversation": { "get": { "description": "Thread entries carry the request/response bodies the\ntranscript is built from; attempts, request revisions, and\nresponse headers are omitted; redacted request headers and\nper-request usage summaries are retained for continuation\nand prompt-cache visualization.", "tags": [ "admin" ], "summary": "Get the interaction session containing an audit log entry", "parameters": [ { "description": "Anchor audit log entry ID", "name": "log_id", "in": "query", "required": true, "schema": { "type": "string" } }, { "description": "Max entries in thread (default 40, max 200)", "name": "limit", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.auditConversationResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/audit/conversation", "title": "Get the interaction session containing an audit log entry", "description": "GoModel API reference for GET /admin/audit/conversation: Get the interaction session containing an audit log entry." } } } }, "/admin/audit/detail": { "get": { "description": "Returns one audit log entry enriched with usage summary when available.", "tags": [ "admin" ], "summary": "Get audit log entry detail", "parameters": [ { "description": "Audit log entry ID", "name": "log_id", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.auditLogEntryResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/audit/detail", "title": "Get audit log entry detail", "description": "GoModel API reference for GET /admin/audit/detail: Get audit log entry detail." } } } }, "/admin/audit/log": { "get": { "description": "Entries are slimmed for the wire: request/response bodies,\nper-attempt error bodies, and rewritten revision bodies are\nomitted (bodies_omitted=true). Fetch /admin/audit/detail for\nthe full payload of one entry.", "tags": [ "admin" ], "summary": "Get paginated audit log entries", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by requested model selector", "name": "requested_model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by HTTP method", "name": "method", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request path", "name": "path", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact session id", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by error type", "name": "error_type", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by status code", "name": "status_code", "in": "query", "schema": { "type": "integer" } }, { "description": "Filter by stream mode (true/false)", "name": "stream", "in": "query", "schema": { "type": "boolean" } }, { "description": "Comma-separated endpoint operations to hide, e.g. mcp,provider_passthrough,audio_speech; other entries, including unclassified ones, stay", "name": "exclude_operation", "in": "query", "schema": { "type": "string" } }, { "description": "Search across request_id/requested_model/provider/method/path/session_id/error_type/error_message", "name": "search", "in": "query", "schema": { "type": "string" } }, { "description": "Page size (default 25, max 100)", "name": "limit", "in": "query", "schema": { "type": "integer" } }, { "description": "Offset for pagination", "name": "offset", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.auditLogListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/audit/log", "title": "Get paginated audit log entries", "description": "GoModel API reference for GET /admin/audit/log: Get paginated audit log entries." } } } }, "/admin/audit/sessions": { "get": { "description": "Groups audit log entries by session id into threads and returns\none summary per thread — its latest matching entry and complete\nrequest count — ordered by latest activity. Entries without a session id\nappear as single-entry threads. Filters apply to entries before\ngrouping.", "tags": [ "admin" ], "summary": "Get paginated audit sessions (threads)", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by requested model selector", "name": "requested_model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by HTTP method", "name": "method", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request path", "name": "path", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by error type", "name": "error_type", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by status code", "name": "status_code", "in": "query", "schema": { "type": "integer" } }, { "description": "Filter by stream mode (true/false)", "name": "stream", "in": "query", "schema": { "type": "boolean" } }, { "description": "Comma-separated endpoint operations to hide, e.g. mcp,provider_passthrough,audio_speech; other entries, including unclassified ones, stay", "name": "exclude_operation", "in": "query", "schema": { "type": "string" } }, { "description": "Search across request_id/requested_model/provider/method/path/session_id/error_type/error_message", "name": "search", "in": "query", "schema": { "type": "string" } }, { "description": "Page size in threads (default 25, max 100)", "name": "limit", "in": "query", "schema": { "type": "integer" } }, { "description": "Offset for pagination", "name": "offset", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.auditSessionsListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/audit/sessions", "title": "Get paginated audit sessions (threads)", "description": "GoModel API reference for GET /admin/audit/sessions: Get paginated audit sessions (threads)." } } } }, "/admin/audit/stats": { "get": { "description": "Returns request counts grouped into 2xx/4xx/5xx status classes\nper time bucket, an overall success-rate summary, and average\nrequest duration per provider for the dashboard charts.\nRanges up to 3 days use hourly buckets, longer ranges daily.", "tags": [ "admin" ], "summary": "Get time-bucketed request status and latency stats", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auditlog.RequestStats" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/audit/stats", "title": "Get time-bucketed request status and latency stats", "description": "GoModel API reference for GET /admin/audit/stats: Get time-bucketed request status and latency stats." } } } }, "/admin/budgets": { "get": { "tags": [ "admin" ], "summary": "List budgets with current status", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.budgetListResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets", "title": "List budgets with current status", "description": "GoModel API reference for GET /admin/budgets: List budgets with current status." } } }, "put": { "tags": [ "admin" ], "summary": "Create or update one budget", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertBudgetRequest" } } }, "description": "Budget key and amount", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.budgetListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets", "title": "Create or update one budget", "description": "GoModel API reference for PUT /admin/budgets: Create or update one budget." } } }, "delete": { "tags": [ "admin" ], "summary": "Delete one budget", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.deleteBudgetRequest" } } }, "description": "Budget key", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.budgetListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets", "title": "Delete one budget", "description": "GoModel API reference for DELETE /admin/budgets: Delete one budget." } } } }, "/admin/budgets/reset": { "post": { "tags": [ "admin" ], "summary": "Reset all budget periods", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetBudgetsRequest" } } }, "description": "Reset confirmation", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetBudgetsResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets/reset", "title": "Reset all budget periods", "description": "GoModel API reference for POST /admin/budgets/reset: Reset all budget periods." } } } }, "/admin/budgets/reset-one": { "post": { "tags": [ "admin" ], "summary": "Reset one budget period", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetBudgetRequest" } } }, "description": "Budget key", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.budgetListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets/reset-one", "title": "Reset one budget period", "description": "GoModel API reference for POST /admin/budgets/reset-one: Reset one budget period." } } } }, "/admin/budgets/settings": { "get": { "tags": [ "admin" ], "summary": "Get budget reset settings", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/budget.Settings" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets/settings", "title": "Get budget reset settings", "description": "GoModel API reference for GET /admin/budgets/settings: Get budget reset settings." } } }, "put": { "tags": [ "admin" ], "summary": "Update budget reset settings", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.updateBudgetSettingsRequest" } } }, "description": "Budget reset settings", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/budget.Settings" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/budgets/settings", "title": "Update budget reset settings", "description": "GoModel API reference for PUT /admin/budgets/settings: Update budget reset settings." } } } }, "/admin/cache/overview": { "get": { "tags": [ "admin" ], "summary": "Get cached-only usage overview", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Grouping interval: daily, weekly, monthly, yearly (default daily)", "name": "interval", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (cache overview always uses cached mode)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.CacheOverview" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/cache/overview", "title": "Get cached-only usage overview", "description": "GoModel API reference for GET /admin/cache/overview: Get cached-only usage overview." } } } }, "/admin/mcp-servers": { "get": { "tags": [ "admin" ], "summary": "List MCP servers (config-declared and admin-managed)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/admin.mcpServerViewResponse" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-servers", "title": "List MCP servers (config-declared and admin-managed)", "description": "GoModel API reference for GET /admin/mcp-servers: List MCP servers (config-declared and admin-managed)." } } }, "put": { "tags": [ "admin" ], "summary": "Create or update one admin-managed MCP server", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertMCPServerRequest" } } }, "description": "MCP server definition", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.mcpServerViewResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-servers", "title": "Create or update one admin-managed MCP server", "description": "GoModel API reference for PUT /admin/mcp-servers: Create or update one admin-managed MCP server." } } } }, "/admin/mcp-servers/{name}": { "delete": { "tags": [ "admin" ], "summary": "Delete one admin-managed MCP server", "parameters": [ { "description": "MCP server slug", "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-servers/{name}", "title": "Delete one admin-managed MCP server", "description": "GoModel API reference for DELETE /admin/mcp-servers/{name}: Delete one admin-managed MCP server." } } } }, "/admin/mcp-servers/{name}/catalog": { "get": { "description": "Lists the tools, prompts, resources, and resource templates the named server currently exposes through the gateway, after operator tool filters. Discovered tools the filters hide are listed separately under excluded_tools. Names are the upstream originals; the aggregated /mcp endpoint prefixes them with the server slug.", "tags": [ "admin" ], "summary": "Inspect one MCP server's current catalog", "parameters": [ { "description": "MCP server slug", "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/mcpgateway.CatalogView" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-servers/{name}/catalog", "title": "Inspect one MCP server's current catalog", "description": "GoModel API reference for GET /admin/mcp-servers/{name}/catalog: Inspect one MCP server's current catalog." } } } }, "/admin/mcp-servers/{name}/reconnect": { "post": { "tags": [ "admin" ], "summary": "Force-redial one MCP server and return its fresh state", "parameters": [ { "description": "MCP server slug", "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.mcpServerViewResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-servers/{name}/reconnect", "title": "Force-redial one MCP server and return its fresh state", "description": "GoModel API reference for POST /admin/mcp-servers/{name}/reconnect: Force-redial one MCP server and return its fresh state." } } } }, "/admin/mcp-virtual-servers": { "get": { "description": "Each virtual server serves a subset of the MCP servers at /mcp/{name}. missing_servers lists members no server matches; conflict explains why a virtual server is not served.", "tags": [ "admin" ], "summary": "List virtual MCP servers (config-declared and admin-managed)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/admin.mcpVirtualServerResponse" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-virtual-servers", "title": "List virtual MCP servers (config-declared and admin-managed)", "description": "GoModel API reference for GET /admin/mcp-virtual-servers: List virtual MCP servers (config-declared and admin-managed)." } } }, "put": { "description": "Members must be existing MCP servers. A new virtual server may not use an MCP server's slug, and config-declared virtual servers are read-only.", "tags": [ "admin" ], "summary": "Create or update one admin-managed virtual MCP server", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertMCPVirtualServerRequest" } } }, "description": "Virtual MCP server definition", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.mcpVirtualServerResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-virtual-servers", "title": "Create or update one admin-managed virtual MCP server", "description": "GoModel API reference for PUT /admin/mcp-virtual-servers: Create or update one admin-managed virtual MCP server." } } } }, "/admin/mcp-virtual-servers/{name}": { "delete": { "tags": [ "admin" ], "summary": "Delete one admin-managed virtual MCP server", "parameters": [ { "description": "Virtual MCP server name", "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/mcp-virtual-servers/{name}", "title": "Delete one admin-managed virtual MCP server", "description": "GoModel API reference for DELETE /admin/mcp-virtual-servers/{name}: Delete one admin-managed virtual MCP server." } } } }, "/admin/media/{id}": { "get": { "description": "Streams the bytes of an audio or image object the audit log\nreferences by media_id, with its content type. Range requests\nare honored so browser players can seek. An object outside the\ncaller's user-path scope is reported as missing.", "tags": [ "admin" ], "summary": "Download a stored media object", "parameters": [ { "description": "Media object id", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "206": { "description": "Partial Content", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad Request", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/media/{id}", "title": "Download a stored media object", "description": "GoModel API reference for GET /admin/media/{id}: Download a stored media object." } } } }, "/admin/model-pricing-overrides": { "get": { "description": "Lists persisted USD pricing overrides. Selectors support global \"/\", provider-wide \"provider/\", model-wide \"model\", and exact \"provider/model\" scopes.", "tags": [ "admin" ], "summary": "List model pricing overrides", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/pricingoverrides.View" }, "maxItems": 10000, "description": "Bounded by maxItems=10000." } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/model-pricing-overrides", "title": "List model pricing overrides", "description": "GoModel API reference for GET /admin/model-pricing-overrides: List model pricing overrides." } } }, "put": { "description": "Stores USD-only pricing for one selector. More precise selectors override broader selectors at runtime.", "tags": [ "admin" ], "summary": "Create or update one model pricing override", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertModelPricingOverrideRequest" } } }, "description": "Pricing selector and override", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/pricingoverrides.View" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/model-pricing-overrides", "title": "Create or update one model pricing override", "description": "GoModel API reference for PUT /admin/model-pricing-overrides: Create or update one model pricing override." } } }, "delete": { "tags": [ "admin" ], "summary": "Delete one model pricing override", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.deleteModelPricingOverrideRequest" } } }, "description": "Pricing selector to remove", "required": true }, "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/model-pricing-overrides", "title": "Delete one model pricing override", "description": "GoModel API reference for DELETE /admin/model-pricing-overrides: Delete one model pricing override." } } } }, "/admin/models": { "get": { "tags": [ "admin" ], "summary": "List all registered models with provider info and access state", "parameters": [ { "description": "Filter by model category", "name": "category", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/admin.modelInventoryResponse" }, "maxItems": 10000, "description": "Bounded by maxItems=10000." } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/models", "title": "List all registered models with provider info and access state", "description": "GoModel API reference for GET /admin/models: List all registered models with provider info and access state." } } } }, "/admin/models/categories": { "get": { "tags": [ "admin" ], "summary": "List model categories with counts", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/providers.CategoryCount" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/models/categories", "title": "List model categories with counts", "description": "GoModel API reference for GET /admin/models/categories: List model categories with counts." } } } }, "/admin/models/metadata": { "get": { "description": "Returns the merged metadata the gateway serves for a model together with each layer it was merged from: the provider's own listing, the model catalog entry and the config.yaml override. A null layer knows nothing about the model. `sources` names the winning layer per field (config, provider, catalog or inferred).", "tags": [ "admin" ], "summary": "Show where one model's metadata comes from", "parameters": [ { "description": "Provider instance name or provider type", "name": "provider", "in": "query", "required": true, "schema": { "type": "string" } }, { "description": "Raw upstream model ID", "name": "model", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/providers.ModelMetadataLayers" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/models/metadata", "title": "Show where one model's metadata comes from", "description": "GoModel API reference for GET /admin/models/metadata: Show where one model's metadata comes from." } } } }, "/admin/provider-credentials": { "get": { "tags": [ "admin" ], "summary": "List admin-managed model provider credentials", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/admin.providerCredentialViewResponse" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/provider-credentials", "title": "List admin-managed model provider credentials", "description": "GoModel API reference for GET /admin/provider-credentials: List admin-managed model provider credentials." } } }, "put": { "description": "Registers (or re-registers) the provider into the running gateway immediately, without a restart.", "tags": [ "admin" ], "summary": "Create or update one admin-managed provider credential", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertProviderCredentialRequest" } } }, "description": "Provider credential definition", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.providerCredentialViewResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/provider-credentials", "title": "Create or update one admin-managed provider credential", "description": "GoModel API reference for PUT /admin/provider-credentials: Create or update one admin-managed provider credential." } } } }, "/admin/provider-credentials/types": { "get": { "description": "Each entry names a constructible provider type and the credential fields it accepts, so a client offers only the fields that type uses.", "tags": [ "admin" ], "summary": "List provider types the gateway can construct, with their credential forms", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/admin.providerCredentialTypeResponse" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/provider-credentials/types", "title": "List provider types the gateway can construct, with their credential forms", "description": "GoModel API reference for GET /admin/provider-credentials/types: List provider types the gateway can construct, with their credential forms." } } } }, "/admin/provider-credentials/{name}": { "delete": { "tags": [ "admin" ], "summary": "Delete one admin-managed provider credential", "parameters": [ { "description": "Provider name", "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/provider-credentials/{name}", "title": "Delete one admin-managed provider credential", "description": "GoModel API reference for DELETE /admin/provider-credentials/{name}: Delete one admin-managed provider credential." } } } }, "/admin/rate-limits": { "get": { "tags": [ "admin" ], "summary": "List rate limit rules with live counter status", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.rateLimitListResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/rate-limits", "title": "List rate limit rules with live counter status", "description": "GoModel API reference for GET /admin/rate-limits: List rate limit rules with live counter status." } } }, "put": { "tags": [ "admin" ], "summary": "Create or update one rate limit rule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertRateLimitRequest" } } }, "description": "Rate limit key and limits", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.rateLimitListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/rate-limits", "title": "Create or update one rate limit rule", "description": "GoModel API reference for PUT /admin/rate-limits: Create or update one rate limit rule." } } }, "delete": { "tags": [ "admin" ], "summary": "Delete one rate limit rule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.deleteRateLimitRequest" } } }, "description": "Rate limit key", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.rateLimitListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/rate-limits", "title": "Delete one rate limit rule", "description": "GoModel API reference for DELETE /admin/rate-limits: Delete one rate limit rule." } } } }, "/admin/rate-limits/reset": { "post": { "tags": [ "admin" ], "summary": "Reset the live counters of all rate limit rules", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetRateLimitsRequest" } } }, "description": "Reset confirmation", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetRateLimitsResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/rate-limits/reset", "title": "Reset the live counters of all rate limit rules", "description": "GoModel API reference for POST /admin/rate-limits/reset: Reset the live counters of all rate limit rules." } } } }, "/admin/rate-limits/reset-one": { "post": { "tags": [ "admin" ], "summary": "Reset the live counters of one rate limit rule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.resetRateLimitRequest" } } }, "description": "Rate limit key", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.rateLimitListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/rate-limits/reset-one", "title": "Reset the live counters of one rate limit rule", "description": "GoModel API reference for POST /admin/rate-limits/reset-one: Reset the live counters of one rate limit rule." } } } }, "/admin/runtime/config": { "get": { "tags": [ "admin" ], "summary": "Get admin runtime configuration", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.DashboardConfigResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/runtime/config", "title": "Get admin runtime configuration", "description": "GoModel API reference for GET /admin/runtime/config: Get admin runtime configuration." } } } }, "/admin/tagging/settings": { "get": { "tags": [ "admin" ], "summary": "Get header tagging rules", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.taggingSettingsResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/tagging/settings", "title": "Get header tagging rules", "description": "GoModel API reference for GET /admin/tagging/settings: Get header tagging rules." } } }, "put": { "tags": [ "admin" ], "summary": "Replace operator header tagging rules", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.updateTaggingSettingsRequest" } } }, "description": "Operator tagging rules", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.taggingSettingsResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/tagging/settings", "title": "Replace operator header tagging rules", "description": "GoModel API reference for PUT /admin/tagging/settings: Replace operator header tagging rules." } } } }, "/admin/usage/daily": { "get": { "tags": [ "admin" ], "summary": "Get usage breakdown by period", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Grouping interval: daily, weekly, monthly, yearly (default daily)", "name": "interval", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/usage.DailyUsage" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/daily", "title": "Get usage breakdown by period", "description": "GoModel API reference for GET /admin/usage/daily: Get usage breakdown by period." } } } }, "/admin/usage/endpoints": { "get": { "description": "Returns per-endpoint token and cost aggregates. Each row names\nthe operation its endpoint belongs to, so endpoints that mean\nthe same thing can be folded: /v1/chat/completions and\n/v1/messages are both chat_completions.", "tags": [ "admin" ], "summary": "Get usage breakdown by request endpoint", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/usage.EndpointUsage" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/endpoints", "title": "Get usage breakdown by request endpoint", "description": "GoModel API reference for GET /admin/usage/endpoints: Get usage breakdown by request endpoint." } } } }, "/admin/usage/labels": { "get": { "description": "Returns per-label token and cost aggregates. Requests carrying\nseveral labels count once per label, so rows overlap and do\nnot sum to the period totals. Unlabelled requests are omitted.", "tags": [ "admin" ], "summary": "Get usage breakdown by request label", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/usage.LabelUsage" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/labels", "title": "Get usage breakdown by request label", "description": "GoModel API reference for GET /admin/usage/labels: Get usage breakdown by request label." } } } }, "/admin/usage/log": { "get": { "tags": [ "admin" ], "summary": "Get paginated usage log entries", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Search across model, provider, endpoint, request_id, provider_id, session_id", "name": "search", "in": "query", "schema": { "type": "string" } }, { "description": "Page size (default 50, max 200)", "name": "limit", "in": "query", "schema": { "type": "integer" } }, { "description": "Offset for pagination", "name": "offset", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.UsageLogResult" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/log", "title": "Get paginated usage log entries", "description": "GoModel API reference for GET /admin/usage/log: Get paginated usage log entries." } } } }, "/admin/usage/models": { "get": { "tags": [ "admin" ], "summary": "Get usage breakdown by model", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/usage.ModelUsage" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/models", "title": "Get usage breakdown by model", "description": "GoModel API reference for GET /admin/usage/models: Get usage breakdown by model." } } } }, "/admin/usage/recalculate-pricing": { "post": { "tags": [ "admin" ], "summary": "Recalculate stored usage costs from current model pricing metadata", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.recalculatePricingRequest" } } }, "description": "Recalculation filters and confirmation", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.RecalculatePricingResult" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/recalculate-pricing", "title": "Recalculate stored usage costs from current model pricing metadata", "description": "GoModel API reference for POST /admin/usage/recalculate-pricing: Recalculate stored usage costs from current model pricing metadata." } } } }, "/admin/usage/sessions": { "get": { "description": "Returns a bounded page of request, token, and cost aggregates\nfor detected, user-path-scoped sessions. Requests and tokens\ninclude local-cache hits; costs represent provider spend only.\nUsage without a detected session is omitted.", "tags": [ "admin" ], "summary": "Get usage breakdown by detected session", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Page size (default 50, max 200)", "name": "limit", "in": "query", "schema": { "type": "integer" } }, { "description": "Offset for pagination", "name": "offset", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.SessionUsageResult" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/sessions", "title": "Get usage breakdown by detected session", "description": "GoModel API reference for GET /admin/usage/sessions: Get usage breakdown by detected session." } } } }, "/admin/usage/summary": { "get": { "tags": [ "admin" ], "summary": "Get usage summary", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.UsageSummary" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/summary", "title": "Get usage summary", "description": "GoModel API reference for GET /admin/usage/summary: Get usage summary." } } } }, "/admin/usage/throughput": { "get": { "description": "Returns a fixed, trailing window of token-volume buckets\n(input / output / prompt-cached / locally-cached) at the\nrequested granularity, for the overview live chart.", "tags": [ "admin" ], "summary": "Get the live token-throughput window", "parameters": [ { "description": "Bucket granularity: second, minute, hour, day", "name": "granularity", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usage.TokenThroughput" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/throughput", "title": "Get the live token-throughput window", "description": "GoModel API reference for GET /admin/usage/throughput: Get the live token-throughput window." } } } }, "/admin/usage/user-paths": { "get": { "tags": [ "admin" ], "summary": "Get usage breakdown by user path", "parameters": [ { "description": "Number of days (default 30)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Start date (YYYY-MM-DD)", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "End date (YYYY-MM-DD)", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact model name", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by provider name or provider type", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by request label (exact match)", "name": "label", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated exact request endpoints, e.g. /v1/chat/completions,/v1/messages", "name": "endpoint", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by comma-separated operations, e.g. chat_completions,embeddings", "name": "operation", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact detected session ID", "name": "session_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by exact managed auth key ID", "name": "auth_key_id", "in": "query", "schema": { "type": "string" } }, { "description": "Filter by tracked user path subtree", "name": "user_path", "in": "query", "schema": { "type": "string" } }, { "description": "Cache mode filter: uncached, cached, all (default uncached)", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/usage.UserPathUsage" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/usage/user-paths", "title": "Get usage breakdown by user path", "description": "GoModel API reference for GET /admin/usage/user-paths: Get usage breakdown by user path." } } } }, "/admin/virtual-models": { "get": { "tags": [ "admin" ], "summary": "List virtual models (redirects and access policies)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/virtualmodels.View" }, "maxItems": 10000, "description": "Bounded by maxItems=10000." } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/virtual-models", "title": "List virtual models (redirects and access policies)", "description": "GoModel API reference for GET /admin/virtual-models: List virtual models (redirects and access policies)." } } }, "put": { "tags": [ "admin" ], "summary": "Create, update, or rename one virtual model", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.upsertVirtualModelRequest" } } }, "description": "Virtual model definition", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/virtualmodels.View" } } } }, "204": { "description": "No-op access policy removed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/virtual-models", "title": "Create, update, or rename one virtual model", "description": "GoModel API reference for PUT /admin/virtual-models: Create, update, or rename one virtual model." } } }, "delete": { "tags": [ "admin" ], "summary": "Delete one virtual model", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/admin.deleteVirtualModelRequest" } } }, "description": "Virtual model source to remove", "required": true }, "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.GatewayError" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/admin/virtual-models", "title": "Delete one virtual model", "description": "GoModel API reference for DELETE /admin/virtual-models: Delete one virtual model." } } } }, "/health": { "get": { "tags": [ "system" ], "summary": "Health check", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "x-mint": { "metadata": { "sidebarTitle": "/health", "title": "Health check", "description": "GoModel API reference for GET /health: Health check." } } } }, "/health/ready": { "get": { "tags": [ "system" ], "summary": "Readiness check", "responses": { "200": { "description": "ready or degraded", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "503": { "description": "not ready", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } } }, "x-mint": { "metadata": { "sidebarTitle": "/health/ready", "title": "Readiness check", "description": "GoModel API reference for GET /health/ready: Readiness check." } } } }, "/mcp": { "get": { "description": "Streamable-HTTP MCP endpoint aggregating every configured upstream MCP server visible to the caller. Tools and prompts are namespaced as {slug}_{name}. POST carries JSON-RPC messages, GET opens the server-notification SSE stream, DELETE ends the session. The X-MCP-Servers request header optionally narrows the visible servers to a comma-separated subset of server slugs.", "tags": [ "mcp" ], "summary": "MCP gateway (aggregated)", "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp", "title": "GET MCP gateway (aggregated)", "description": "GoModel API reference for GET /mcp: MCP gateway (aggregated)." } } }, "post": { "description": "Streamable-HTTP MCP endpoint aggregating every configured upstream MCP server visible to the caller. Tools and prompts are namespaced as {slug}_{name}. POST carries JSON-RPC messages, GET opens the server-notification SSE stream, DELETE ends the session. The X-MCP-Servers request header optionally narrows the visible servers to a comma-separated subset of server slugs.", "tags": [ "mcp" ], "summary": "MCP gateway (aggregated)", "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp", "title": "POST MCP gateway (aggregated)", "description": "GoModel API reference for POST /mcp: MCP gateway (aggregated)." } } }, "delete": { "description": "Streamable-HTTP MCP endpoint aggregating every configured upstream MCP server visible to the caller. Tools and prompts are namespaced as {slug}_{name}. POST carries JSON-RPC messages, GET opens the server-notification SSE stream, DELETE ends the session. The X-MCP-Servers request header optionally narrows the visible servers to a comma-separated subset of server slugs.", "tags": [ "mcp" ], "summary": "MCP gateway (aggregated)", "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp", "title": "DELETE MCP gateway (aggregated)", "description": "GoModel API reference for DELETE /mcp: MCP gateway (aggregated)." } } } }, "/mcp/{server}": { "get": { "description": "Streamable-HTTP MCP endpoint exposing one configured upstream MCP server with original (un-prefixed) tool names.", "tags": [ "mcp" ], "summary": "MCP gateway (single server)", "parameters": [ { "description": "Configured MCP server slug", "name": "server", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp/{server}", "title": "GET MCP gateway (single server)", "description": "GoModel API reference for GET /mcp/{server}: MCP gateway (single server)." } } }, "post": { "description": "Streamable-HTTP MCP endpoint exposing one configured upstream MCP server with original (un-prefixed) tool names.", "tags": [ "mcp" ], "summary": "MCP gateway (single server)", "parameters": [ { "description": "Configured MCP server slug", "name": "server", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp/{server}", "title": "POST MCP gateway (single server)", "description": "GoModel API reference for POST /mcp/{server}: MCP gateway (single server)." } } }, "delete": { "description": "Streamable-HTTP MCP endpoint exposing one configured upstream MCP server with original (un-prefixed) tool names.", "tags": [ "mcp" ], "summary": "MCP gateway (single server)", "parameters": [ { "description": "Configured MCP server slug", "name": "server", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "JSON-RPC response or SSE stream", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/event-stream": { "schema": { "type": "object", "additionalProperties": true } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/mcp/{server}", "title": "DELETE MCP gateway (single server)", "description": "GoModel API reference for DELETE /mcp/{server}: MCP gateway (single server)." } } } }, "/p/{provider}/{endpoint}": { "get": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "GET Provider passthrough", "description": "GoModel API reference for GET /p/{provider}/{endpoint}: Provider passthrough." } } }, "put": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "PUT Provider passthrough", "description": "GoModel API reference for PUT /p/{provider}/{endpoint}: Provider passthrough." } } }, "post": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "POST Provider passthrough", "description": "GoModel API reference for POST /p/{provider}/{endpoint}: Provider passthrough." } } }, "delete": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "DELETE Provider passthrough", "description": "GoModel API reference for DELETE /p/{provider}/{endpoint}: Provider passthrough." } } }, "options": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "OPTIONS Provider passthrough", "description": "GoModel API reference for OPTIONS /p/{provider}/{endpoint}: Provider passthrough." } } }, "head": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "HEAD Provider passthrough", "description": "GoModel API reference for HEAD /p/{provider}/{endpoint}: Provider passthrough." } } }, "patch": { "description": "Runtime-configurable passthrough endpoint under /p/{provider}/{endpoint}; enabled by default via server.enable_passthrough_routes. The endpoint path is opaque and may proxy JSON, binary, or SSE responses with upstream status codes preserved. For multi-segment provider endpoints, clients that rely on OpenAPI-generated path handling should URL-encode embedded slashes in the endpoint parameter. A leading v1/ segment is normalized away by default so /p/{provider}/v1/... and /p/{provider}/... map to the same upstream path relative to the provider base URL.", "tags": [ "passthrough" ], "summary": "Provider passthrough", "parameters": [ { "description": "Provider type", "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider-native endpoint path relative to the provider base URL. URL-encode embedded / characters when using generated clients.", "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "201": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "Opaque upstream response body", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "text/event-stream": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "No Content passthrough response", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string" } }, "text/event-stream": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/p/{provider}/{endpoint}", "title": "PATCH Provider passthrough", "description": "GoModel API reference for PATCH /p/{provider}/{endpoint}: Provider passthrough." } } } }, "/v1/audio/speech": { "post": { "tags": [ "audio" ], "summary": "Create speech (text-to-speech)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.AudioSpeechRequest" } } }, "description": "Text-to-speech request", "required": true }, "responses": { "200": { "description": "Binary audio in the requested response_format", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad Request", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/audio/speech", "title": "Create speech (text-to-speech)", "description": "GoModel API reference for POST /v1/audio/speech: Create speech (text-to-speech)." } } } }, "/v1/audio/transcriptions": { "post": { "tags": [ "audio" ], "summary": "Create transcription (speech-to-text)", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "description": "Audio file to transcribe", "type": "string", "format": "binary" }, "model": { "description": "Model ID", "type": "string" }, "language": { "description": "Input language (ISO-639-1)", "type": "string" }, "prompt": { "description": "Optional text to guide the model", "type": "string" }, "response_format": { "description": "json, text, srt, verbose_json, or vtt", "type": "string" }, "temperature": { "description": "Sampling temperature (0-1)", "type": "number" }, "timestamp_granularities[]": { "description": "Timestamp granularities to populate: word and/or segment", "type": "array", "items": { "type": "string" } }, "stream": { "description": "Relay the transcript as server-sent events while the provider produces it", "type": "boolean" } }, "required": [ "file", "model" ] } } }, "required": true }, "responses": { "200": { "description": "Transcription in the requested response_format: a JSON object for json/verbose_json, a text/plain body for text/srt/vtt, or a text/event-stream when stream=true", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/plain": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/audio/transcriptions", "title": "Create transcription (speech-to-text)", "description": "GoModel API reference for POST /v1/audio/transcriptions: Create transcription (speech-to-text)." } } } }, "/v1/audio/translations": { "post": { "tags": [ "audio" ], "summary": "Translate audio into English", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "description": "Audio file to translate", "type": "string", "format": "binary" }, "model": { "description": "Model ID", "type": "string" }, "prompt": { "description": "Optional English text to guide the model", "type": "string" }, "response_format": { "description": "json, text, srt, verbose_json, or vtt", "type": "string" }, "temperature": { "description": "Sampling temperature (0-1)", "type": "number" } }, "required": [ "file", "model" ] } } }, "required": true }, "responses": { "200": { "description": "English translation in the requested response_format", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } }, "text/plain": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/plain": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/audio/translations", "title": "Translate audio into English", "description": "GoModel API reference for POST /v1/audio/translations: Translate audio into English." } } } }, "/v1/auth/verify": { "get": { "description": "Reports whether the presented credential authenticates against this gateway. Returns 401 when it does not. A gateway with no authentication configured has no credential to confirm and answers 200 with valid=false and method=none. Disabled unless AUTH_VERIFY_ENABLED is set.", "tags": [ "auth" ], "summary": "Verify an API key", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/server.authVerifyResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/auth/verify", "title": "Verify an API key", "description": "GoModel API reference for GET /v1/auth/verify: Verify an API key." } } } }, "/v1/batches": { "get": { "tags": [ "batch" ], "summary": "List batches", "parameters": [ { "description": "Pagination cursor", "name": "after", "in": "query", "schema": { "type": "string" } }, { "description": "Maximum items to return (1-100, default 20)", "name": "limit", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/batches", "title": "List batches", "description": "GoModel API reference for GET /v1/batches: List batches." } } }, "post": { "tags": [ "batch" ], "summary": "Create a native provider batch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchRequest" } } }, "description": "Batch request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/batches", "title": "Create a native provider batch", "description": "GoModel API reference for POST /v1/batches: Create a native provider batch." } } } }, "/v1/batches/{id}": { "get": { "tags": [ "batch" ], "summary": "Get a batch", "parameters": [ { "description": "Batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/batches/{id}", "title": "Get a batch", "description": "GoModel API reference for GET /v1/batches/{id}: Get a batch." } } } }, "/v1/batches/{id}/cancel": { "post": { "tags": [ "batch" ], "summary": "Cancel a batch", "parameters": [ { "description": "Batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/batches/{id}/cancel", "title": "Cancel a batch", "description": "GoModel API reference for POST /v1/batches/{id}/cancel: Cancel a batch." } } } }, "/v1/batches/{id}/results": { "get": { "tags": [ "batch" ], "summary": "Get batch results", "parameters": [ { "description": "Batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.BatchResultsResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/batches/{id}/results", "title": "Get batch results", "description": "GoModel API reference for GET /v1/batches/{id}/results: Get batch results." } } } }, "/v1/chat/completions": { "post": { "tags": [ "chat" ], "summary": "Create a chat completion", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ChatRequest" } } }, "description": "Chat completion request", "required": true }, "responses": { "200": { "description": "JSON response or SSE stream when stream=true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ChatResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.ChatResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/chat/completions", "title": "Create a chat completion", "description": "GoModel API reference for POST /v1/chat/completions: Create a chat completion." } } } }, "/v1/conversations": { "post": { "tags": [ "conversations" ], "summary": "Create a conversation", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationCreateRequest" } } }, "description": "Conversation create request" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.Conversation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations", "title": "Create a conversation", "description": "GoModel API reference for POST /v1/conversations: Create a conversation." } } } }, "/v1/conversations/{id}": { "get": { "tags": [ "conversations" ], "summary": "Get a conversation", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.Conversation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}", "title": "Get a conversation", "description": "GoModel API reference for GET /v1/conversations/{id}: Get a conversation." } } }, "post": { "description": "Merges supplied keys into the conversation metadata.", "tags": [ "conversations" ], "summary": "Update a conversation", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationUpdateRequest" } } }, "description": "Conversation update request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.Conversation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}", "title": "Update a conversation", "description": "GoModel API reference for POST /v1/conversations/{id}: Update a conversation." } } }, "delete": { "tags": [ "conversations" ], "summary": "Delete a conversation", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationDeleteResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}", "title": "Delete a conversation", "description": "GoModel API reference for DELETE /v1/conversations/{id}: Delete a conversation." } } } }, "/v1/conversations/{id}/items": { "get": { "tags": [ "conversations" ], "summary": "List conversation items", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Return items after this item ID", "name": "after", "in": "query", "schema": { "type": "string" } }, { "description": "Additional fields to include", "name": "include", "in": "query", "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Maximum items", "name": "limit", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 20 } }, { "description": "Sort order", "name": "order", "in": "query", "schema": { "type": "string", "enum": [ "asc", "desc" ], "default": "desc" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationItemListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}/items", "title": "List conversation items", "description": "GoModel API reference for GET /v1/conversations/{id}/items: List conversation items." } } }, "post": { "tags": [ "conversations" ], "summary": "Create conversation items", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Additional fields to include", "name": "include", "in": "query", "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationItemCreateRequest" } } }, "description": "Conversation items", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ConversationItemListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}/items", "title": "Create conversation items", "description": "GoModel API reference for POST /v1/conversations/{id}/items: Create conversation items." } } } }, "/v1/conversations/{id}/items/{item_id}": { "get": { "tags": [ "conversations" ], "summary": "Get a conversation item", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Conversation item ID", "name": "item_id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Additional fields to include", "name": "include", "in": "query", "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}/items/{item_id}", "title": "Get a conversation item", "description": "GoModel API reference for GET /v1/conversations/{id}/items/{item_id}: Get a conversation item." } } }, "delete": { "tags": [ "conversations" ], "summary": "Delete a conversation item", "parameters": [ { "description": "Conversation ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Conversation item ID", "name": "item_id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.Conversation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/conversations/{id}/items/{item_id}", "title": "Delete a conversation item", "description": "GoModel API reference for DELETE /v1/conversations/{id}/items/{item_id}: Delete a conversation item." } } } }, "/v1/decisions": { "post": { "description": "Available when an openai, jev, or openrouter provider is configured. OpenAI models answer natively; jev models (Jev, Kev) and OpenRouter's decision models answer through System One, translated both ways. Hosted Jev reads images sent as base64 data URLs; Kev and OpenRouter read text only.", "tags": [ "decisions" ], "summary": "Answer typed questions about an input (OpenAI Decisions)", "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "description": "Decisions request: model, input, and questions", "required": true }, "responses": { "200": { "description": "Decision: answers in question order, model, and usage", "content": { "application/json": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/decisions", "title": "Answer typed questions about an input (OpenAI Decisions)", "description": "GoModel API reference for POST /v1/decisions: Answer typed questions about an input (OpenAI Decisions)." } } } }, "/v1/embeddings": { "post": { "tags": [ "embeddings" ], "summary": "Create embeddings", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.EmbeddingRequest" } } }, "description": "Embeddings request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.EmbeddingResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/embeddings", "title": "Create embeddings", "description": "GoModel API reference for POST /v1/embeddings: Create embeddings." } } } }, "/v1/files": { "get": { "tags": [ "files" ], "summary": "List files", "parameters": [ { "description": "Provider filter", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "File purpose filter", "name": "purpose", "in": "query", "schema": { "type": "string" } }, { "description": "Pagination cursor", "name": "after", "in": "query", "schema": { "type": "string" } }, { "description": "Maximum items to return (1-100, default 20)", "name": "limit", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.FileListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/files", "title": "List files", "description": "GoModel API reference for GET /v1/files: List files." } } }, "post": { "tags": [ "files" ], "summary": "Upload a file", "parameters": [ { "description": "Provider override when multiple providers are configured", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "purpose": { "description": "File purpose", "type": "string" }, "file": { "description": "File to upload", "type": "string", "format": "binary" } }, "required": [ "purpose", "file" ] } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.FileObject" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/files", "title": "Upload a file", "description": "GoModel API reference for POST /v1/files: Upload a file." } } } }, "/v1/files/{id}": { "get": { "tags": [ "files" ], "summary": "Get file metadata", "parameters": [ { "description": "File ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.FileObject" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/files/{id}", "title": "Get file metadata", "description": "GoModel API reference for GET /v1/files/{id}: Get file metadata." } } }, "delete": { "tags": [ "files" ], "summary": "Delete a file", "parameters": [ { "description": "File ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.FileDeleteResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/files/{id}", "title": "Delete a file", "description": "GoModel API reference for DELETE /v1/files/{id}: Delete a file." } } } }, "/v1/files/{id}/content": { "get": { "tags": [ "files" ], "summary": "Download file content", "parameters": [ { "description": "File ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Raw file content", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad Request", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/files/{id}/content", "title": "Download file content", "description": "GoModel API reference for GET /v1/files/{id}/content: Download file content." } } } }, "/v1/images/edits": { "post": { "tags": [ "images" ], "summary": "Create image edit (inpainting / image-to-image)", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "image": { "description": "Source image to edit (single-image form; gpt-image-1 and DALL·E 2). At least one of image or image[] is required", "type": "string", "format": "binary" }, "image[]": { "description": "Repeatable field carrying several source images (gpt-image-1, up to 16). At least one of image or image[] is required", "type": "array", "maxItems": 16, "items": { "type": "string", "format": "binary" } }, "prompt": { "description": "Text description of the desired edit", "type": "string" }, "model": { "description": "Model ID", "type": "string" }, "mask": { "description": "PNG whose transparent areas mark where the image should be edited", "type": "string", "format": "binary" }, "n": { "description": "Number of images to generate", "type": "integer", "minimum": 1 }, "size": { "description": "Output size, e.g. 1024x1024", "type": "string" }, "quality": { "description": "Output quality (model-specific)", "type": "string" }, "response_format": { "description": "url or b64_json (DALL·E 2 only; gpt-image-1 always returns b64_json)", "type": "string" }, "user": { "description": "End-user identifier forwarded to the provider", "type": "string" } }, "required": [ "prompt", "model" ], "anyOf": [ { "required": [ "image" ] }, { "required": [ "image[]" ] } ] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ImageGenerationResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/images/edits", "title": "Create image edit (inpainting / image-to-image)", "description": "GoModel API reference for POST /v1/images/edits: Create image edit (inpainting / image-to-image)." } } } }, "/v1/images/generations": { "post": { "tags": [ "images" ], "summary": "Create image (image generation)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ImageGenerationRequest" } } }, "description": "Image generation request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ImageGenerationResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/images/generations", "title": "Create image (image generation)", "description": "GoModel API reference for POST /v1/images/generations: Create image (image generation)." } } } }, "/v1/messages": { "post": { "tags": [ "messages" ], "summary": "Create a message (Anthropic Messages API)", "requestBody": { "$ref": "#/components/requestBodies/anthropicapi.MessagesRequest" }, "responses": { "200": { "description": "JSON response or SSE stream when stream=true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessagesResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/anthropicapi.SSEEventFrame" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages", "title": "Create a message (Anthropic Messages API)", "description": "GoModel API reference for POST /v1/messages: Create a message (Anthropic Messages API)." } } } }, "/v1/messages/batches": { "get": { "tags": [ "messages" ], "summary": "List message batches", "parameters": [ { "description": "Pagination cursor", "name": "after_id", "in": "query", "schema": { "type": "string" } }, { "description": "Maximum items to return (1-100, default 20)", "name": "limit", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessageBatchList" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches", "title": "List message batches", "description": "GoModel API reference for GET /v1/messages/batches: List message batches." } } }, "post": { "tags": [ "messages" ], "summary": "Create a message batch (Anthropic Message Batches API)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.BatchCreateRequest" } } }, "description": "Anthropic Message Batches create request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessageBatch" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches", "title": "Create a message batch (Anthropic Message Batches API)", "description": "GoModel API reference for POST /v1/messages/batches: Create a message batch (Anthropic Message Batches API)." } } } }, "/v1/messages/batches/{id}": { "get": { "tags": [ "messages" ], "summary": "Get a message batch", "parameters": [ { "description": "Message batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessageBatch" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches/{id}", "title": "Get a message batch", "description": "GoModel API reference for GET /v1/messages/batches/{id}: Get a message batch." } } }, "delete": { "tags": [ "messages" ], "summary": "Delete an ended message batch", "parameters": [ { "description": "Message batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.DeletedMessageBatch" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches/{id}", "title": "Delete an ended message batch", "description": "GoModel API reference for DELETE /v1/messages/batches/{id}: Delete an ended message batch." } } } }, "/v1/messages/batches/{id}/cancel": { "post": { "tags": [ "messages" ], "summary": "Cancel a message batch", "parameters": [ { "description": "Message batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessageBatch" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches/{id}/cancel", "title": "Cancel a message batch", "description": "GoModel API reference for POST /v1/messages/batches/{id}/cancel: Cancel a message batch." } } } }, "/v1/messages/batches/{id}/results": { "get": { "tags": [ "messages" ], "summary": "Get message batch results (JSONL)", "parameters": [ { "description": "Message batch ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "JSONL stream of batch results", "content": { "application/x-jsonl": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/x-jsonl": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/x-jsonl": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/x-jsonl": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/batches/{id}/results", "title": "Get message batch results (JSONL)", "description": "GoModel API reference for GET /v1/messages/batches/{id}/results: Get message batch results (JSONL)." } } } }, "/v1/messages/count_tokens": { "post": { "description": "Counts the input tokens of a Messages request. Exact when the provider that owns the model has a token counting endpoint (Anthropic); otherwise a calibrated estimate.", "tags": [ "messages" ], "summary": "Count message tokens (Anthropic Messages API)", "requestBody": { "$ref": "#/components/requestBodies/anthropicapi.MessagesRequest" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.CountTokensResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/messages/count_tokens", "title": "Count message tokens (Anthropic Messages API)", "description": "GoModel API reference for POST /v1/messages/count_tokens: Count message tokens (Anthropic Messages API)." } } } }, "/v1/models": { "get": { "tags": [ "models" ], "summary": "List available models", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ModelsResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/models", "title": "List available models", "description": "GoModel API reference for GET /v1/models: List available models." } } } }, "/v1/models/{model}": { "get": { "tags": [ "models" ], "summary": "Retrieve a model", "parameters": [ { "description": "Model ID, e.g. openai/gpt-4.1-mini", "name": "model", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Anthropic API version, e.g. 2023-06-01. When present, the model and error bodies use the Anthropic envelopes instead of the OpenAI ones.", "name": "anthropic-version", "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "OpenAI envelope by default; the Anthropic envelope when the request carries anthropic-version.", "oneOf": [ { "$ref": "#/components/schemas/core.Model" }, { "$ref": "#/components/schemas/anthropicapi.ModelInfo" } ] } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "description": "OpenAI envelope by default; the Anthropic envelope when the request carries anthropic-version.", "oneOf": [ { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" }, { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } ] } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "description": "OpenAI envelope by default; the Anthropic envelope when the request carries anthropic-version.", "oneOf": [ { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" }, { "$ref": "#/components/schemas/anthropicapi.ErrorResponse" } ] } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/models/{model}", "title": "Retrieve a model", "description": "GoModel API reference for GET /v1/models/{model}: Retrieve a model." } } } }, "/v1/realtime": { "get": { "description": "Upgrades to a websocket and relays an OpenAI-compatible realtime (speech-to-speech) session to the provider that owns the model named in the ?model= query parameter. Provider credentials are injected by the gateway. Passing ?call_id= instead attaches to an existing WebRTC/SIP call as a sideband channel; calls created through this gateway instance are routed automatically, others need explicit model (and provider) parameters.", "tags": [ "realtime" ], "summary": "Open a realtime session", "parameters": [ { "description": "Model that owns the realtime session (required unless call_id names a call created through this gateway instance)", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Existing WebRTC/SIP call to attach to as a sideband channel", "name": "call_id", "in": "query", "schema": { "type": "string" } } ], "responses": { "101": { "description": "Switching Protocols", "content": { "*/*": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime", "title": "Open a realtime session", "description": "GoModel API reference for GET /v1/realtime: Open a realtime session." } } } }, "/v1/realtime/calls": { "post": { "description": "OpenAI-compatible WebRTC SDP exchange. Accepts a raw application/sdp offer with the model in the ?model= query parameter, or a multipart form with sdp and session (JSON) fields. The gateway routes by model, injects provider credentials, and relays the SDP answer; the Location header carries the created call id. Media flows directly between the client and the provider, so usage is recorded by a gateway-side sideband observer when usage tracking is enabled.", "tags": [ "realtime" ], "summary": "Create a realtime WebRTC call", "parameters": [ { "description": "Model that owns the call (required for application/sdp offers)", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "$ref": "#/components/requestBodies/Request" }, "responses": { "201": { "description": "SDP answer", "content": { "application/sdp": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime/calls", "title": "Create a realtime WebRTC call", "description": "GoModel API reference for POST /v1/realtime/calls: Create a realtime WebRTC call." } } } }, "/v1/realtime/client_secrets": { "post": { "description": "OpenAI-compatible ephemeral credential minting for browser and mobile realtime clients. Routes by session.model (or the transcription model for transcription sessions), applies the same model-access, budget, and rate-limit gates as other model endpoints, and relays the provider response verbatim. The minted secret authenticates the client directly against the provider, bypassing the gateway for the session itself.", "tags": [ "realtime" ], "summary": "Mint an ephemeral realtime client secret", "parameters": [ { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "expires_after": { "type": "object" }, "session": { "type": "object" } } } } }, "description": "Client secret request: session config with the routing model (session.model, or the nested transcription model) plus optional expires_after; additional fields are relayed verbatim", "required": true }, "responses": { "200": { "description": "Provider client secret response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime/client_secrets", "title": "Mint an ephemeral realtime client secret", "description": "GoModel API reference for POST /v1/realtime/client_secrets: Mint an ephemeral realtime client secret." } } } }, "/v1/realtime/translations": { "get": { "description": "Upgrades to a websocket and relays an OpenAI-compatible realtime speech translation session (e.g. gpt-realtime-translate) to the provider that owns the model named in the ?model= query parameter. Translation sessions use their own event namespace and set the target language with session.update (session.audio.output.language); provider credentials are injected by the gateway. Equivalent to /v1/realtime?intent=translation.", "tags": [ "realtime" ], "summary": "Open a realtime translation session", "parameters": [ { "description": "Translation model that owns the session", "name": "model", "in": "query", "required": true, "schema": { "type": "string" } }, { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "101": { "description": "Switching Protocols", "content": { "*/*": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime/translations", "title": "Open a realtime translation session", "description": "GoModel API reference for GET /v1/realtime/translations: Open a realtime translation session." } } } }, "/v1/realtime/translations/calls": { "post": { "description": "OpenAI-compatible WebRTC SDP exchange for speech translation sessions. Identical to /v1/realtime/calls except that the session runs on the provider's translation surface; the created call is addressed at /v1/realtime/translations/calls/{call_id}.", "tags": [ "realtime" ], "summary": "Create a realtime translation call (WebRTC)", "parameters": [ { "description": "Translation model that owns the session (required for raw SDP offers)", "name": "model", "in": "query", "schema": { "type": "string" } }, { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "$ref": "#/components/requestBodies/Request" }, "responses": { "201": { "description": "SDP answer", "content": { "application/sdp": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/sdp": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime/translations/calls", "title": "Create a realtime translation call (WebRTC)", "description": "GoModel API reference for POST /v1/realtime/translations/calls: Create a realtime translation call (WebRTC)." } } } }, "/v1/realtime/translations/client_secrets": { "post": { "description": "OpenAI-compatible ephemeral credential minting for browser and mobile clients that open a speech translation session. Identical to /v1/realtime/client_secrets except that the credential is minted on the provider's translation surface.", "tags": [ "realtime" ], "summary": "Mint an ephemeral realtime translation client secret", "parameters": [ { "description": "Optional provider hint", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "description": "Realtime translation session config carrying session.model", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/realtime/translations/client_secrets", "title": "Mint an ephemeral realtime translation client secret", "description": "GoModel API reference for POST /v1/realtime/translations/client_secrets: Mint an ephemeral realtime translation client secret." } } } }, "/v1/responses": { "post": { "tags": [ "responses" ], "summary": "Create a model response (Responses API)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponsesRequest" } } }, "description": "Responses API request", "required": true }, "responses": { "200": { "description": "JSON response or SSE stream when stream=true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponsesResponse" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.ResponsesResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } }, "text/event-stream": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses", "title": "Create a model response (Responses API)", "description": "GoModel API reference for POST /v1/responses: Create a model response (Responses API)." } } } }, "/v1/responses/compact": { "post": { "tags": [ "responses" ], "summary": "Compact response input", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseCompactRequest" } } }, "description": "Response compact request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseCompactResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/compact", "title": "Compact response input", "description": "GoModel API reference for POST /v1/responses/compact: Compact response input." } } } }, "/v1/responses/input_tokens": { "post": { "tags": [ "responses" ], "summary": "Count response input tokens", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseInputTokensRequest" } } }, "description": "Response input token request", "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseInputTokensResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/input_tokens", "title": "Count response input tokens", "description": "GoModel API reference for POST /v1/responses/input_tokens: Count response input tokens." } } } }, "/v1/responses/{id}": { "get": { "tags": [ "responses" ], "summary": "Get a response", "parameters": [ { "description": "Response ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override for native lookups", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Fields to include in the response", "name": "include", "in": "query", "explode": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Fields to include in the response", "name": "include[]", "in": "query", "explode": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Whether to include obfuscated response data", "name": "include_obfuscation", "in": "query", "schema": { "type": "boolean" } }, { "description": "Input item offset for providers that support it", "name": "starting_after", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponsesResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/{id}", "title": "Get a response", "description": "GoModel API reference for GET /v1/responses/{id}: Get a response." } } }, "delete": { "tags": [ "responses" ], "summary": "Delete a response", "parameters": [ { "description": "Response ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override for native deletion", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseDeleteResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/{id}", "title": "Delete a response", "description": "GoModel API reference for DELETE /v1/responses/{id}: Delete a response." } } } }, "/v1/responses/{id}/cancel": { "post": { "tags": [ "responses" ], "summary": "Cancel a response", "parameters": [ { "description": "Response ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override for native cancellation", "name": "provider", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponsesResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/{id}/cancel", "title": "Cancel a response", "description": "GoModel API reference for POST /v1/responses/{id}/cancel: Cancel a response." } } } }, "/v1/responses/{id}/input_items": { "get": { "tags": [ "responses" ], "summary": "List response input items", "parameters": [ { "description": "Response ID", "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "description": "Provider override for native lookups", "name": "provider", "in": "query", "schema": { "type": "string" } }, { "description": "Pagination cursor", "name": "after", "in": "query", "schema": { "type": "string" } }, { "description": "Fields to include in listed input items", "name": "include", "in": "query", "explode": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Fields to include in listed input items", "name": "include[]", "in": "query", "explode": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Maximum items to return (1-100, default 20)", "name": "limit", "in": "query", "schema": { "type": "integer" } }, { "description": "Sort order: asc or desc", "name": "order", "in": "query", "schema": { "type": "string", "enum": [ "asc", "desc" ] } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.ResponseInputItemListResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/responses/{id}/input_items", "title": "List response input items", "description": "GoModel API reference for GET /v1/responses/{id}/input_items: List response input items." } } } }, "/v1/systemone": { "post": { "description": "Available when a jev or openrouter provider is configured. The request and answer follow TypeSafe's System One API; models on providers without that API are rejected rather than translated.", "tags": [ "systemone" ], "summary": "Evaluate a System One decision request (Jev / Kev)", "requestBody": { "$ref": "#/components/requestBodies/Request2" }, "responses": { "200": { "description": "System One answers, in the provider's shape", "content": { "application/json": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/systemone", "title": "Evaluate a System One decision request (Jev / Kev)", "description": "GoModel API reference for POST /v1/systemone: Evaluate a System One decision request (Jev / Kev)." } } } }, "/v1/systemone/permute": { "post": { "description": "A Kev server diagnostic: the request is a System One request, and n_perm (1 to 64, default 6) sets how many option orders run. Only jev providers pointing at a Kev server serve it.", "tags": [ "systemone" ], "summary": "Run one Choice question with several option orders (Kev)", "requestBody": { "content": { "application/json": { "schema": { "type": "object" } }, "multipart/form-data": { "schema": { "type": "object" } } }, "description": "System One request with one Choice question", "required": true }, "responses": { "200": { "description": "Kev's answer, in the provider's shape", "content": { "application/json": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/systemone/permute", "title": "Run one Choice question with several option orders (Kev)", "description": "GoModel API reference for POST /v1/systemone/permute: Run one Choice question with several option orders (Kev)." } } } }, "/v1/systemone/separate": { "post": { "description": "A Kev server diagnostic that answers each question separately. Only jev providers pointing at a Kev server serve it.", "tags": [ "systemone" ], "summary": "Run each System One question in its own forward pass (Kev)", "requestBody": { "$ref": "#/components/requestBodies/Request2" }, "responses": { "200": { "description": "Kev's answer, in the provider's shape", "content": { "application/json": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/systemone/separate", "title": "Run each System One question in its own forward pass (Kev)", "description": "GoModel API reference for POST /v1/systemone/separate: Run each System One question in its own forward pass (Kev)." } } } }, "/v1/usage": { "get": { "description": "Returns recorded usage, budget statuses, and rate limit statuses for the caller's effective user path (the path bound to the managed API key, or the user-path header for master-key callers).", "tags": [ "usage" ], "summary": "Self-service usage, budget, and rate limit status", "parameters": [ { "description": "Inclusive window start (YYYY-MM-DD, UTC); defaults to 29 days before end_date", "name": "start_date", "in": "query", "schema": { "type": "string" } }, { "description": "Inclusive window end (YYYY-MM-DD, UTC); defaults to today; the whole range may span at most 365 days", "name": "end_date", "in": "query", "schema": { "type": "string" } }, { "description": "Window length ending today when no explicit dates are given (default 30, max 365)", "name": "days", "in": "query", "schema": { "type": "integer" } }, { "description": "Which requests to count: uncached (default, provider-bound only), cached (local response-cache hits only), or all", "name": "cache_mode", "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/server.usageStatusResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/core.OpenAIErrorEnvelope" } } } } }, "security": [ { "BearerAuth": [] } ], "x-mint": { "metadata": { "sidebarTitle": "/v1/usage", "title": "Self-service usage, budget, and rate limit status", "description": "GoModel API reference for GET /v1/usage: Self-service usage, budget, and rate limit status." } } } }, "/version": { "get": { "tags": [ "health" ], "summary": "Report the running version and whether an update exists", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/versioncheck.Status" } } } } }, "x-mint": { "metadata": { "sidebarTitle": "/version", "title": "Report the running version and whether an update exists", "description": "GoModel API reference for GET /version: Report the running version and whether an update exists." } } } } }, "servers": [ { "url": "{base_url}", "description": "Edit the base URL to point at your GoModel deployment.", "variables": { "base_url": { "default": "http://localhost:8080", "description": "Your GoModel deployment URL" } } } ], "components": { "requestBodies": { "Request": { "content": { "application/sdp": { "schema": { "type": "string" } }, "multipart/form-data": { "schema": { "type": "string" } } }, "description": "SDP offer (raw application/sdp body), or a multipart form with sdp and session (JSON) fields", "required": true }, "Request2": { "content": { "application/json": { "schema": { "type": "object" } }, "multipart/form-data": { "schema": { "type": "object" } } }, "description": "System One request: model, state, and questions", "required": true }, "anthropicapi.MessagesRequest": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/anthropicapi.MessagesRequest" } } }, "description": "Anthropic Messages request", "required": true } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "schemas": { "admin.DashboardConfigResponse": { "type": "object", "properties": { "BUDGETS_ENABLED": { "type": "string" }, "CACHE_ENABLED": { "type": "string" }, "DASHBOARD_LIVE_LOGS_ENABLED": { "type": "string" }, "DEMO_MODE": { "type": "string" }, "FAILOVER_ENABLED": { "type": "string" }, "GUARDRAILS_ENABLED": { "type": "string" }, "LOGGING_ENABLED": { "type": "string" }, "LOGGING_RETENTION_DAYS": { "type": "string" }, "MCP_ENABLED": { "type": "string" }, "MCP_TOOL_DISCOVERY": { "description": "MCPToolDiscovery is the gateway's default MCP tool discovery mode\n(\"off\" or \"search\"), so the dashboard can show how clients see tools.", "type": "string" }, "PER_CHILD_QUOTAS_ENABLED": { "type": "string" }, "PLUGINS_ENABLED": { "type": "string" }, "RATE_LIMITS_ENABLED": { "type": "string" }, "REDIS_URL": { "type": "string" }, "SEMANTIC_CACHE_ENABLED": { "type": "string" }, "USAGE_ENABLED": { "type": "string" }, "USAGE_PRICING_RECALCULATION_ENABLED": { "type": "string" }, "USER_PATH_HEADER": { "description": "UserPathHeader is the canonical name of the inbound header the gateway\nreads user paths from (server.user_path_header), so the Playground sends\nthe header this deployment actually honors.", "type": "string" }, "VIRTUAL_MODEL_STRATEGIES": { "description": "VirtualModelStrategies is the comma-separated list of load-balancing\nstrategies this deployment supports. \"adaptive\" appears only when a\nroute-selector extension is registered, so the dashboard never offers\na strategy that would silently fall back to round robin.", "type": "string" } } }, "admin.accessResponse": { "type": "object", "properties": { "scope": { "description": "Scope is \"global\" for the master key and unscoped credentials, or\n\"user_path\" for a credential confined to one user-path subtree.", "type": "string" }, "user_path": { "description": "UserPath is the subtree root of a user_path-scoped credential.", "type": "string" } } }, "admin.auditConversationResponse": { "type": "object", "properties": { "anchor_id": { "type": "string" }, "entries": { "type": "array", "items": { "$ref": "#/components/schemas/admin.auditLogEntryResponse" } }, "truncated": { "description": "Truncated reports that more session or linkage entries exist than were\nreturned.", "type": "boolean" } } }, "admin.auditLogEntryResponse": { "type": "object", "properties": { "alias_used": { "type": "boolean" }, "auth_key_id": { "type": "string" }, "auth_method": { "type": "string" }, "bodies_omitted": { "description": "BodiesOmitted marks a list entry whose request/response bodies (and\nother heavy payloads) were stripped server-side; the full entry is\navailable from GET /admin/audit/detail. It also tells the dashboard\nthe entry is persisted — a slim entry is never an in-flight request.", "type": "boolean" }, "cache_type": { "type": "string" }, "client_ip": { "type": "string" }, "conversation_payload": { "description": "ConversationPayload reports that the entry's (stripped) bodies were\nshaped like a conversation, preserving the Interactions-drawer\neligibility signal the dashboard otherwise sniffs from the bodies.", "type": "boolean" }, "data": { "description": "Data contains flexible request/response information as JSON", "allOf": [ { "$ref": "#/components/schemas/auditlog.LogData" } ] }, "duration_ns": { "description": "DurationNs is the request duration in nanoseconds", "type": "integer" }, "error_type": { "type": "string" }, "id": { "description": "ID is a unique identifier for this log entry (UUID)", "type": "string" }, "method": { "type": "string" }, "path": { "type": "string" }, "principal_id": { "type": "string" }, "provider": { "description": "canonical provider type used for routing and filters", "type": "string" }, "provider_name": { "type": "string" }, "request_id": { "description": "Extracted fields for efficient filtering (indexed in relational DBs)", "type": "string" }, "requested_model": { "description": "Core fields (indexed for queries)", "type": "string" }, "resolved_model": { "type": "string" }, "session_id": { "type": "string" }, "status_code": { "type": "integer" }, "stream": { "type": "boolean" }, "timestamp": { "description": "Timestamp is when the request started", "type": "string" }, "usage": { "$ref": "#/components/schemas/usage.RequestUsageSummary" }, "user_path": { "type": "string" }, "workflow_version_id": { "type": "string" } } }, "admin.auditLogListResponse": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/components/schemas/admin.auditLogEntryResponse" } }, "limit": { "type": "integer" }, "offset": { "type": "integer" }, "total": { "type": "integer" } } }, "admin.auditSessionResponse": { "type": "object", "properties": { "latest": { "$ref": "#/components/schemas/admin.auditLogEntryResponse" }, "request_count": { "type": "integer" } } }, "admin.auditSessionsListResponse": { "type": "object", "properties": { "limit": { "type": "integer" }, "offset": { "type": "integer" }, "sessions": { "type": "array", "items": { "$ref": "#/components/schemas/admin.auditSessionResponse" } }, "total": { "type": "integer" } } }, "admin.budgetKeyRequest": { "type": "object", "properties": { "period": { "type": "string" }, "period_seconds": { "type": "integer" } }, "oneOf": [ { "required": [ "period" ] }, { "required": [ "period_seconds" ] } ] }, "admin.budgetListResponse": { "type": "object", "properties": { "budgets": { "type": "array", "items": { "$ref": "#/components/schemas/admin.budgetStatusResponse" } }, "server_time": { "type": "string" } } }, "admin.budgetStatusResponse": { "type": "object", "properties": { "amount": { "type": "number" }, "created_at": { "type": "string" }, "effective_subject": { "type": "string" }, "has_usage": { "type": "boolean" }, "last_reset_at": { "type": "string" }, "per_child": { "type": "boolean" }, "period_end": { "type": "string" }, "period_label": { "type": "string" }, "period_ratio": { "type": "number" }, "period_seconds": { "type": "integer" }, "period_start": { "type": "string" }, "remaining": { "type": "number" }, "scope": { "type": "string" }, "source": { "type": "string" }, "spent": { "type": "number" }, "subject": { "type": "string" }, "updated_at": { "type": "string" }, "usage_ratio": { "type": "number" }, "user_path": { "type": "string" } } }, "admin.deleteBudgetRequest": { "type": "object", "properties": { "budget_key": { "$ref": "#/components/schemas/admin.budgetKeyRequest" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } }, "required": [ "budget_key" ] }, "admin.deleteModelPricingOverrideRequest": { "type": "object", "properties": { "selector": { "type": "string" } }, "required": [ "selector" ] }, "admin.deleteRateLimitRequest": { "type": "object", "properties": { "limit_key": { "$ref": "#/components/schemas/admin.rateLimitKeyRequest" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } } }, "admin.deleteVirtualModelRequest": { "type": "object", "properties": { "source": { "type": "string" } }, "required": [ "source" ] }, "admin.mcpServerViewResponse": { "type": "object", "properties": { "allowed_tools": { "type": "array", "items": { "type": "string" } }, "connected_at": { "type": "string" }, "description": { "type": "string" }, "disallowed_tools": { "type": "array", "items": { "type": "string" } }, "disallowed_user_paths": { "type": "array", "items": { "type": "string" } }, "enabled": { "type": "boolean" }, "excluded_tool_count": { "type": "integer" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "last_error": { "type": "string" }, "managed": { "type": "boolean" }, "name": { "type": "string" }, "prompt_count": { "type": "integer" }, "resource_count": { "type": "integer" }, "slug": { "type": "string" }, "status": { "type": "string" }, "tool_count": { "type": "integer" }, "tool_timeout_seconds": { "type": "integer" }, "transport": { "type": "string" }, "url": { "type": "string" }, "user_paths": { "type": "array", "items": { "type": "string" } } } }, "admin.mcpVirtualServerResponse": { "type": "object", "properties": { "configured_tool_discovery": { "description": "ConfiguredToolDiscovery is the stored setting: \"off\", \"search\", or \"\"\nto inherit the gateway default. ToolDiscovery is the effective mode.", "type": "string" }, "conflict": { "type": "string" }, "description": { "type": "string" }, "managed": { "type": "boolean" }, "missing_servers": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "servers": { "type": "array", "items": { "type": "string" } }, "tool_discovery": { "type": "string" } } }, "admin.modelAccessResponse": { "type": "object", "properties": { "default_enabled": { "type": "boolean" }, "effective_enabled": { "type": "boolean" }, "override": { "$ref": "#/components/schemas/virtualmodels.VirtualModel" }, "selector": { "type": "string" }, "user_paths": { "type": "array", "items": { "type": "string" } } } }, "admin.modelInventoryResponse": { "type": "object", "properties": { "access": { "$ref": "#/components/schemas/admin.modelAccessResponse" }, "model": { "$ref": "#/components/schemas/core.Model" }, "provider_name": { "type": "string" }, "provider_type": { "type": "string" }, "selector": { "type": "string" } } }, "admin.providerCredentialFieldResponse": { "type": "object", "properties": { "advanced": { "description": "Advanced marks a field most operators leave at its default for this\nprovider type.", "type": "boolean" }, "name": { "type": "string" }, "options": { "description": "Options are an enumerated field's canonical values, for a client to\noffer as a choice. It is not a whitelist — providers accept further\nspellings of each, and upserts are not rejected for using one. An empty\nvalue always means \"provider default\", so it is never listed.", "type": "array", "items": { "type": "string" } }, "required": { "type": "boolean" } } }, "admin.providerCredentialTypeResponse": { "type": "object", "properties": { "default_base_url": { "type": "string" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/admin.providerCredentialFieldResponse" } }, "type": { "type": "string" } } }, "admin.providerCredentialViewResponse": { "type": "object", "properties": { "api_keys": { "type": "array", "items": { "type": "string" } }, "api_mode": { "type": "string" }, "api_version": { "type": "string" }, "auth_type": { "type": "string" }, "backend": { "type": "string" }, "base_url": { "type": "string" }, "created_at": { "type": "string" }, "enabled": { "type": "boolean" }, "gcp_scope": { "type": "string" }, "managed": { "type": "boolean" }, "models": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "proxy_url": { "description": "ProxyURL is the provider's outbound proxy with any password masked.", "type": "string" }, "service_account_file": { "type": "string" }, "service_account_json": { "type": "string" }, "service_account_json_base64": { "type": "string" }, "session_sticky_keys": { "type": "boolean" }, "type": { "type": "string" }, "updated_at": { "type": "string" }, "vertex_location": { "type": "string" }, "vertex_project": { "type": "string" } } }, "admin.rateLimitKeyRequest": { "type": "object", "properties": { "period": { "type": "string" }, "period_seconds": { "type": "integer" } } }, "admin.rateLimitListResponse": { "type": "object", "properties": { "rate_limits": { "type": "array", "items": { "$ref": "#/components/schemas/admin.rateLimitStatusResponse" } }, "server_time": { "type": "string" } } }, "admin.rateLimitStatusResponse": { "type": "object", "properties": { "created_at": { "type": "string" }, "effective_subject": { "type": "string" }, "in_flight": { "type": "integer" }, "max_requests": { "type": "integer" }, "max_tokens": { "type": "integer" }, "per_child": { "type": "boolean" }, "period_label": { "type": "string" }, "period_seconds": { "type": "integer" }, "requests_remaining": { "type": "integer" }, "requests_used": { "type": "integer" }, "scope": { "type": "string" }, "source": { "type": "string" }, "subject": { "type": "string" }, "tokens_remaining": { "type": "integer" }, "tokens_used": { "type": "integer" }, "updated_at": { "type": "string" }, "user_path": { "type": "string" }, "window_end": { "type": "string" }, "window_start": { "type": "string" } } }, "admin.recalculatePricingRequest": { "type": "object", "properties": { "confirm": { "type": "string" }, "confirmation": { "type": "string" }, "days": { "type": "integer" }, "end_date": { "type": "string" }, "selector": { "type": "string" }, "start_date": { "type": "string" }, "user_path": { "type": "string" } }, "required": [ "confirmation" ] }, "admin.resetBudgetRequest": { "type": "object", "properties": { "period": { "type": "string" }, "period_seconds": { "type": "integer" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } } }, "admin.resetBudgetsRequest": { "type": "object", "properties": { "confirm": { "type": "string" }, "confirmation": { "type": "string" } } }, "admin.resetBudgetsResponse": { "type": "object", "properties": { "status": { "type": "string" } } }, "admin.resetRateLimitRequest": { "type": "object", "properties": { "period": { "type": "string" }, "period_seconds": { "type": "integer" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } } }, "admin.resetRateLimitsRequest": { "type": "object", "properties": { "confirmation": { "type": "string" } } }, "admin.resetRateLimitsResponse": { "type": "object", "properties": { "status": { "type": "string" } } }, "admin.taggingSettingsResponse": { "type": "object", "properties": { "editable": { "description": "Editable reports whether operator rules can be saved (false when no\nsettings storage is available).", "type": "boolean" }, "headers": { "description": "Headers is the effective rule set: config/env-managed rules (read-only,\nmanaged=true) followed by operator rules persisted in the admin store.", "type": "array", "items": { "$ref": "#/components/schemas/tagging.Rule" } } } }, "admin.updateBudgetSettingsRequest": { "type": "object", "properties": { "daily_reset_hour": { "type": "integer" }, "daily_reset_minute": { "type": "integer" }, "monthly_reset_day": { "type": "integer" }, "monthly_reset_hour": { "type": "integer" }, "monthly_reset_minute": { "type": "integer" }, "weekly_reset_hour": { "type": "integer" }, "weekly_reset_minute": { "type": "integer" }, "weekly_reset_weekday": { "type": "integer" } } }, "admin.updateTaggingSettingsRequest": { "type": "object", "properties": { "headers": { "type": "array", "items": { "$ref": "#/components/schemas/tagging.Rule" } } } }, "admin.upsertBudgetRequest": { "type": "object", "properties": { "amount": { "type": "number" }, "budget_key": { "$ref": "#/components/schemas/admin.budgetKeyRequest" }, "per_child": { "type": "boolean" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } }, "required": [ "amount", "budget_key" ] }, "admin.upsertMCPServerRequest": { "type": "object", "properties": { "allowed_tools": { "type": "array", "items": { "type": "string" } }, "description": { "type": "string" }, "disallowed_tools": { "type": "array", "items": { "type": "string" } }, "disallowed_user_paths": { "type": "array", "items": { "type": "string" } }, "enabled": { "type": "boolean" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "name": { "type": "string" }, "slug": { "type": "string" }, "tool_timeout_seconds": { "type": "integer" }, "transport": { "type": "string" }, "url": { "type": "string" }, "user_paths": { "type": "array", "items": { "type": "string" } } } }, "admin.upsertMCPVirtualServerRequest": { "type": "object", "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "servers": { "type": "array", "items": { "type": "string" } }, "tool_discovery": { "type": "string" } } }, "admin.upsertModelPricingOverrideRequest": { "type": "object", "properties": { "pricing": { "$ref": "#/components/schemas/pricingoverrides.Pricing" }, "selector": { "type": "string" } }, "required": [ "pricing", "selector" ] }, "admin.upsertProviderCredentialRequest": { "type": "object", "properties": { "api_keys": { "type": "array", "items": { "type": "string" } }, "api_mode": { "type": "string" }, "api_version": { "type": "string" }, "auth_type": { "type": "string" }, "backend": { "type": "string" }, "base_url": { "type": "string" }, "enabled": { "type": "boolean" }, "gcp_scope": { "type": "string" }, "models": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "proxy_url": { "description": "ProxyURL may be sent back exactly as the view rendered it (password\nmasked) to keep the stored proxy credentials.", "type": "string" }, "service_account_file": { "type": "string" }, "service_account_json": { "type": "string" }, "service_account_json_base64": { "type": "string" }, "session_sticky_keys": { "type": "boolean" }, "type": { "type": "string" }, "vertex_location": { "type": "string" }, "vertex_project": { "type": "string" } } }, "admin.upsertRateLimitRequest": { "type": "object", "properties": { "limit_key": { "$ref": "#/components/schemas/admin.rateLimitKeyRequest" }, "max_requests": { "type": "integer" }, "max_tokens": { "type": "integer" }, "per_child": { "type": "boolean" }, "scope": { "type": "string" }, "subject": { "type": "string" }, "user_path": { "type": "string" } } }, "admin.upsertVirtualModelRequest": { "type": "object", "properties": { "description": { "type": "string" }, "enabled": { "type": "boolean" }, "failover": { "description": "Failover retries a failed request on the remaining targets. Omitted\nmeans enabled; false serves the chosen target only.", "type": "boolean" }, "old_source": { "type": "string" }, "session_affinity": { "description": "SessionAffinity keeps a detected session on the target that served it\nbefore. Omitted means enabled; false restores stateless balancing.", "type": "boolean" }, "slowdown": { "description": "Slowdown is an extra-time factor from 0.1 to 10; zero disables it.", "oneOf": [ { "type": "number", "enum": [ 0 ] }, { "type": "number", "minimum": 0.1, "maximum": 10 } ] }, "source": { "type": "string" }, "strategy": { "type": "string" }, "strategy_config": { "type": "object", "additionalProperties": {} }, "strategy_plugin": { "description": "StrategyPlugin names the routing-strategy plugin for strategy \"plugin\";\nStrategyConfig holds that plugin's route-scoped settings, validated\nagainst its schema (see GET /admin/plugins, route_fields).", "type": "string" }, "target_model": { "type": "string" }, "targets": { "type": "array", "items": { "$ref": "#/components/schemas/admin.virtualModelTargetRequest" } }, "user_paths": { "type": "array", "items": { "type": "string", "maxLength": 1024 }, "maxItems": 100 } }, "required": [ "source" ] }, "admin.virtualModelTargetRequest": { "type": "object", "properties": { "model": { "type": "string" }, "provider": { "type": "string" }, "weight": { "type": "number" } } }, "anthropicapi.BatchCreateItem": { "type": "object", "properties": { "custom_id": { "type": "string" }, "params": { "type": "object" } } }, "anthropicapi.BatchCreateRequest": { "type": "object", "properties": { "requests": { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.BatchCreateItem" } } } }, "anthropicapi.CountTokensResponse": { "type": "object", "properties": { "input_tokens": { "type": "integer" } } }, "anthropicapi.DeletedMessageBatch": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.ErrorObject": { "type": "object", "properties": { "message": { "type": "string" }, "provider": { "description": "Provider names the upstream provider that produced the error. It is\nomitted for errors raised by the gateway itself.", "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.ErrorResponse": { "type": "object", "properties": { "error": { "$ref": "#/components/schemas/anthropicapi.ErrorObject" }, "type": { "type": "string" } } }, "anthropicapi.Message": { "type": "object", "properties": { "content": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.ContentBlock" } } ] }, "role": { "type": "string" } } }, "anthropicapi.MessageBatch": { "type": "object", "properties": { "archived_at": { "type": "string" }, "cancel_initiated_at": { "type": "string" }, "created_at": { "type": "string" }, "ended_at": { "type": "string" }, "expires_at": { "type": "string" }, "id": { "type": "string" }, "processing_status": { "type": "string" }, "request_counts": { "$ref": "#/components/schemas/anthropicapi.MessageBatchRequestCounts" }, "results_url": { "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.MessageBatchList": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.MessageBatch" } }, "first_id": { "type": "string" }, "has_more": { "type": "boolean" }, "last_id": { "type": "string" } } }, "anthropicapi.MessageBatchRequestCounts": { "type": "object", "properties": { "canceled": { "type": "integer" }, "errored": { "type": "integer" }, "expired": { "type": "integer" }, "processing": { "type": "integer" }, "succeeded": { "type": "integer" } } }, "anthropicapi.MessagesRequest": { "type": "object", "properties": { "cache_control": { "type": "object" }, "max_tokens": { "type": "integer" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.Message" } }, "metadata": { "$ref": "#/components/schemas/anthropicapi.Metadata" }, "model": { "type": "string" }, "output_config": { "description": "OutputConfig carries structured output (format) and the effort level.", "allOf": [ { "$ref": "#/components/schemas/anthropicapi.OutputConfig" } ] }, "output_format": { "description": "OutputFormat is the deprecated top-level form of output_config.format.", "type": "object" }, "stop_sequences": { "type": "array", "items": { "type": "string" } }, "stream": { "type": "boolean" }, "system": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.ContentBlock" } } ] }, "temperature": { "type": "number" }, "thinking": { "$ref": "#/components/schemas/anthropicapi.Thinking" }, "tool_choice": { "$ref": "#/components/schemas/anthropicapi.ToolChoice" }, "tools": { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.Tool" } }, "top_k": { "type": "integer" }, "top_p": { "type": "number" } } }, "anthropicapi.MessagesResponse": { "type": "object", "properties": { "content": { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.ResponseContentBlock" } }, "id": { "type": "string" }, "model": { "type": "string" }, "role": { "type": "string" }, "stop_reason": { "type": "string" }, "stop_sequence": { "type": "string" }, "type": { "type": "string" }, "usage": { "$ref": "#/components/schemas/anthropicapi.Usage" } } }, "anthropicapi.Metadata": { "type": "object", "properties": { "user_id": { "type": "string" } } }, "anthropicapi.OutputConfig": { "type": "object", "properties": { "effort": { "type": "string" }, "format": { "type": "object" } } }, "anthropicapi.ResponseContentBlock": { "type": "object", "properties": { "data": { "description": "Data is the opaque payload of a redacted_thinking block.", "type": "string" }, "extra_content": { "description": "ExtraContent is provider replay state on a tool_use block; clients echo\nit back on the next turn (see core.ExtraContentField).", "type": "object" }, "id": { "type": "string" }, "input": { "type": "object", "additionalProperties": true }, "name": { "type": "string" }, "signature": { "description": "Signature authenticates a thinking block. Anthropic requires it back\nverbatim when the conversation continues, so clients must echo it. Every\nthinking block carries the member, as the Anthropic schema requires;\nreasoning from a provider that does not sign its output is rendered with\nan empty signature. Hence the pointer: only a thinking block has one.", "type": "string" }, "text": { "type": "string" }, "thinking": { "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.Thinking": { "type": "object", "properties": { "budget_tokens": { "type": "integer" }, "type": { "type": "string" } } }, "anthropicapi.Tool": { "type": "object", "properties": { "cache_control": { "type": "object" }, "defer_loading": { "description": "DeferLoading marks a tool whose schema the API loads only when tool\nsearch matches it. It is an ordinary custom tool that declares itself\ndeferred, so the translated pipeline sends it like any other and drops\nthe marker (see convertTools).", "type": "boolean" }, "description": { "type": "string" }, "input_schema": { "type": "object", "additionalProperties": true }, "name": { "type": "string" }, "strict": { "type": "boolean" }, "type": { "type": "string" } } }, "anthropicapi.ToolChoice": { "type": "object", "properties": { "disable_parallel_tool_use": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.Usage": { "type": "object", "properties": { "cache_creation_input_tokens": { "type": "integer" }, "cache_read_input_tokens": { "type": "integer" }, "input_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" } } }, "auditlog.AttemptSnapshot": { "type": "object", "properties": { "duration_ns": { "type": "integer" }, "error_code": { "type": "string" }, "error_message": { "type": "string" }, "error_type": { "type": "string" }, "kind": { "type": "string" }, "model": { "type": "string" }, "provider_name": { "type": "string" }, "provider_type": { "type": "string" }, "response_body": { "description": "ResponseBody and ResponseHeaders capture the raw upstream error response\nof a failed attempt. ResponseBody is the parsed JSON (or a string when the\nbody is not JSON); ResponseHeaders is redacted. Both are populated only\nwhen audit body/header logging is enabled." }, "response_headers": { "type": "object", "additionalProperties": { "type": "string" } }, "seq": { "type": "integer" }, "started_at": { "type": "string" }, "status_code": { "type": "integer" }, "success": { "type": "boolean" } } }, "auditlog.FailoverSnapshot": { "type": "object", "properties": { "target_model": { "type": "string" } } }, "auditlog.GuardrailOutcomeSnapshot": { "type": "object", "properties": { "action": { "description": "Action is the decision (allow, warn, block, respond) or \"failure\" when\nthe instance errored; FailMode then says whether the chain carried on\n(\"open\") or the request failed (\"closed\").", "type": "string" }, "code": { "type": "string" }, "detail": {}, "dropped_events": { "type": "integer" }, "duration_ns": { "type": "integer" }, "edited": { "description": "Edited reports that the instance changed the request (prompt phase)\nor the response (response and stream phases); Target names which.", "type": "boolean" }, "error": { "type": "string" }, "fail_mode": { "type": "string" }, "instance": { "type": "string" }, "message": { "type": "string" }, "phase": { "type": "string" }, "replaced_events": { "description": "ReplacedEvents and DroppedEvents count the stream events an in-flight\nstream instance rewrote or withheld.", "type": "integer" }, "seq": { "type": "integer" }, "step": { "type": "integer" }, "target": { "type": "string" }, "type": { "type": "string" } } }, "auditlog.LogData": { "type": "object", "properties": { "api_key_hash": { "type": "string" }, "attempts": { "description": "Attempts captures provider calls made for this logical request. SQL\nstores split this into audit_log_attempts; Mongo stores it embedded.", "type": "array", "items": { "$ref": "#/components/schemas/auditlog.AttemptSnapshot" } }, "error_code": { "type": "string" }, "error_message": { "description": "Error details (message can be long, so kept in JSON)", "type": "string" }, "error_provider": { "description": "ErrorProvider names the upstream provider an error came from; empty when\nthe gateway itself raised the error (authentication, validation, budget,\n...), which tells a provider's 401 apart from a rejected gateway key.", "type": "string" }, "event_type": { "description": "EventType identifies non-request security lifecycle entries written\nthrough the extension authentication event recorder.", "type": "string" }, "failover": { "description": "Failover captures runtime redirect details when translated execution\nmoved from the primary selector to a configured failover target.", "allOf": [ { "$ref": "#/components/schemas/auditlog.FailoverSnapshot" } ] }, "guardrails": { "description": "Guardrails records the outcome of every guardrail (plugin instance)\nthat ran for the request, in execution order across the prompt,\nresponse and stream phases: what each decided, whether it edited the\nrequest or response, and how it failed. It is the decision trail;\nRequestRevisions is the body trail. A configured step without an\noutcome did not run (an earlier block, a cache hit).", "type": "array", "items": { "$ref": "#/components/schemas/auditlog.GuardrailOutcomeSnapshot" } }, "labels": { "description": "Labels are request labels extracted from configured tagging headers.", "type": "array", "items": { "type": "string" } }, "max_tokens": { "type": "integer" }, "request_body": { "description": "Optional bodies (when LOGGING_LOG_BODIES=true). Captured JSON is kept\nas json.RawMessage; other captures (string fallbacks, audio/image logs,\nstream-built responses) keep their own types. The MongoDB writer decodes\nraw JSON into documents so they stay queryable — see body.go." }, "request_body_too_big_to_handle": { "description": "Body capture status flags (set when body exceeds 1MB limit)", "type": "boolean" }, "request_headers": { "description": "Optional headers (when LOGGING_LOG_HEADERS=true)\nSensitive headers are auto-redacted", "type": "object", "additionalProperties": { "type": "string" } }, "request_revisions": { "description": "RequestRevisions captures the ingress request-rewrite chain: one entry\nper registered rewriter that ran, in application order, followed by the\nprompt-guardrail steps. Rewriters that changed the body carry the\nrewritten body; those that left it alone are recorded with NoChange so\nthe audit trail still shows the step ran. Each prompt guardrail that\nedited the prompt is a changed revision, in step order, carrying the\nrequest as it stood right after that step (the next step's input) with\nits sizes; one that objected (warn, block, respond) or failed without\nediting is a NoChange entry carrying the decision, and a silent allow\nleaves no entry. RequestBody always remains the original client\nrequest; the last changed revision is what was forwarded downstream —\nwhen every step was a no-op there is no such revision and the original\nbody is what went upstream.", "type": "array", "items": { "$ref": "#/components/schemas/auditlog.RequestRevisionSnapshot" } }, "response_body": {}, "response_body_too_big_to_handle": { "type": "boolean" }, "response_headers": { "type": "object", "additionalProperties": { "type": "string" } }, "temperature": { "description": "Request parameters", "type": "number" }, "user_agent": { "description": "Identity", "type": "string" }, "workflow_features": { "description": "WorkflowFeatures captures the request-time effective workflow features\nafter runtime caps were applied. This keeps audit views historically accurate\neven if the active process config changes later.", "allOf": [ { "$ref": "#/components/schemas/auditlog.WorkflowFeaturesSnapshot" } ] } } }, "auditlog.ProviderLatencySeries": { "type": "object", "properties": { "avg_duration_ms": { "type": "array", "items": { "type": "number" } }, "provider": { "type": "string" }, "requests": { "type": "array", "items": { "type": "integer" } } } }, "auditlog.RequestRevisionSnapshot": { "type": "object", "properties": { "body": { "description": "Body is the request body after this revision (the raw JSON, or a string\nwhen not valid JSON — see body.go). Populated only when body logging is\nenabled and the body is within the capture limit." }, "bytes_after": { "type": "integer" }, "bytes_before": { "type": "integer" }, "detail": { "description": "Detail is an optional rewriter-provided structured summary of what\nchanged (for example a compression block report)." }, "no_change": { "description": "NoChange marks a rewriter that ran and left the body untouched. Such\nrevisions record the step for operators — BytesAfter equals BytesBefore,\nBody is empty and TokensSaved is zero, though Detail may explain why\nnothing changed — but are not part of the chain that produced the\nforwarded request. Absent on entries written before no-change steps were\ntracked, which is why the flag is positive: an old revision always\nchanged the body.", "type": "boolean" }, "rewriter": { "type": "string" }, "seq": { "type": "integer" }, "tokens_saved": { "description": "TokensSaved is the rewriter-reported estimate of prompt tokens this\nrevision saved (e.g. token compression); zero when the rewriter does\nnot report savings.", "type": "integer" } } }, "auditlog.RequestStats": { "type": "object", "properties": { "buckets": { "type": "array", "items": { "$ref": "#/components/schemas/auditlog.RequestStatsBucket" } }, "interval": { "type": "string" }, "provider_latency": { "type": "array", "items": { "$ref": "#/components/schemas/auditlog.ProviderLatencySeries" } }, "summary": { "$ref": "#/components/schemas/auditlog.RequestStatsSummary" } } }, "auditlog.RequestStatsBucket": { "type": "object", "properties": { "requests": { "type": "integer" }, "start": { "type": "string" }, "status_2xx": { "type": "integer" }, "status_4xx": { "type": "integer" }, "status_5xx": { "type": "integer" }, "status_other": { "type": "integer" } } }, "auditlog.RequestStatsSummary": { "type": "object", "properties": { "avg_duration_ms": { "type": "number" }, "requests": { "type": "integer" }, "status_2xx": { "type": "integer" }, "status_4xx": { "type": "integer" }, "status_5xx": { "type": "integer" }, "status_other": { "type": "integer" }, "success_rate": { "type": "number" } } }, "auditlog.WorkflowFeaturesSnapshot": { "type": "object", "properties": { "audit": { "type": "boolean" }, "budget": { "type": "boolean" }, "cache": { "type": "boolean" }, "failover": { "type": "boolean" }, "guardrails": { "type": "boolean" }, "usage": { "type": "boolean" } } }, "budget.Settings": { "type": "object", "properties": { "daily_reset_hour": { "type": "integer" }, "daily_reset_minute": { "type": "integer" }, "monthly_reset_day": { "type": "integer" }, "monthly_reset_hour": { "type": "integer" }, "monthly_reset_minute": { "type": "integer" }, "updated_at": { "type": "string" }, "weekly_reset_hour": { "type": "integer" }, "weekly_reset_minute": { "type": "integer" }, "weekly_reset_weekday": { "type": "integer" } } }, "core.AudioSpeechRequest": { "type": "object", "properties": { "input": { "type": "string" }, "instructions": { "type": "string" }, "model": { "type": "string" }, "provider": { "description": "Provider is gateway routing metadata, stripped before dispatching upstream.", "type": "string" }, "response_format": { "type": "string" }, "speed": { "type": "number" }, "voice": { "type": "string" } }, "required": [ "input", "model", "voice" ] }, "core.BatchError": { "type": "object", "properties": { "message": { "type": "string" }, "type": { "type": "string" } } }, "core.BatchListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.BatchResponse" } }, "first_id": { "type": "string" }, "has_more": { "type": "boolean" }, "last_id": { "type": "string" }, "object": { "type": "string" } } }, "core.BatchRequest": { "type": "object", "properties": { "completion_window": { "type": "string" }, "endpoint": { "type": "string" }, "input_file_id": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "requests": { "type": "array", "items": { "$ref": "#/components/schemas/core.BatchRequestItem" } } } }, "core.BatchRequestCounts": { "type": "object", "properties": { "completed": { "type": "integer" }, "failed": { "type": "integer" }, "total": { "type": "integer" } } }, "core.BatchRequestItem": { "type": "object", "properties": { "body": { "type": "object" }, "custom_id": { "type": "string" }, "method": { "type": "string" }, "url": { "type": "string" } } }, "core.BatchResponse": { "type": "object", "properties": { "cancelled_at": { "type": "integer" }, "cancelling_at": { "type": "integer" }, "completed_at": { "type": "integer" }, "completion_window": { "type": "string" }, "created_at": { "type": "integer" }, "endpoint": { "type": "string" }, "failed_at": { "type": "integer" }, "id": { "type": "string" }, "in_progress_at": { "type": "integer" }, "input_file_id": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "object": { "type": "string" }, "provider": { "type": "string" }, "provider_batch_id": { "type": "string" }, "request_counts": { "$ref": "#/components/schemas/core.BatchRequestCounts" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/core.BatchResultItem" } }, "status": { "type": "string" }, "usage": { "description": "Gateway extension: optional usage/result snapshots persisted by the gateway.", "allOf": [ { "$ref": "#/components/schemas/core.BatchUsageSummary" } ] } } }, "core.BatchResultItem": { "type": "object", "properties": { "custom_id": { "type": "string" }, "error": { "$ref": "#/components/schemas/core.BatchError" }, "index": { "type": "integer" }, "model": { "type": "string" }, "provider": { "type": "string" }, "response": {}, "status_code": { "type": "integer" }, "url": { "type": "string" } } }, "core.BatchResultsResponse": { "type": "object", "properties": { "batch_id": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.BatchResultItem" } }, "object": { "type": "string" } } }, "core.BatchUsageSummary": { "type": "object", "properties": { "input_cost": { "type": "number" }, "input_tokens": { "type": "integer" }, "output_cost": { "type": "number" }, "output_tokens": { "type": "integer" }, "total_cost": { "type": "number" }, "total_tokens": { "type": "integer" } } }, "core.ChatRequest": { "type": "object", "properties": { "max_tokens": { "type": "integer" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/core.Message" } }, "model": { "type": "string" }, "parallel_tool_calls": { "type": "boolean" }, "provider": { "description": "Gateway routing hint; stripped before upstream execution.", "type": "string" }, "reasoning": { "$ref": "#/components/schemas/core.Reasoning" }, "service_tier": { "type": "string" }, "stream": { "type": "boolean" }, "stream_options": { "$ref": "#/components/schemas/core.StreamOptions" }, "temperature": { "type": "number" }, "tool_choice": { "description": "string or object" }, "tools": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "top_p": { "type": "number" }, "user": { "type": "string" } } }, "core.ChatResponse": { "type": "object", "properties": { "choices": { "type": "array", "items": { "$ref": "#/components/schemas/core.Choice" } }, "created": { "type": "integer" }, "id": { "type": "string" }, "model": { "type": "string" }, "object": { "type": "string" }, "provider": { "type": "string" }, "system_fingerprint": { "type": "string" }, "usage": { "$ref": "#/components/schemas/core.Usage" } } }, "core.Choice": { "type": "object", "properties": { "finish_reason": { "type": "string" }, "index": { "type": "integer" }, "logprobs": { "type": "object" }, "message": { "$ref": "#/components/schemas/core.ResponseMessage" }, "stop_sequence": { "description": "StopSequence is the matched stop sequence when the provider reports one\nnatively (Anthropic stop_reason \"stop_sequence\"). OpenAI's finish_reason\n\"stop\" conflates natural stops with stop-parameter hits, so this is an\nextension field: present only when the provider knows the answer, in the\nsame spirit as the relayed reasoning_content extension.", "type": "string" } } }, "core.CompletionTokensDetails": { "type": "object", "properties": { "accepted_prediction_tokens": { "type": "integer" }, "audio_tokens": { "type": "integer" }, "reasoning_tokens": { "type": "integer" }, "rejected_prediction_tokens": { "type": "integer" } } }, "core.ContentPart": { "type": "object", "properties": { "file": { "$ref": "#/components/schemas/core.FileContent" }, "image_url": { "$ref": "#/components/schemas/core.ImageURLContent" }, "input_audio": { "$ref": "#/components/schemas/core.InputAudioContent" }, "text": { "type": "string" }, "type": { "type": "string" }, "video_url": { "$ref": "#/components/schemas/core.VideoURLContent" } } }, "core.Conversation": { "type": "object", "properties": { "created_at": { "type": "integer" }, "id": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "object": { "description": "\"conversation\"", "type": "string" } } }, "core.ConversationCreateRequest": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object" } }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } } } }, "core.ConversationDeleteResponse": { "type": "object", "properties": { "deleted": { "type": "boolean" }, "id": { "type": "string" }, "object": { "description": "\"conversation.deleted\"", "type": "string" } } }, "core.ConversationItemCreateRequest": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "type": "object" } } } }, "core.ConversationItemListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object" } }, "first_id": { "type": "string", "nullable": true }, "has_more": { "type": "boolean" }, "last_id": { "type": "string", "nullable": true }, "object": { "type": "string" } } }, "core.ConversationUpdateRequest": { "type": "object", "required": [ "metadata" ], "properties": { "metadata": { "type": "object", "additionalProperties": { "type": "string" } } } }, "core.EmbeddingData": { "type": "object", "properties": { "embedding": { "type": "object" }, "index": { "type": "integer" }, "object": { "type": "string" } } }, "core.EmbeddingRequest": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "encoding_format": { "type": "string" }, "input": {}, "model": { "type": "string" }, "provider": { "description": "Gateway routing hint; stripped before upstream execution.", "type": "string" } } }, "core.EmbeddingResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.EmbeddingData" } }, "model": { "type": "string" }, "object": { "type": "string" }, "provider": { "type": "string" }, "usage": { "$ref": "#/components/schemas/core.EmbeddingUsage" } } }, "core.EmbeddingUsage": { "type": "object", "properties": { "prompt_tokens": { "type": "integer" }, "raw_usage": { "type": "object", "additionalProperties": {} }, "total_tokens": { "type": "integer" } } }, "core.ErrorType": { "type": "string", "enum": [ "provider_error", "rate_limit_error", "invalid_request_error", "authentication_error", "not_found_error", "permission_error", "internal_error" ], "x-enum-varnames": [ "ErrorTypeProvider", "ErrorTypeRateLimit", "ErrorTypeInvalidRequest", "ErrorTypeAuthentication", "ErrorTypeNotFound", "ErrorTypePermission", "ErrorTypeInternal" ] }, "core.FileContent": { "type": "object", "properties": { "file_data": { "type": "string" }, "file_id": { "type": "string" }, "file_url": { "type": "string" }, "filename": { "type": "string" } } }, "core.FileDeleteResponse": { "type": "object", "properties": { "deleted": { "type": "boolean" }, "id": { "type": "string" }, "object": { "type": "string" } } }, "core.FileListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.FileObject" } }, "has_more": { "type": "boolean" }, "object": { "type": "string" } } }, "core.FileObject": { "type": "object", "properties": { "bytes": { "type": "integer" }, "created_at": { "type": "integer" }, "filename": { "type": "string" }, "id": { "type": "string" }, "object": { "type": "string" }, "provider": { "description": "Gateway enrichment for multi-provider deployments.", "type": "string" }, "purpose": { "type": "string" }, "status": { "type": "string" }, "status_details": { "type": "string" } } }, "core.FunctionCall": { "type": "object", "properties": { "arguments": { "type": "string" }, "name": { "type": "string" } } }, "core.GatewayError": { "type": "object", "properties": { "code": { "type": "string", "nullable": true }, "message": { "type": "string" }, "param": { "type": "string", "nullable": true }, "provider": { "type": "string" }, "status_code": { "type": "integer" }, "type": { "$ref": "#/components/schemas/core.ErrorType" } } }, "core.ImageData": { "type": "object", "properties": { "b64_json": { "type": "string" }, "revised_prompt": { "type": "string" }, "url": { "type": "string" } } }, "core.ImageGenerationRequest": { "type": "object", "required": [ "model", "prompt" ], "properties": { "model": { "type": "string" }, "n": { "type": "integer", "minimum": 1 }, "prompt": { "type": "string" }, "provider": { "description": "Provider is gateway routing metadata, stripped before dispatching upstream.", "type": "string" }, "quality": { "type": "string" }, "response_format": { "type": "string" }, "size": { "type": "string" }, "stream": { "description": "Stream is typed only so the gateway can reject it: streaming image\ngeneration returns server-sent events, which this endpoint does not relay.", "type": "boolean" }, "user": { "type": "string" } } }, "core.ImageGenerationResponse": { "type": "object", "properties": { "background": { "type": "string" }, "created": { "type": "integer" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.ImageData" } }, "output_format": { "type": "string" }, "provider": { "description": "Provider is a gateway addition, stamped like every other routed response,\nso clients can tell which provider served the request.", "type": "string" }, "quality": { "type": "string" }, "size": { "type": "string" }, "usage": { "$ref": "#/components/schemas/core.ImageUsage" } } }, "core.ImageTokenDetails": { "type": "object", "properties": { "image_tokens": { "type": "integer" }, "text_tokens": { "type": "integer" } } }, "core.ImageURLContent": { "type": "object", "properties": { "detail": { "type": "string" }, "media_type": { "type": "string" }, "url": { "type": "string" } } }, "core.ImageUsage": { "type": "object", "properties": { "input_tokens": { "type": "integer" }, "input_tokens_details": { "$ref": "#/components/schemas/core.ImageTokenDetails" }, "output_tokens": { "type": "integer" }, "total_tokens": { "type": "integer" } } }, "core.InputAudioContent": { "type": "object", "properties": { "data": { "type": "string" }, "format": { "type": "string" } } }, "core.Message": { "type": "object", "properties": { "content": { "description": "ContentSchema documents that `content` accepts either a plain string\nor an array of ContentPart values.", "type": "array", "items": { "$ref": "#/components/schemas/core.ContentPart" }, "x-oneof": "[{\"type\":\"null\"},{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/core.ContentPart\"}}]" }, "role": { "type": "string" }, "tool_call_id": { "type": "string" }, "tool_calls": { "type": "array", "items": { "$ref": "#/components/schemas/core.ToolCall" } } } }, "core.Model": { "type": "object", "properties": { "created": { "type": "integer" }, "id": { "type": "string" }, "metadata": { "description": "Metadata holds optional enrichment data (display name, pricing, capabilities, etc.).\nMay be nil if the model was not found in the external registry.", "allOf": [ { "$ref": "#/components/schemas/core.ModelMetadata" } ] }, "object": { "type": "string" }, "owned_by": { "type": "string" } } }, "core.ModelCategory": { "type": "string", "enum": [ "all", "text_generation", "embedding", "image", "audio", "video", "utility" ], "x-enum-varnames": [ "CategoryAll", "CategoryTextGeneration", "CategoryEmbedding", "CategoryImage", "CategoryAudio", "CategoryVideo", "CategoryUtility" ] }, "core.ModelMetadata": { "type": "object", "properties": { "capabilities": { "type": "object", "additionalProperties": { "type": "boolean" } }, "categories": { "type": "array", "items": { "$ref": "#/components/schemas/core.ModelCategory" } }, "context_window": { "type": "integer" }, "description": { "type": "string" }, "display_name": { "type": "string" }, "family": { "type": "string" }, "max_output_tokens": { "type": "integer" }, "modes": { "type": "array", "items": { "type": "string" } }, "pricing": { "$ref": "#/components/schemas/core.ModelPricing" }, "pricing_sources": { "type": "object", "additionalProperties": { "type": "string" } }, "rankings": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/core.ModelRanking" } }, "tags": { "type": "array", "items": { "type": "string" } } } }, "core.ModelPricing": { "type": "object", "properties": { "audio_input_per_mtok": { "type": "number" }, "audio_output_per_mtok": { "type": "number" }, "batch_input_per_mtok": { "type": "number" }, "batch_output_per_mtok": { "type": "number" }, "cache_write_1h_per_mtok": { "description": "Anthropic 1-hour TTL cache writes; cache_write_per_mtok prices the default 5-minute ones", "type": "number" }, "cache_write_per_mtok": { "type": "number" }, "cached_input_per_mtok": { "type": "number" }, "currency": { "type": "string" }, "input_per_image": { "type": "number" }, "input_per_mtok": { "type": "number" }, "output_image_per_mtok": { "description": "OutputImagePerMtok prices generated image tokens, which providers bill at a\ndifferent rate from text output (OpenAI gpt-image-1: $40/Mtok image output\nand no text output rate at all; Gemini 3 Pro Image: $120/Mtok image output\nversus $12/Mtok text). It is the output rate on the image endpoints.", "type": "number" }, "output_per_mtok": { "type": "number" }, "per_character_input": { "type": "number" }, "per_image": { "description": "PerImage prices a returned image as a flat unit, for models that report no\ntoken usage at all (DALL·E, Imagen, grok-imagine). It is an alternative\nexpression of the same charge as OutputImagePerMtok, never an addition to\nit: catalog entries carry both, so only one may be applied (see\nusage.CalculateGranularCost).", "type": "number" }, "per_page": { "type": "number" }, "per_request": { "type": "number" }, "per_second_input": { "type": "number" }, "per_second_output": { "type": "number" }, "reasoning_output_per_mtok": { "type": "number" }, "tiers": { "type": "array", "items": { "$ref": "#/components/schemas/core.ModelPricingTier" } }, "time_windows": { "description": "TimeWindows carry rates that replace the base prices during recurring\nUTC windows (see ModelPricingTimeWindow). Base prices are the standard\n(peak) rates; use AtTime to resolve the rates in effect at a moment.", "type": "array", "items": { "$ref": "#/components/schemas/core.ModelPricingTimeWindow" } } } }, "core.ModelPricingTier": { "type": "object", "properties": { "cached_input_per_mtok": { "type": "number" }, "input_per_mtok": { "type": "number" }, "output_per_mtok": { "type": "number" }, "up_to_mtok": { "type": "number" }, "up_to_tokens": { "type": "integer", "minimum": 1 } } }, "core.ModelPricingTimeWindow": { "type": "object", "properties": { "label": { "type": "string" }, "pricing": { "$ref": "#/components/schemas/core.ModelPricingTimeWindowRates" }, "utc_ranges": { "type": "array", "items": { "$ref": "#/components/schemas/core.ModelPricingUTCRange" } } } }, "core.ModelPricingTimeWindowRates": { "type": "object", "properties": { "cache_write_per_mtok": { "type": "number" }, "cached_input_per_mtok": { "type": "number" }, "input_per_mtok": { "type": "number" }, "output_per_mtok": { "type": "number" } } }, "core.ModelPricingUTCRange": { "type": "object", "properties": { "days": { "type": "array", "items": { "type": "string" } }, "end": { "type": "string" }, "start": { "type": "string" } } }, "core.ModelRanking": { "type": "object", "properties": { "as_of": { "type": "string" }, "elo": { "type": "number" }, "rank": { "type": "integer" } } }, "core.ModelsResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.Model" } }, "object": { "type": "string" } } }, "core.OpenAIErrorEnvelope": { "type": "object", "required": [ "error" ], "properties": { "error": { "$ref": "#/components/schemas/core.OpenAIErrorObject" } } }, "core.OpenAIErrorObject": { "type": "object", "required": [ "code", "message", "param", "type" ], "properties": { "code": { "type": "string", "nullable": true }, "message": { "type": "string" }, "param": { "type": "string", "nullable": true }, "provider": { "description": "Provider names the upstream provider that produced the error. It is\nomitted for errors raised by the gateway itself.", "type": "string" }, "type": { "$ref": "#/components/schemas/core.ErrorType" } } }, "core.PromptTokensDetails": { "type": "object", "properties": { "audio_tokens": { "type": "integer" }, "cache_write_tokens": { "description": "CacheWriteTokens is the part of the prompt written to the prompt cache\n(OpenAI GPT-5.6+), billed at the cache-write rate. Omitted when zero\nso providers that never report it do not gain the member.", "type": "integer" }, "cached_tokens": { "type": "integer" }, "image_tokens": { "type": "integer" }, "text_tokens": { "type": "integer" } } }, "core.Reasoning": { "type": "object", "properties": { "effort": { "description": "Effort controls how much reasoning effort the model should use.\nValid values are \"low\", \"medium\", \"high\", \"xhigh\", and \"max\".\n\"xhigh\" and \"max\" are supported by newer models such as Claude Opus 4.8;\nproviders downgrade unsupported levels to their nearest equivalent.", "type": "string" } } }, "core.ResponseCompactRequest": { "type": "object", "properties": { "context_management": {}, "conversation": { "description": "Conversation accepts either a conversation ID string or an object with id.", "oneOf": [ { "type": "string" }, { "$ref": "#/components/schemas/core.ResponsesConversationRef" } ] }, "include": { "type": "array", "items": { "type": "string" } }, "input": { "description": "string or []ResponsesInputElement — see docs for array form", "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesInputElement" } } ] }, "instructions": { "type": "string" }, "max_output_tokens": { "type": "integer" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "model": { "type": "string" }, "parallel_tool_calls": { "type": "boolean" }, "previous_response_id": { "type": "string" }, "prompt": {}, "prompt_cache_retention": { "type": "string" }, "provider": { "description": "Gateway routing hint; stripped before upstream execution.", "type": "string" }, "reasoning": { "$ref": "#/components/schemas/core.Reasoning" }, "safety_identifier": { "type": "string" }, "service_tier": { "type": "string" }, "store": { "type": "boolean" }, "temperature": { "type": "number" }, "text": {}, "tool_choice": { "description": "string or object" }, "tools": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "top_logprobs": { "type": "integer" }, "top_p": { "type": "number" }, "truncation": { "type": "string" }, "user": { "type": "string" } } }, "core.ResponseCompactResponse": { "type": "object", "properties": { "created_at": { "type": "integer" }, "error": { "$ref": "#/components/schemas/core.ResponsesError" }, "id": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "object": { "type": "string" }, "output": { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesOutputItem" } }, "provider": { "type": "string" }, "usage": { "$ref": "#/components/schemas/core.ResponsesUsage" } } }, "core.ResponseDeleteResponse": { "type": "object", "properties": { "deleted": { "type": "boolean" }, "id": { "type": "string" }, "object": { "type": "string" } } }, "core.ResponseInputItemListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesInputElement" } }, "first_id": { "type": "string" }, "has_more": { "type": "boolean" }, "last_id": { "type": "string" }, "object": { "type": "string" } } }, "core.ResponseInputTokensRequest": { "type": "object", "properties": { "context_management": {}, "conversation": { "description": "Conversation accepts either a conversation ID string or an object with id.", "oneOf": [ { "type": "string" }, { "$ref": "#/components/schemas/core.ResponsesConversationRef" } ] }, "include": { "type": "array", "items": { "type": "string" } }, "input": { "description": "string or []ResponsesInputElement — see docs for array form", "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesInputElement" } } ] }, "instructions": { "type": "string" }, "max_output_tokens": { "type": "integer" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "model": { "type": "string" }, "parallel_tool_calls": { "type": "boolean" }, "previous_response_id": { "type": "string" }, "prompt": {}, "prompt_cache_retention": { "type": "string" }, "provider": { "description": "Gateway routing hint; stripped before upstream execution.", "type": "string" }, "reasoning": { "$ref": "#/components/schemas/core.Reasoning" }, "safety_identifier": { "type": "string" }, "service_tier": { "type": "string" }, "store": { "type": "boolean" }, "temperature": { "type": "number" }, "text": {}, "tool_choice": { "description": "string or object" }, "tools": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "top_logprobs": { "type": "integer" }, "top_p": { "type": "number" }, "truncation": { "type": "string" }, "user": { "type": "string" } } }, "core.ResponseInputTokensResponse": { "type": "object", "properties": { "input_tokens": { "type": "integer" }, "object": { "type": "string" } } }, "core.ResponseMessage": { "type": "object", "properties": { "content": { "type": "array", "items": { "$ref": "#/components/schemas/core.ContentPart" }, "x-oneof": "[{\"type\":\"null\"},{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/core.ContentPart\"}}]" }, "role": { "type": "string" }, "tool_calls": { "type": "array", "items": { "$ref": "#/components/schemas/core.ToolCall" } } } }, "core.ResponsesContentItem": { "type": "object", "properties": { "annotations": { "description": "Providers can return structured annotation objects here (for example\ncitations from native tools), so keep the payload shape liberal.", "type": "array", "items": { "type": "object" } }, "file_data": { "description": "input_file items carry their file fields flat, unlike chat file parts.", "type": "string" }, "file_id": { "type": "string" }, "file_url": { "type": "string" }, "filename": { "type": "string" }, "image_url": { "$ref": "#/components/schemas/core.ImageURLContent" }, "input_audio": { "$ref": "#/components/schemas/core.InputAudioContent" }, "refusal": { "description": "Refusal is the model's explanation on a \"refusal\" content item.", "type": "string" }, "text": { "type": "string" }, "type": { "description": "\"output_text\", \"refusal\", \"input_image\", \"input_audio\", etc.", "type": "string" } } }, "core.ResponsesConversationRef": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ] }, "core.ResponsesError": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "type": "string" } } }, "core.ResponsesIncompleteDetails": { "type": "object", "properties": { "reason": { "type": "string" } } }, "core.ResponsesOutputItem": { "type": "object", "properties": { "arguments": { "type": "string" }, "call_id": { "type": "string" }, "content": { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesContentItem" } }, "id": { "type": "string" }, "name": { "type": "string" }, "role": { "type": "string" }, "status": { "type": "string" }, "type": { "description": "\"message\", \"function_call\", etc.", "type": "string" }, "extra_content": { "type": "object", "additionalProperties": true } } }, "core.ResponsesRequest": { "type": "object", "properties": { "context_management": {}, "conversation": { "description": "Conversation accepts either a conversation ID string or an object with id.", "oneOf": [ { "type": "string" }, { "$ref": "#/components/schemas/core.ResponsesConversationRef" } ] }, "include": { "type": "array", "items": { "type": "string" } }, "input": { "description": "string or []ResponsesInputElement — see docs for array form", "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesInputElement" } } ] }, "instructions": { "type": "string" }, "max_output_tokens": { "type": "integer" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "model": { "type": "string" }, "parallel_tool_calls": { "type": "boolean" }, "previous_response_id": { "type": "string" }, "prompt": {}, "prompt_cache_retention": { "type": "string" }, "provider": { "description": "Gateway routing hint; stripped before upstream execution.", "type": "string" }, "reasoning": { "$ref": "#/components/schemas/core.Reasoning" }, "safety_identifier": { "type": "string" }, "service_tier": { "type": "string" }, "store": { "type": "boolean" }, "stream": { "type": "boolean" }, "stream_options": { "$ref": "#/components/schemas/core.StreamOptions" }, "temperature": { "type": "number" }, "text": {}, "tool_choice": { "description": "string or object" }, "tools": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "top_logprobs": { "type": "integer" }, "top_p": { "type": "number" }, "truncation": { "type": "string" }, "user": { "type": "string" } } }, "core.ResponsesResponse": { "type": "object", "properties": { "created_at": { "type": "integer" }, "error": { "$ref": "#/components/schemas/core.ResponsesError" }, "id": { "type": "string" }, "incomplete_details": { "description": "IncompleteDetails explains a status of \"incomplete\": the model hit\nmax_output_tokens, was stopped by a content filter, or the upstream\nstream was interrupted.", "allOf": [ { "$ref": "#/components/schemas/core.ResponsesIncompleteDetails" } ] }, "model": { "type": "string" }, "object": { "description": "\"response\"", "type": "string" }, "output": { "type": "array", "items": { "$ref": "#/components/schemas/core.ResponsesOutputItem" } }, "previous_response_id": { "description": "PreviousResponseID names the response this one was chained from, as\nOpenAI echoes it; stored snapshots follow it to rebuild the history.", "type": "string" }, "provider": { "type": "string" }, "status": { "description": "\"completed\", \"incomplete\", \"failed\", \"in_progress\"", "type": "string" }, "usage": { "$ref": "#/components/schemas/core.ResponsesUsage" } } }, "core.ResponsesUsage": { "type": "object", "properties": { "completion_tokens_details": { "$ref": "#/components/schemas/core.CompletionTokensDetails" }, "input_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" }, "prompt_tokens_details": { "$ref": "#/components/schemas/core.PromptTokensDetails" }, "raw_usage": { "type": "object", "additionalProperties": {} }, "total_tokens": { "type": "integer" } } }, "core.StreamOptions": { "type": "object", "properties": { "include_usage": { "description": "IncludeUsage requests token usage information in streaming responses.\nWhen true, the final streaming chunk will include usage statistics.", "type": "boolean" } } }, "core.ToolCall": { "type": "object", "properties": { "function": { "$ref": "#/components/schemas/core.FunctionCall" }, "id": { "type": "string" }, "type": { "type": "string" } } }, "core.Usage": { "type": "object", "properties": { "completion_tokens": { "type": "integer" }, "completion_tokens_details": { "$ref": "#/components/schemas/core.CompletionTokensDetails" }, "prompt_tokens": { "type": "integer" }, "prompt_tokens_details": { "$ref": "#/components/schemas/core.PromptTokensDetails" }, "raw_usage": { "type": "object", "additionalProperties": {} }, "total_tokens": { "type": "integer" } } }, "core.VideoURLContent": { "type": "object", "properties": { "detail": { "type": "string" }, "url": { "type": "string" } } }, "mcpgateway.CatalogFeature": { "type": "object", "properties": { "description": { "type": "string" }, "destructive": { "type": "boolean" }, "name": { "type": "string" }, "read_only": { "type": "boolean" } } }, "mcpgateway.CatalogResource": { "type": "object", "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "uri": { "type": "string" } } }, "mcpgateway.CatalogTemplate": { "type": "object", "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "uri_template": { "type": "string" } } }, "mcpgateway.CatalogView": { "type": "object", "properties": { "excluded_tools": { "type": "array", "items": { "$ref": "#/components/schemas/mcpgateway.CatalogFeature" } }, "instructions": { "type": "string" }, "prompts": { "type": "array", "items": { "$ref": "#/components/schemas/mcpgateway.CatalogFeature" } }, "resources": { "type": "array", "items": { "$ref": "#/components/schemas/mcpgateway.CatalogResource" } }, "server": { "type": "string" }, "status": { "$ref": "#/components/schemas/mcpgateway.ServerStatus" }, "templates": { "type": "array", "items": { "$ref": "#/components/schemas/mcpgateway.CatalogTemplate" } }, "tools": { "type": "array", "items": { "$ref": "#/components/schemas/mcpgateway.CatalogFeature" } } } }, "mcpgateway.ServerStatus": { "type": "string", "enum": [ "disabled", "connecting", "connected", "degraded" ], "x-enum-varnames": [ "StatusDisabled", "StatusConnecting", "StatusConnected", "StatusDegraded" ] }, "pricingoverrides.Pricing": { "type": "object", "properties": { "audio_input_per_mtok": { "type": "number" }, "audio_output_per_mtok": { "type": "number" }, "batch_input_per_mtok": { "type": "number" }, "batch_output_per_mtok": { "type": "number" }, "cache_write_1h_per_mtok": { "type": "number" }, "cache_write_per_mtok": { "type": "number" }, "cached_input_per_mtok": { "type": "number" }, "input_per_image": { "type": "number" }, "input_per_mtok": { "type": "number" }, "output_image_per_mtok": { "type": "number" }, "output_per_mtok": { "type": "number" }, "per_character_input": { "type": "number" }, "per_image": { "type": "number" }, "per_page": { "type": "number" }, "per_request": { "type": "number" }, "per_second_input": { "type": "number" }, "per_second_output": { "type": "number" }, "reasoning_output_per_mtok": { "type": "number" }, "tiers": { "type": "array", "items": { "$ref": "#/components/schemas/pricingoverrides.PricingTier" } } }, "minProperties": 1 }, "pricingoverrides.PricingTier": { "type": "object", "properties": { "input_per_mtok": { "type": "number" }, "output_per_mtok": { "type": "number" }, "up_to_mtok": { "type": "number" }, "up_to_tokens": { "type": "integer", "minimum": 1 } } }, "pricingoverrides.ScopeKind": { "type": "string", "enum": [ "global", "model", "provider", "provider_model" ], "x-enum-varnames": [ "PricingScopeGlobal", "PricingScopeModel", "PricingScopeProvider", "PricingScopeProviderModel" ] }, "pricingoverrides.View": { "type": "object", "properties": { "created_at": { "type": "string" }, "model": { "type": "string" }, "pricing": { "$ref": "#/components/schemas/pricingoverrides.Pricing" }, "provider_name": { "type": "string" }, "scope_kind": { "$ref": "#/components/schemas/pricingoverrides.ScopeKind" }, "selector": { "type": "string" }, "updated_at": { "type": "string" } } }, "providers.CategoryCount": { "type": "object", "properties": { "category": { "$ref": "#/components/schemas/core.ModelCategory" }, "count": { "type": "integer" }, "display_name": { "type": "string" } } }, "providers.ModelMetadataLayers": { "type": "object", "properties": { "catalog": { "description": "Catalog is the model list (ai-model-list) entry.", "allOf": [ { "$ref": "#/components/schemas/core.ModelMetadata" } ], "nullable": true }, "config": { "description": "Config is the config.yaml metadata override.", "allOf": [ { "$ref": "#/components/schemas/core.ModelMetadata" } ], "nullable": true }, "effective": { "description": "Effective is the merged metadata, as listed by /admin/models.", "allOf": [ { "$ref": "#/components/schemas/core.ModelMetadata" } ] }, "provider": { "description": "Provider is what the provider reported in its own model listing.", "allOf": [ { "$ref": "#/components/schemas/core.ModelMetadata" } ], "nullable": true }, "selector": { "type": "string" }, "sources": { "description": "Sources names the layer that supplied each effective field\n(see modeldata.MetadataSources).", "type": "object", "additionalProperties": { "type": "string" } } } }, "server.authVerifyResponse": { "type": "object", "properties": { "key_id": { "description": "KeyID identifies the managed auth key that authenticated the request.\nAbsent for every other method.", "type": "string" }, "method": { "description": "Method is \"api_key\" for a managed key stored in the database,\n\"master_key\" for the bootstrap key, an extension-specific value for\nidentities supplied by an authentication extension, or \"none\" when the\nrequest carried no credential this gateway recognizes, which is also\nwhen Valid is false.", "type": "string" }, "user_path": { "description": "UserPath is the subtree the credential is bound to. Absent when the\ncredential is global, which every master-key caller is.", "type": "string" }, "valid": { "type": "boolean" } } }, "server.usageStatusBudget": { "type": "object", "properties": { "amount": { "type": "number" }, "exceeded": { "type": "boolean" }, "per_child": { "type": "boolean" }, "period_end": { "type": "string" }, "period_label": { "type": "string" }, "period_seconds": { "type": "integer" }, "period_start": { "type": "string" }, "remaining": { "type": "number" }, "resets_in_seconds": { "type": "integer" }, "scope": { "type": "string" }, "spent": { "type": "number" }, "subject": { "type": "string" }, "usage_ratio": { "description": "UsageRatio is spent/amount, deliberately unclamped: values above 1\nmean the budget is blown through.", "type": "number" }, "user_path": { "type": "string" } } }, "server.usageStatusRateLimit": { "type": "object", "properties": { "exhausted": { "type": "boolean" }, "in_flight": { "type": "integer" }, "max_requests": { "type": "integer" }, "max_tokens": { "type": "integer" }, "per_child": { "type": "boolean" }, "period_label": { "type": "string" }, "period_seconds": { "type": "integer" }, "requests_remaining": { "type": "integer" }, "requests_usage_ratio": { "description": "The usage ratios are used/limit per dimension, present only when that\nlimit exists and unclamped (token windows can overshoot past 1).", "type": "number" }, "requests_used": { "type": "integer" }, "resets_in_seconds": { "type": "integer" }, "subject": { "type": "string" }, "tokens_remaining": { "type": "integer" }, "tokens_usage_ratio": { "type": "number" }, "tokens_used": { "type": "integer" }, "user_path": { "type": "string" }, "window_end": { "type": "string" }, "window_start": { "type": "string" } } }, "server.usageStatusResponse": { "type": "object", "properties": { "budgets": { "type": "array", "items": { "$ref": "#/components/schemas/server.usageStatusBudget" } }, "rate_limits": { "type": "array", "items": { "$ref": "#/components/schemas/server.usageStatusRateLimit" } }, "server_time": { "type": "string" }, "usage": { "$ref": "#/components/schemas/server.usageStatusSummary" }, "user_path": { "type": "string" } } }, "server.usageStatusSummary": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_tokens": { "type": "integer" }, "end_date": { "type": "string" }, "rewrite_cost_saved": { "type": "number" }, "rewrite_tokens_saved": { "description": "Rewrite savings: prompt tokens request rewriters removed before the\nprovider call, and the estimated input cost avoided (nil when no\nmatched row had a priced savings estimate).", "type": "integer" }, "start_date": { "type": "string" }, "total_cost": { "type": "number" }, "total_input_cost": { "type": "number" }, "total_input_tokens": { "type": "integer" }, "total_output_cost": { "type": "number" }, "total_output_tokens": { "type": "integer" }, "total_requests": { "type": "integer" }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" } } }, "tagging.Rule": { "type": "object", "properties": { "delimiter": { "description": "Delimiter splits one header value into multiple labels. Default: \",\".", "type": "string" }, "do_not_pass": { "description": "DoNotPass strips the header before forwarding the request upstream.\nDefault: false (headers are passed through as-is).", "type": "boolean" }, "header": { "description": "Header is the canonical HTTP header name to read labels from.", "type": "string" }, "managed": { "description": "Managed marks a rule declared in config/env; such rules are read-only in\nthe dashboard. Never persisted.", "type": "boolean" }, "prefix": { "description": "Prefix is optionally trimmed from the front of each label. Trimming only\naffects the extracted label, never the forwarded header value.", "type": "string" } } }, "usage.CacheOverview": { "type": "object", "properties": { "daily": { "type": "array", "items": { "$ref": "#/components/schemas/usage.CacheOverviewDaily" } }, "summary": { "$ref": "#/components/schemas/usage.CacheOverviewSummary" } } }, "usage.CacheOverviewDaily": { "type": "object", "properties": { "date": { "type": "string" }, "exact_hits": { "type": "integer" }, "hits": { "type": "integer" }, "input_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" }, "saved_cost": { "type": "number" }, "semantic_hits": { "type": "integer" }, "total_tokens": { "type": "integer" } } }, "usage.CacheOverviewSummary": { "type": "object", "properties": { "exact_hits": { "type": "integer" }, "semantic_hits": { "type": "integer" }, "total_hits": { "type": "integer" }, "total_input_tokens": { "type": "integer" }, "total_output_tokens": { "type": "integer" }, "total_saved_cost": { "type": "number" }, "total_tokens": { "type": "integer" } } }, "usage.DailyUsage": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_tokens": { "type": "integer" }, "date": { "type": "string" }, "input_cost": { "type": "number" }, "input_tokens": { "type": "integer" }, "output_cost": { "type": "number" }, "output_tokens": { "type": "integer" }, "requests": { "type": "integer" }, "total_cost": { "type": "number" }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "description": "Provider prompt-cache split of the period's input, folded per row from\nraw_data (same source as the summary). Zero when the storage layer does\nnot populate them.", "type": "integer" } } }, "usage.EndpointUsage": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_cost": { "type": "number", "nullable": true }, "cached_input_tokens": { "type": "integer" }, "endpoint": { "type": "string" }, "input_cost": { "type": "number", "nullable": true }, "input_tokens": { "type": "integer" }, "local_cached_input_tokens": { "type": "integer" }, "local_cached_output_tokens": { "type": "integer" }, "operation": { "type": "string" }, "output_cost": { "type": "number", "nullable": true }, "output_tokens": { "type": "integer" }, "requests": { "type": "integer" }, "total_cost": { "type": "number", "nullable": true }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" } } }, "usage.LabelUsage": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_cost": { "type": "number", "nullable": true }, "cached_input_tokens": { "type": "integer" }, "input_cost": { "type": "number", "nullable": true }, "input_tokens": { "type": "integer" }, "label": { "type": "string" }, "local_cached_input_tokens": { "type": "integer" }, "local_cached_output_tokens": { "type": "integer" }, "output_cost": { "type": "number", "nullable": true }, "output_tokens": { "type": "integer" }, "requests": { "type": "integer" }, "total_cost": { "type": "number", "nullable": true }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" } } }, "usage.ModelUsage": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_cost": { "type": "number", "nullable": true }, "cached_input_tokens": { "type": "integer" }, "input_cost": { "type": "number" }, "input_tokens": { "type": "integer" }, "local_cached_input_tokens": { "type": "integer" }, "local_cached_output_tokens": { "type": "integer" }, "model": { "type": "string" }, "output_cost": { "type": "number" }, "output_tokens": { "type": "integer" }, "provider": { "type": "string" }, "provider_name": { "type": "string" }, "total_cost": { "type": "number" }, "uncached_input_tokens": { "type": "integer" } } }, "usage.RecalculatePricingResult": { "type": "object", "properties": { "matched": { "type": "integer" }, "recalculated": { "type": "integer" }, "status": { "type": "string" }, "with_pricing": { "type": "integer" }, "without_pricing": { "type": "integer" } } }, "usage.RequestUsageSummary": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_ratio": { "type": "number" }, "cached_input_tokens": { "type": "integer" }, "entries": { "type": "integer" }, "estimated_cached_characters": { "type": "integer" }, "input_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" }, "rewrite_cost_saved": { "type": "number" }, "rewrite_tokens_saved": { "type": "integer" }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" } } }, "usage.SessionUsage": { "type": "object", "properties": { "input_cost": { "type": "number", "nullable": true }, "input_tokens": { "type": "integer" }, "output_cost": { "type": "number", "nullable": true }, "output_tokens": { "type": "integer" }, "requests": { "type": "integer" }, "session_id": { "type": "string" }, "total_cost": { "type": "number", "nullable": true }, "total_tokens": { "type": "integer" }, "user_path": { "type": "string" } } }, "usage.SessionUsageResult": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/components/schemas/usage.SessionUsage" } }, "limit": { "type": "integer" }, "offset": { "type": "integer" }, "total": { "type": "integer" } } }, "usage.ThroughputBucket": { "type": "object", "properties": { "input_tokens": { "type": "integer" }, "locally_cached_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" }, "prompt_cached_tokens": { "type": "integer" }, "start": { "type": "string" } } }, "usage.TokenThroughput": { "type": "object", "properties": { "bucket_seconds": { "type": "integer" }, "buckets": { "type": "array", "items": { "$ref": "#/components/schemas/usage.ThroughputBucket" } }, "granularity": { "type": "string" } } }, "usage.UsageLogEntry": { "type": "object", "properties": { "auth_key_id": { "type": "string" }, "cache_type": { "type": "string" }, "cache_write_input_tokens": { "type": "integer" }, "cached_input_ratio": { "type": "number" }, "cached_input_tokens": { "type": "integer" }, "cost_source": { "type": "string" }, "costs_calculation_caveat": { "type": "string" }, "endpoint": { "type": "string" }, "id": { "type": "string" }, "input_cost": { "type": "number" }, "input_tokens": { "type": "integer" }, "labels": { "type": "array", "items": { "type": "string" } }, "model": { "type": "string" }, "output_cost": { "type": "number" }, "output_tokens": { "type": "integer" }, "provider": { "type": "string" }, "provider_id": { "type": "string" }, "provider_name": { "type": "string" }, "raw_data": { "type": "object", "additionalProperties": {} }, "request_id": { "type": "string" }, "rewrite_cost_saved": { "type": "number" }, "rewrite_tokens_saved": { "type": "integer" }, "session_id": { "type": "string" }, "timestamp": { "type": "string" }, "total_cost": { "type": "number" }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" }, "user_path": { "type": "string" } } }, "usage.UsageLogResult": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/components/schemas/usage.UsageLogEntry" } }, "limit": { "type": "integer" }, "offset": { "type": "integer" }, "total": { "type": "integer" } } }, "usage.UsageSummary": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_tokens": { "type": "integer" }, "rewrite_cost_saved": { "type": "number" }, "rewrite_tokens_saved": { "description": "Rewrite savings: prompt tokens request rewriters removed before the\nprovider call, and the estimated input cost avoided (nil when no\nmatched row had a priced savings estimate).", "type": "integer" }, "total_cost": { "type": "number" }, "total_input_cost": { "type": "number" }, "total_input_tokens": { "type": "integer" }, "total_output_cost": { "type": "number" }, "total_output_tokens": { "type": "integer" }, "total_requests": { "type": "integer" }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" } } }, "usage.UserPathUsage": { "type": "object", "properties": { "cache_write_input_tokens": { "type": "integer" }, "cached_input_cost": { "type": "number", "nullable": true }, "cached_input_tokens": { "type": "integer" }, "input_cost": { "type": "number", "nullable": true }, "input_tokens": { "type": "integer" }, "local_cached_input_tokens": { "type": "integer" }, "local_cached_output_tokens": { "type": "integer" }, "output_cost": { "type": "number", "nullable": true }, "output_tokens": { "type": "integer" }, "total_cost": { "type": "number", "nullable": true }, "total_tokens": { "type": "integer" }, "uncached_input_tokens": { "type": "integer" }, "user_path": { "type": "string" } } }, "versioncheck.Status": { "type": "object", "properties": { "app": { "type": "string" }, "checked_at": { "type": "string" }, "enabled": { "type": "boolean" }, "latest": { "type": "string" }, "update_available": { "type": "boolean" }, "version": { "type": "string" } } }, "virtualmodels.Target": { "type": "object", "properties": { "model": { "type": "string" }, "provider": { "type": "string" }, "weight": { "type": "number" } } }, "virtualmodels.View": { "type": "object", "properties": { "created_at": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "failover": { "type": "boolean" }, "kind": { "type": "string" }, "managed": { "type": "boolean" }, "model": { "type": "string" }, "provider_name": { "type": "string" }, "provider_type": { "type": "string" }, "resolved_model": { "type": "string" }, "scope_kind": { "type": "string" }, "session_affinity": { "type": "boolean" }, "slowdown": { "description": "Slowdown is an extra-time factor from 0.1 to 10; zero disables it.", "oneOf": [ { "type": "number", "enum": [ 0 ] }, { "type": "number", "minimum": 0.1, "maximum": 10 } ] }, "source": { "type": "string" }, "strategy": { "type": "string" }, "strategy_config": { "type": "object", "additionalProperties": {} }, "strategy_plugin": { "type": "string" }, "targets": { "type": "array", "items": { "$ref": "#/components/schemas/virtualmodels.Target" } }, "updated_at": { "type": "string" }, "user_paths": { "type": "array", "items": { "type": "string" } }, "valid": { "type": "boolean" } } }, "virtualmodels.VirtualModel": { "type": "object", "properties": { "created_at": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "failover": { "description": "Failover retries a failed request against the redirect's remaining\ntargets. Tri-state: nil means enabled (the default); explicit false\nserves the chosen target only. The failover strategy always fails over.", "type": "boolean" }, "managed": { "description": "Managed marks a virtual model supplied declaratively through config.yaml or\nthe VIRTUAL_MODELS env var rather than the admin store. It is an in-memory\nflag only: stores never read or write it. Managed rows override store rows\nof the same Source and are read-only to the admin API.", "type": "boolean" }, "model": { "type": "string" }, "provider_name": { "type": "string" }, "session_affinity": { "description": "SessionAffinity keeps requests of one detected session on the target that\nserved it before, while that target stays available. Tri-state: nil means\nenabled (the default); explicit false restores stateless balancing.", "type": "boolean" }, "slowdown": { "description": "Slowdown is an extra-time factor from 0.1 to 10; zero disables it. Nil\nleaves the setting unspecified so an alias can inherit its target model.", "oneOf": [ { "type": "number", "enum": [ 0 ] }, { "type": "number", "minimum": 0.1, "maximum": 10 } ] }, "source": { "type": "string" }, "strategy": { "type": "string" }, "strategy_config": { "type": "object", "additionalProperties": {} }, "strategy_plugin": { "description": "StrategyPlugin names the routing-strategy plugin consulted when Strategy\nis \"plugin\"; StrategyConfig is that plugin's per-virtual-model\nconfiguration, validated against its route-scoped fields. Both are\ncleared for every other strategy.", "type": "string" }, "targets": { "type": "array", "items": { "$ref": "#/components/schemas/virtualmodels.Target" } }, "updated_at": { "type": "string" }, "user_paths": { "type": "array", "items": { "type": "string" } } } }, "core.ResponsesInputElement": { "type": "object", "properties": { "arguments": { "type": "string" }, "call_id": { "description": "Function call fields (type=\"function_call\")", "type": "string" }, "extra_content": { "type": "object", "additionalProperties": true }, "content": { "description": "Can be string or []ContentPart", "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/core.ContentPart" } } ] }, "name": { "type": "string" }, "output": { "description": "Function call output fields (type=\"function_call_output\") - CallID shared above", "type": "string" }, "role": { "description": "Message fields (type=\"\" or \"message\")", "type": "string" }, "status": { "type": "string" }, "type": { "description": "\"message\", \"function_call\", \"function_call_output\"", "type": "string" } } }, "anthropicapi.ContentBlock": { "type": "object", "properties": { "content": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "#/components/schemas/anthropicapi.ContentBlock" } } ] }, "extra_content": { "type": "object", "additionalProperties": true }, "id": { "type": "string" }, "input": { "type": "object", "additionalProperties": true }, "is_error": { "type": "boolean" }, "name": { "type": "string" }, "source": { "oneOf": [ { "type": "string" }, { "type": "object", "additionalProperties": true } ] }, "text": { "type": "string" }, "thinking": { "type": "string" }, "signature": { "type": "string" }, "data": { "type": "string" }, "tool_use_id": { "type": "string" }, "type": { "type": "string" } } }, "anthropicapi.SSEMessageStartEvent": { "type": "object", "required": [ "message", "type" ], "properties": { "type": { "type": "string", "enum": [ "message_start" ] }, "message": { "$ref": "#/components/schemas/anthropicapi.MessagesResponse" } } }, "anthropicapi.SSEContentBlockStartEvent": { "type": "object", "required": [ "content_block", "index", "type" ], "properties": { "type": { "type": "string", "enum": [ "content_block_start" ] }, "index": { "type": "integer" }, "content_block": { "$ref": "#/components/schemas/anthropicapi.ResponseContentBlock" } } }, "anthropicapi.SSEContentBlockDeltaEvent": { "type": "object", "required": [ "delta", "index", "type" ], "properties": { "type": { "type": "string", "enum": [ "content_block_delta" ] }, "index": { "type": "integer" }, "delta": { "type": "object", "additionalProperties": true } } }, "anthropicapi.SSEContentBlockStopEvent": { "type": "object", "required": [ "index", "type" ], "properties": { "type": { "type": "string", "enum": [ "content_block_stop" ] }, "index": { "type": "integer" } } }, "anthropicapi.SSEMessageDeltaEvent": { "type": "object", "required": [ "delta", "type" ], "properties": { "type": { "type": "string", "enum": [ "message_delta" ] }, "delta": { "type": "object", "additionalProperties": true }, "usage": { "$ref": "#/components/schemas/anthropicapi.Usage" } } }, "anthropicapi.SSEMessageStopEvent": { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "message_stop" ] } } }, "anthropicapi.SSEPingEvent": { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "ping" ] } } }, "anthropicapi.SSEErrorEvent": { "type": "object", "required": [ "error", "type" ], "properties": { "type": { "type": "string", "enum": [ "error" ] }, "error": { "$ref": "#/components/schemas/anthropicapi.ErrorObject" } } }, "anthropicapi.SSEUnknownEvent": { "description": "Fallback for future Anthropic streaming event payloads.", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string" } }, "additionalProperties": true }, "anthropicapi.SSEEventFrame": { "description": "One server-sent event frame emitted by streaming /v1/messages. On the wire each frame is sent as event: and data: . Unknown event payloads are accepted for forward compatibility.", "anyOf": [ { "$ref": "#/components/schemas/anthropicapi.SSEMessageStartEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEContentBlockStartEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEContentBlockDeltaEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEContentBlockStopEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEMessageDeltaEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEMessageStopEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEPingEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEErrorEvent" }, { "$ref": "#/components/schemas/anthropicapi.SSEUnknownEvent" } ] }, "anthropicapi.ModelInfo": { "description": "One model in the Anthropic dialect, returned when the request carries anthropic-version.", "type": "object", "required": [ "created_at", "display_name", "id", "type" ], "properties": { "type": { "type": "string", "enum": [ "model" ] }, "id": { "type": "string" }, "display_name": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" } } } } } }