---
title: "Search the integrations.sh catalog"
method: GET
path: "/api/search"
tags: ["detect"]
---

# Search the integrations.sh catalog

`GET /api/search`

Search the integrations.sh catalog for domains that expose agent-ready integration surfaces. Use `q` for the user's search text, optionally narrow to one surface kind, and tune `limit` when building typeahead or command discovery. Results are domain-level and sorted with the same ranking as the homepage: curated developer tools first, then popularity, then total cataloged surfaces.

## Query parameters

- `q` string, required — Required search text. Matches catalog domains, descriptions, and available surface kinds.
- `kind` 'mcp' | 'openapi' | 'graphql' | 'cli', nullable — Limit results to domains that expose this kind of integration surface.
- `limit` integer — Maximum number of results to return. Defaults to 20 and cannot exceed 100.
- `offset` string, nullable

## Response `200`

Success

- object
  - `results` object[], required
    - `domain` string, required — Registrable domain for the catalog entry.
    - `name` string, required — Display name for the result. Domain-level catalog results use the domain name.
    - `description` string, required — Short catalog description for the service or its integration surface.
    - `kinds` string[], required — Integration kinds currently cataloged for this domain, in canonical display order.
    - `url` string, required — Canonical integrations.sh page for this domain.
    - `surfaces` object[], nullable — Per-kind connect targets, so a client can connect (and recognise what it has already connected) without a second request for the domain's surface document.
      - `kind` 'mcp' | 'openapi' | 'graphql' | 'cli', required — The kind of integration surface.
      - `slug` string, required — Stable registry identifier for this surface. Record it to recognise later that you already added this integration — the domain is not that identifier, since a vendor's surfaces can live on other hosts (GitHub's MCP server is on api.githubcopilot.com).
      - `url` string, nullable — What to point at to connect this surface: the MCP endpoint, the OpenAPI spec URL, or the GraphQL endpoint. Absent when the registry has no machine-readable locator on record.
      - `icon` string, nullable — A hand-picked product mark for this surface (e.g. Google Calendar's own logo), when it represents the product better than the domain favicon.
      - `auth` object, nullable — How to authenticate this surface, for kinds whose connect target cannot describe it itself (GraphQL endpoints have no spec document).
        - `kind` string, nullable — Credential kind: api_key, oauth, …
        - `header` string, nullable — Header pattern for the credential, e.g. "Authorization: Bearer {token}" — or "Authorization: {api_key}" for APIs like Linear whose keys take no Bearer prefix.
        - `note` string, nullable — One-line human note about the credential.

---

[API](https://skmtc.dev/integrations/apis/integrations-sh.md) · [All operations](https://skmtc.dev/integrations/apis/integrations-sh/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/integrations/integrations-sh/revisions/1c66e9265db5/schema)
