Skip to content
  • Models
  • Rankings
  • Ori
Sign Up
Sign Up
OpenRouterOpenRouter
© 2026 OpenRouter, Inc

Product

  • Chat
  • Rankings
  • Benchmarks
  • Apps
  • Discover
  • Models
  • Collections
  • Providers
  • Tools
  • Pricing
  • Business
  • Enterprise
  • Labs

Company

  • About
  • Blog
  • Careers
    Hiring
  • Privacy
  • Terms of Service
  • Trust Center
  • Support
  • Works With OR
  • Data
  • Brand

Developer

  • Documentation
  • API Reference
  • Developer Platform
  • Status

Connect

  • Discord
  • GitHub
  • LinkedIn
  • X
  • YouTube
All server tools

Tool search

openrouter:tool_search

Docs

Keeps large tool libraries out of the prompt. Mark your own tools defer_loading and the model searches for the ones it needs, so hundreds of definitions stop costing input tokens on every turn and tool selection stays accurate.

Docs
How it worksProviders and pricingUsing this toolRelated tools

How it works

For large tool libraries: roughly more than 10 tools or 10k tokens of definitions. Below that, standard tool calling is simpler.

  1. 1

    Your app marks function tools defer_loading, so they stay out of the prompt.

  2. 2

    Your model searches the deferred tools with a pattern when it needs one.

  3. 3

    OpenRouter reveals the best matches by name, description, and arguments.

  4. 4

    Your app handles calls to revealed tools like any other function call.

Providers and pricing

  • Favicon for https://openrouter.ai

    OpenRouter

    Free

    Runs in-process on OpenRouter during the request.

Standard model token costs apply to every request.

Using this tool

Mark your own function tools defer_loading. OpenRouter runs the search server-side and reveals matching tools to the model, and your application handles the revealed function calls as it would any other.

Available through the API. Only affects requests that mark other tools defer_loading, which the chatroom does not do.

Supported APIs: Responses and Anthropic Messages.

shell
curl https://openrouter.ai/api/v1/responses \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "openai/gpt-5.2",
  "tools": [
    {
      "type": "openrouter:tool_search"
    },
    {
      "type": "function",
      "name": "book_restaurant",
      "description": "Reserve a restaurant table for a party at a given date and time.",
      "parameters": {
        "type": "object",
        "properties": {
          "party_size": {
            "type": "integer",
            "description": "Number of guests."
          },
          "datetime": {
            "type": "string",
            "description": "Reservation time as an ISO 8601 timestamp."
          }
        },
        "required": [
          "party_size",
          "datetime"
        ]
      },
      "defer_loading": true
    },
    {
      "type": "function",
      "name": "create_calendar_event",
      "description": "Add an event to the user’s calendar.",
      "parameters": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Event title."
          },
          "start": {
            "type": "string",
            "description": "Start time as an ISO 8601 timestamp."
          }
        },
        "required": [
          "title",
          "start"
        ]
      },
      "defer_loading": true
    }
  ],
  "input": "Book me a table for four tomorrow night and add it to my calendar."
}'

Setup, parameters, and examples in the docs.

Read the integration guide

Related tools

Utilities

  • Datetime

    Give any model the current date and time, in UTC or a configured timezone

    Utilities