> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omneo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Discovery search

> Query the Omneo Discovery search host directly from your application using short-lived search tokens.

Searching with [Omneo Discovery](/concepts/platform-surfaces/omneo-discovery) is a two-step flow:

<Steps>
  <Step title="Mint a search token">
    Your backend calls the Omneo API with your Omneo API token and receives a short-lived search token scoped to the indexes you asked for.
  </Step>

  <Step title="Query the Discovery host">
    Your application sends the search request straight to the Discovery host, using the search token as a bearer token.
  </Step>
</Steps>

Search traffic goes directly from the client to Discovery. It does not pass through the Omneo API, which is what keeps typeahead interfaces fast.

## Base URLs

| Purpose                              | URL                                       |
| ------------------------------------ | ----------------------------------------- |
| Omneo API, for minting search tokens | `https://api.[tenant].getomneo.com`       |
| Discovery, for running searches      | `https://discovery.[tenant].getomneo.com` |

All requests are HTTPS only. The Discovery host serves search requests and a health check. Everything else, including any change to what an index contains, goes through the Omneo API.

<Warning>
  Your Omneo API token is a long-lived credential. Mint search tokens on a server you control and hand only the search token to a browser or mobile app. See [Minting search tokens](/dev-guides/discovery/search-tokens).
</Warning>

## Quick example

Mint a token:

```bash theme={null}
curl -X POST "https://api.[tenant].getomneo.com/api/v3/auth/discovery" \
  -H "Authorization: Bearer ${OMNEO_API_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"rules": {"profiles": {}}}'
```

Search with it:

```bash theme={null}
curl -X POST "https://discovery.[tenant].getomneo.com/indexes/profiles/search" \
  -H "Authorization: Bearer ${SEARCH_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"q": "jordan", "limit": 10}'
```

## Health check

`GET https://discovery.[tenant].getomneo.com/health` needs no authentication and returns a status body. Use it for connectivity checks and uptime monitoring.

```bash theme={null}
curl "https://discovery.[tenant].getomneo.com/health"
```

## Getting Discovery enabled

Discovery is provisioned per tenant and is not available by default. Contact your Omneo account manager to have it deployed, to have your indexes populated, and to request a custom attribute mapping if the default fields do not cover your use case.

## Next steps

<Columns cols={2}>
  <Card title="Minting search tokens" href="/dev-guides/discovery/search-tokens">
    Get a token, scope it to an index, and cache it safely.
  </Card>

  <Card title="Running a search" href="/dev-guides/discovery/searching">
    Query parameters, filter syntax, pagination, and facets.
  </Card>

  <Card title="Discovery indexes" href="/dev-guides/discovery/indexes">
    The standard `profiles` and `products` indexes and their attributes.
  </Card>

  <Card title="Schools index" href="/dev-guides/discovery/schools-index">
    Search the optional schools reference dataset.
  </Card>
</Columns>
