{"openapi":"3.1.0","info":{"title":"OpenRouter model endpoints, providers, image and video models, rankings (your key) API","version":"0.1.0","description":"OpenRouter model endpoints, providers, image and video models, rankings (your key) lets an AI assistant read your own OpenRouter Catalog data through the OpenRouter Catalog API with a key you supply (OpenRouter API key). Read-only: 8 tools (get_model, list_model_endpoints, list_zdr_endpoints, list_models_for_account, list_image_models, list_video_models, get_daily_rankings,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-openrouter-catalog.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openrouter-catalog/docs"},"termsOfService":"https://connectorbay.com/byok-openrouter-catalog/terms"},"servers":[{"url":"https://byok-openrouter-catalog.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openrouter-catalog/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_model":{"post":{"operationId":"get_model","summary":"Get one OpenRouter model: context length, per-token prices (USD as text), modalities, supported parameters, knowledge cu","description":"Get one OpenRouter model: context length, per-token prices (USD as text), modalities, supported parameters, knowledge cutoff and Hugging Face id. Use for \"What is the context length and price of anthropic/claude-sonnet-4.5 on OpenRouter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"author":{"description":"Model author or organization slug, for example 'anthropic'.","maxLength":200,"title":"Author","type":"string"},"slug":{"description":"Model slug, for example 'claude-sonnet-4.5'.","maxLength":200,"title":"Slug","type":"string"}},"required":["author","slug"],"title":"get_modelArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_model_endpoints":{"post":{"operationId":"list_model_endpoints","summary":"List every provider endpoint that serves one model, with price, context length, quantization, status and recent uptime. ","description":"List every provider endpoint that serves one model, with price, context length, quantization, status and recent uptime. The endpoints array is returned whole. Use for \"Which providers serve anthropic/claude-sonnet-4.5 on OpenRouter and at what uptime\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"author":{"description":"Model author or organization slug, for example 'anthropic'.","maxLength":200,"title":"Author","type":"string"},"slug":{"description":"Model slug, for example 'claude-sonnet-4.5'.","maxLength":200,"title":"Slug","type":"string"}},"required":["author","slug"],"title":"list_model_endpointsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_zdr_endpoints":{"post":{"operationId":"list_zdr_endpoints","summary":"List provider endpoints that have a zero-data-retention policy, with model, provider, price, context length and uptime. ","description":"List provider endpoints that have a zero-data-retention policy, with model, provider, price, context length and uptime. Use for \"Which OpenRouter endpoints guarantee zero data retention\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_zdr_endpointsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_models_for_account":{"post":{"operationId":"list_models_for_account","summary":"List models available to the key's account after its provider preferences and guardrails are applied, with prices and co","description":"List models available to the key's account after its provider preferences and guardrails are applied, with prices and context length. Use for \"Which OpenRouter models can my account actually use with my provider preferences\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_models_for_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_image_models":{"post":{"operationId":"list_image_models","summary":"List OpenRouter image generation models with description, input and output modalities and streaming support. Use for \"Wh","description":"List OpenRouter image generation models with description, input and output modalities and streaming support. Use for \"Which image generation models does OpenRouter offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_image_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_video_models":{"post":{"operationId":"list_video_models","summary":"List OpenRouter video generation models with supported durations, resolutions, aspect ratios and whether audio can be ge","description":"List OpenRouter video generation models with supported durations, resolutions, aspect ratios and whether audio can be generated. Use for \"Which video generation models are on OpenRouter and what durations do they support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_video_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_daily_rankings":{"post":{"operationId":"get_daily_rankings","summary":"Get public daily, weekly or monthly token usage per model across OpenRouter (the rankings dataset, from 2025-01-01). Use","description":"Get public daily, weekly or monthly token usage per model across OpenRouter (the rankings dataset, from 2025-01-01). Use for \"Which models used the most tokens on OpenRouter last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"First day, YYYY-MM-DD (UTC). Defaults to 30 days before end_date; the dataset starts at 2025-01-01.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Last day, YYYY-MM-DD (UTC). Defaults to the latest completed day.","title":"End Date"},"period":{"anyOf":[{"enum":["day","week","month"],"type":"string"},{"type":"null"}],"default":"day","description":"Row grain: day, week or month.","title":"Period"},"modality":{"anyOf":[{"enum":["text","image","image_output","audio","tool_calling"],"type":"string"},{"type":"null"}],"default":null,"description":"Only models of this modality surface.","title":"Modality"},"category":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Use-case category such as programming, roleplay, marketing, technology, science, translation, legal, finance, health, trivia or academia (token counts are estimates).","title":"Category"}},"title":"get_daily_rankingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_task_classifications":{"post":{"operationId":"get_task_classifications","summary":"Get the share of OpenRouter usage by task category over the trailing 7 days, with the models used per category. Use for ","description":"Get the share of OpenRouter usage by task category over the trailing 7 days, with the models used per category. Use for \"What kinds of tasks are people using OpenRouter models for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"window":{"anyOf":[{"const":"7d","type":"string"},{"type":"null"}],"default":"7d","description":"Trailing window; only 7d is supported.","title":"Window"}},"title":"get_task_classificationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}