{"openapi":"3.0.3","info":{"title":"AI Model Router API","version":"1.2.0","description":"Deterministic routing between GPT-4, Claude, and Gemini models based on task type, token cost, and quality tier. No external API calls — pure routing logic you can call client-side.","contact":{"url":"https://api.lazy-mac.com/ai-model-router"}},"servers":[{"url":"https://api.lazy-mac.com/ai-model-router"}],"paths":{"/health":{"get":{"summary":"Service health check","operationId":"healthCheck","responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"},"ts":{"type":"string","format":"date-time"}}}}}}}}},"/route":{"get":{"summary":"Select optimal model for a task","operationId":"routeModel","description":"Returns the recommended AI model based on task type, cost threshold, and provider preferences. Deterministic — no external calls.","parameters":[{"name":"prompt","in":"query","description":"The prompt or task description (used for auto-classification)","schema":{"type":"string"}},{"name":"task_type","in":"query","description":"Explicit task type override","schema":{"type":"string","enum":["code","analysis","creative","summarize","classify","reason","vision","chat","general"]}},{"name":"max_cost_usd","in":"query","description":"Maximum cost budget in USD (e.g. 0.01)","schema":{"type":"number"}},{"name":"prefer_provider","in":"query","description":"Preferred provider","schema":{"type":"string","enum":["openai","anthropic","google"]}},{"name":"prefer_tier","in":"query","description":"Preferred quality tier","schema":{"type":"string","enum":["economy","standard","premium"]}},{"name":"input_tokens","in":"query","description":"Known input token count (overrides prompt-based estimate)","schema":{"type":"integer"}},{"name":"output_tokens","in":"query","description":"Expected output token count","schema":{"type":"integer"}}],"responses":{"200":{"description":"Routing decision with cost estimate and alternatives","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteResult"}}}},"400":{"description":"Invalid parameters"}}}},"/compare":{"get":{"summary":"Compare cost and fit across all models","operationId":"compareModels","description":"Returns cost breakdown and task-fit scores for all supported models. Useful for cost planning.","parameters":[{"name":"prompt","in":"query","description":"Task prompt for classification","schema":{"type":"string"}},{"name":"task_type","in":"query","description":"Explicit task type","schema":{"type":"string","enum":["code","analysis","creative","summarize","classify","reason","vision","chat","general"]}},{"name":"input_tokens","in":"query","description":"Input token count","schema":{"type":"integer"}},{"name":"output_tokens","in":"query","description":"Output token count","schema":{"type":"integer"}}],"responses":{"200":{"description":"Comparison table across all models","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareResult"}}}}}}},"/models":{"get":{"summary":"List all supported models with pricing","operationId":"listModels","responses":{"200":{"description":"Model catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelCatalog"}}}}}}},"/mcp":{"get":{"summary":"MCP endpoint info (browser-friendly)","operationId":"mcpInfo","responses":{"200":{"description":"MCP server info and usage"}}},"post":{"summary":"MCP endpoint (JSON-RPC 2.0)","operationId":"mcpEndpoint","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","example":"2.0"},"method":{"type":"string","example":"tools/call"},"id":{"type":"integer"},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON-RPC 2.0 response"}}}}},"components":{"schemas":{"RouteResult":{"type":"object","properties":{"selected_model":{"type":"string"},"provider":{"type":"string"},"tier":{"type":"string"},"task_classification":{"type":"string"},"task_confidence":{"type":"number"},"estimated_input_tokens":{"type":"integer"},"estimated_output_tokens":{"type":"integer"},"estimated_cost_usd":{"type":"number"},"reasoning":{"type":"string"},"alternatives":{"type":"array","items":{"type":"object"}}}},"CompareResult":{"type":"object","properties":{"task_classification":{"type":"string"},"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"models":{"type":"array","items":{"type":"object"}}}},"ModelCatalog":{"type":"object","properties":{"count":{"type":"integer"},"models":{"type":"object"}}}}}}