---
title: "Search the API catalog"
method: GET
path: "/catalog/search"
---

# Search the API catalog

`GET /catalog/search`

Find an API by what you need rather than by its slug. Results are ranked, and `ranking` names the ranker that served them. A request must name `q`, `category`, or `platform`: a scope on its own is a complete question ("everything this platform can do"), while a request naming none of the three has nothing to answer and is rejected. Searching is free and needs no key. Feed a result's `slug` to GET /v1/apis/{sku} for its input schema before your first run.

## Query parameters

- `q` string
- `category` string
- `platform` string
- `limit` integer

## Response `200`

Ranked matches.

- object
  - `ranking` 'keyword' | 'semantic', required — Which ranker served this response.
  - `results` CatalogSearchResult[], required
    - `category` string, required — The API's category, accepted back as the `category` scope.
    - `description` string, required — One-line summary of what this API returns.
    - `excludesCallerDelay` boolean — Present when this API accepts a caller-requested wait that the published latency excludes.
    - `execution` DiscoveryExecution, required
      - `mode` 'sync' | 'durable', required — sync answers on the run request; durable accepts the run as a Request you poll at GET /v1/requests/{id}.
    - `failover` boolean, required — True when more than one source can serve this API.
    - `highlightFields` DiscoveryHighlightField[] — Output fields of this API that matched the query, with each field's own schema description as `why`. Computed for the top few results only, so an absent array means no highlights were produced rather than no matching field.
      - `path` string, required — JSON path of the output field inside this API's outputSchema.
      - `type` string, required — JSON type of that field.
      - `why` string — The field's own schema description. Absent when the schema gives none.
    - `method` string, required — HTTP method for this API's concrete operation.
    - `name` string, required — Display name.
    - `path` string, required — Concrete gateway path for this API.
    - `platformId` string, required — The API's platform, accepted back as the `platform` scope.
    - `pricing` DiscoveryPricing, required
      - `failoverMaxPer1kUsd` number, required — failoverMaxUsd in the per-1,000-request denomination.
      - `failoverMaxUsd` number, required — The greatest customer-price maximum across those same sources, in USD.
      - `from` DiscoveryOffer, required
        - `baseUsd` number — Linear offers only: USD charged for the call before per-unit billing.
        - `maxPer1kUsd` number, required — The same maximum in the per-1,000-request denomination AnyAPI quotes customers in. It is published rather than left to the client, so display this figure instead of scaling a price yourself.
        - `maxUsd` number, required — The most one request on this offer can be billed, in USD.
        - `model` 'flat' | 'linear', required — Pricing model. A flat offer is one price per request; a linear offer also carries baseUsd and perUnitUsd.
        - `perUnitUsd` number — Linear offers only: USD charged for each billable unit inside the call.
        - `unit` string, required — The billable unit. A flat offer always publishes "request".
    - `provider` 'AnyAPI', required — Always "AnyAPI".
    - `relevance` number, required — How well this API matched, relative to the others in this response.
    - `slug` string, required — The API's slug. Feed it to GET /v1/apis/{sku} for the input schema.
    - `tryMaxItems` integer — The most items the free try returns, when this API is try-eligible.
  - `total` integer, required — Matches found before `limit` was applied.

## Other responses

- `400` — The request named neither a query nor a scope.

## Changes

- **2026-09-03** `5048c1861d8d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/getanyapi-com/apis/anyapi/changes/catalog/search/get.md)

---

[API](https://skmtc.dev/getanyapi-com/apis/anyapi.md) · [All operations](https://skmtc.dev/getanyapi-com/apis/anyapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getanyapi-com/anyapi/revisions/5048c1861d8d/schema)
