---
title: "Search the Trooth Network"
method: GET
path: "/api/mobile/directory/search"
---

# Search the Trooth Network

`GET /api/mobile/directory/search`

## Request

- Base URL: `https://trooth.co`
- URL: `https://trooth.co/api/mobile/directory/search`
- Auth: none required

Full-text search over published company listings. Returns the same companies the public directory shows. Prefer cursor pagination: pass the returned next_cursor back as cursor. Offset pagination still works and is kept for clients that already ship with it, but it is deprecated: it counts rows rather than naming a position, so a directory that grows between two requests can serve the same company twice and skip another without erroring. A response to an offset-paged request carries a Deprecation header and a Link header with rel="deprecation"; no withdrawal date is set, so no Sunset header is sent. A cursor that cannot be read returns 400 rather than an empty page. Cached at the edge for 60 seconds with a 300 second stale-while-revalidate window. BEST-EFFORT, MUTABLE ENUMERATION: there is no snapshot. Every page reads the live directory, and the cursor names a position in the sort order, not a point in time; it is not bound to a snapshot, an as-of time or an expiry. A company whose witnessed state changes between two pages can be missed or returned twice, so a walk is not a consistent full export. Drop repeats by slug and walk again to reconcile. The fact pages of /api/network/profile are a different mechanism: their cursor is bound to one record version. Readable cross-origin: the response carries Access-Control-Allow-Origin: * and never Access-Control-Allow-Credentials, so a browser on any site may read it without cookies.

## Query parameters

- `q` string
- `industry` string
- `limit` integer
- `cursor` string
- `offset` integer

## Response `200`

A page of results.

- DirectorySearch
  - `results` DirectorySummary[], required
    - `slug` string, required
    - `name` string, required
    - `standing` 'Witnessed' | 'Self-published', required
    - `industry` string
    - `country_code` string
    - `tagline` string
    - `last_scan` string: The date of the last witnessed reading, when there is one.
  - `total` integer, required
  - `next_offset` integer, nullable, required
  - `next_cursor` string, nullable, required
  - `error` string

## Other responses

- `400`: A cursor that cannot be read.
- `503`: The directory could not be read. Not a statement about any company.

---

[API](https://skmtc.dev/trooth/apis/trooth-public-api.md) · [All operations](https://skmtc.dev/trooth/apis/trooth-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trooth/apis/trooth-public-api/revisions/e4d4e92641d9?raw)
