September 30, 2026
AI agents can look up tool prices themselves: OpenRouter serves a catalog via /tools
OpenRouter added an API for its server-side tool catalog: agents get pricing and model compatibility directly in the response.

OpenRouter
@openrouter
New API: /tools Let agents retrieve data from the Server Tools Marketplace, including the best prices on the market, and use it programmatically


· 3.4K views
Tool pricing and compatibility can now be retrieved with a request instead of manually browsing the reference. As of Sep 30, 2026, /tools returns valid tools[].type values for different APIs, engines with pricing, and the number of endpoints with native support for each tool.
How to get the catalog. Send GET https://openrouter.ai/api/v1/tools with the Authorization: Bearer <OPENROUTER_API_KEY> header. The OpenRouter reference includes ready-to-use examples for curl, Python, and JavaScript. The api_format parameter filters the catalog by API format:
- responses; - chat-completions; - anthropic-messages.
Without offset and limit, the server returns the full list. For paginated requests, the maximum limit is 100 tools. A GET /api/v1/tools/{name} request returns a single tool and models with native support for it, accepting either its canonical name or a supported alias.
How to enable search. Web Search finds information for the model, such as the latest library documentation. Add {"type":"openrouter:web_search"} to tools in the request: OpenRouter runs the search and returns the result to the model without a client-side tool loop, meaning no separate cycle of tool calls in your app. The tool works with Chat Completions, Responses, and Anthropic Messages.
Web Search pricing as of Sep 30, 2026:
| Engine | Price per request | | --- | --- | | Exa | $0.007 | | Parallel | $0.005 | | Perplexity Search | $0.005 |
Model tokens are billed separately. By default, engine: auto selects the provider's native search if available, otherwise Exa. Set a specific engine through tools[].parameters.engine.
For Server Tools, max_tool_calls defaults to 30 and has a maximum of 30, while stop_server_tools_when overrides it with stopping conditions, including a spending limit.
