Ranked full-text catalog search, with capability expansion and a stemmed-token fallback so a long natural-language query is never empty
The same search core answers MCP search (10 title rows by default) and MCP search_catalog (50 full rows by default, like this route). A title row is a subset of this route's row: endpointId, provider, name, capability, category, estimatedPrice, priceBasis, access, executionMode, costPerSuccessUsd (facts.costPerSuccessUsd), async (facts.async), works, sourceCapability and credential, in the same order for the same q, limit and offset for a customer token. A platform operator token differs: this route always includes unavailable rows, while MCP honors an explicit filters.includeUnavailable false.
Request
- Base URL: https://api.looot.ai
- URL: https://api.looot.ai/v1/catalog/search
- Auth: HTTP bearer
Query parameters
Where the page starts in the ranked list; pass the previous page's nextOffset (null on the last page).
true/false excludes the other kind; omitted keeps both but real providers still rank above mocks
How providers are ordered inside a job: balanced (default), cheapest, reliable or fastest. Any other value is a 400 validation_error. Every item's facts carry it and the body echoes it; it changes the order only once the gateway serves the shared ranking.
Response
Ranked catalog items (each carrying mock, verified, keyless, runnableNow, stats, access, matchedBy, facts, works, credential and sourceCapability; capability is the resolved job id), same shape as the listing, plus the prefer value used. An empty page may carry warnings (no_supply_for_job) or priceHint (price_above_max: maxPriceMicros removed every endpoint that does the named job; it names the cheapest)
Changes
No recorded changes to this operation across all 1 revision of this API.