---
title: "Search"
method: GET
path: "/v1/search"
tags: ["search"]
---

# Search

`GET /v1/search`

Find leads, accounts, sequence templates and tasks by name in one call.

Each match carries a typed id `GET /v1/fetch` turns back into the full
record, so a name is enough to reach any of them without knowing which
endpoint owns it. Kinds the key may not read are dropped from the search
rather than rejected, so a contacts-only key searching everything still
gets its leads.

## Query parameters

- `query` string, required — Text to match against the name of workspace records.
- `types` string[], nullable — Restrict the search to these kinds of record. Omit to search all of them.

## Response `200`

Successful Response

- SearchOutput
  - `items` SearchResultOutput[], required — Best matches per kind of record, capped per kind.
    - `id` string, required — Typed id of the match, in the form `<type>:<uuid>`. Pass it to `GET /v1/fetch`.
    - `type` 'lead' | 'account' | 'sequence_template' | 'task', required — Kind of record matched.
    - `title` string, required — Display name of the record.
    - `subtitle` string, nullable — Secondary line describing the record, when there is one.
    - `url` string, nullable — Deep link to the record in the Topo app, when it has a page.

---

[API](https://skmtc.net/topo/apis/topo-public-api.md) · [All operations](https://skmtc.net/topo/apis/topo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/topo/topo-public-api/revisions/ad6ac1d13526/schema)
