Skip to main content
Capability routing lets you ask for an outcome instead of selecting a provider. The system-managed router and locus-travel providers plan eligible calls, use the same billing and refund path as direct calls, and return normalized results with durable receipts.

Choose an endpoint

All three endpoints are variable-cost. You pay the exact sum of successful underlying provider calls. A failed provider call follows the normal refund path, and an idempotent replay creates no new charge.

Configure the eligible pool

In an enterprise workspace with capability routing available, open Agent tools, then Multi-Provider Web Search, to choose the default mode, maximum results, balanced-mode provider limit, image behavior, and provider allowlist. The allowlist is a hard boundary. A provider must also have a configured, enabled catalog access path before the router can use it. In a personal account where routing is available, the router appears enabled and system-managed. You cannot toggle it or manage the enterprise provider pool and settings APIs. Tenant secret keys can read the same configuration with GET /api/credits/router/settings, change it with PUT /api/credits/router/settings, enable an eligible provider with POST /api/credits/router/providers/{providerId}/enable, and preview the saved plan with POST /api/credits/router/preview. Reads require tenant:read; changes require catalog:write.

Preview without calling providers

The execution routes also expose a free preview at the same path plus /preview:
Preview returns the planned distinct providers and the current tenant-aware estimate. It makes no provider calls and burns no credits. Provider selection can change between preview and execution as availability and price change; use maxCredits as the execution-time hard boundary.
The request accepts these controls: If the tenant-aware estimate exceeds maxCredits, Locus rejects the plan before dispatch and charges nothing.

Read the result and receipt

router/web-search returns normalized results, optional images, each provider’s outcome, and aggregate billing:
partial: true means at least one planned provider failed while others produced a useful result. Treat the returned evidence and billing.chargedCredits as authoritative; do not reconstruct the charge from a preview. Agents can discover all three routes through search_apis, the server SDK’s searchTools(), or the catalog. The ordinary Agent Connection tool allowlist and per-call/per-loop limits still apply.

Compare flights with Locus Travel

Enable locus-travel/flight-search, then preview the current plan without calling providers:
Execute the same body at POST /api/wrapped/credits/locus-travel/flight-search with an idempotency key. origin, destination, and departureDate are required. Optional controls cover return date, passengers, cabin, currency, optimization, airline and airport preferences, stops, schedule, price, result count, provider count, and maxCredits. A 202 response means the search is still running: retry the same request with the same Idempotency-Key to collect the result — do not abandon the flight or start a new key. The result includes normalized itineraries, provider outcomes, warnings, provenance, confidence, bookability, exact billing, partial, and a durable runId. A partial result can still be useful; inspect its warnings and provider outcomes. Submit feedback to the feedback route returned with the result. It keeps the route paired with the correct runId.