{"openapi":"3.1.0","info":{"title":"LLM Prices API","description":"Query LLM model pricing, context windows, and capabilities. Data sourced from litellm.","version":"1.0.0"},"servers":[{"url":"https://llm-prices.llm-prices.workers.dev"}],"paths":{"/api/models":{"get":{"operationId":"listModels","summary":"List and filter LLM models with pricing info","parameters":[{"name":"provider","in":"query","schema":{"type":"string"},"description":"Filter by provider (e.g. openai, anthropic, bedrock)"},{"name":"mode","in":"query","schema":{"type":"string"},"description":"Filter by mode (chat, embedding, completion, image_generation, etc.)"},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search model name or provider"},{"name":"sort","in":"query","schema":{"type":"string"},"description":"Sort by field (e.g. input_cost_per_token, max_input_tokens)"},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]},"description":"Sort order (default: desc)"},{"name":"limit","in":"query","schema":{"type":"integer","default":100},"description":"Max results to return"},{"name":"offset","in":"query","schema":{"type":"integer","default":0},"description":"Offset for pagination"},{"name":"supports","in":"query","schema":{"type":"string"},"description":"Comma-separated capability filters (e.g. vision,function_calling,reasoning)"},{"name":"max_input_cost","in":"query","schema":{"type":"number"},"description":"Max input cost per token"},{"name":"min_context","in":"query","schema":{"type":"integer"},"description":"Minimum context window size (tokens)"}],"responses":{"200":{"description":"Filtered list of models","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"offset":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Model"}}}}}}}}}},"/api/providers":{"get":{"operationId":"listProviders","summary":"List all available providers","responses":{"200":{"description":"List of provider names","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"type":"string"}}}}}}}}}},"/api/modes":{"get":{"operationId":"listModes","summary":"List all available model modes","responses":{"200":{"description":"List of mode names"}}}},"/api/meta":{"get":{"operationId":"getMeta","summary":"Get metadata about the cached data","responses":{"200":{"description":"Cache metadata including last update time"}}}},"/api/inspect-costs":{"get":{"operationId":"getInspectModelCosts","summary":"Export Inspect-compatible model cost data as JSON or YAML","parameters":[{"name":"model","in":"query","schema":{"type":"string"},"description":"Inspect model name. Repeat the parameter to request multiple models."},{"name":"models","in":"query","schema":{"type":"string"},"description":"Comma-separated Inspect model names. Alternative to repeated model parameters."},{"name":"format","in":"query","schema":{"type":"string","enum":["json","yaml"],"default":"json"},"description":"Export format. YAML output is suitable for --model-cost-config."}],"responses":{"200":{"description":"Inspect-compatible model cost configuration"},"400":{"description":"Invalid request or unresolved model names"}}}}},"components":{"schemas":{"Model":{"type":"object","properties":{"key":{"type":"string","description":"Model identifier"},"litellm_provider":{"type":"string"},"mode":{"type":"string"},"max_tokens":{"type":"integer"},"max_input_tokens":{"type":"integer"},"max_output_tokens":{"type":"integer"},"input_cost_per_token":{"type":"number"},"output_cost_per_token":{"type":"number"},"supports_function_calling":{"type":"boolean"},"supports_vision":{"type":"boolean"},"supports_reasoning":{"type":"boolean"},"supports_prompt_caching":{"type":"boolean"}}}}}}