# One docs site's search analytics

`GET https://evohub.io/api/v1/evotrail/metrics/docs/sites/{id}/search`

Part of the [EvoTrail API](https://docs-dev.evohub.io/evotrail.md) reference · operationId `getDocsSiteSearchMetrics`.

Read through EvoTrail: one Docs site's search analytics, as the Docs console shows them. EvoTrail passes the query parameters on, asks
the product for the key's own view (its teams and scopes), and returns the
product's answer byte for byte, including its errors and status codes. A 401
from the product is turned into 403.

**Permission (API-key scope):** `evotrail:metrics:read`. The key also needs `docs:site:read`.

## Authorization

Any one of:

- `bearerAuth` (evotrail:metrics:read)
- `apiKeyHeader` (evotrail:metrics:read)

Where:

- `bearerAuth`: HTTP Bearer — An EvoHub API key (`evohub_…`) as a bearer token.
- `apiKeyHeader`: API key in the header `X-API-Key` — An EvoHub API key (`evohub_…`).

## Path parameters

- `id` (string, required, max length 200): The id named by the path: an audit event's id (a UUID) under `/audit`, a status page's or a docs or changelog site's id under `/metrics`.

## Responses

### 200 — The product's answer.

Content type: `application/json`

Type: `object`

Whatever the product answers; see its own reference.

### 401 — No API key was sent, or it is unknown, revoked or expired (`UNAUTHORIZED`).

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 403 — The key lacks `evotrail:metrics:read` or the product's permission (`FORBIDDEN`), or the product refused it.

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 404 — EvoTrail does not read this product's metrics in this environment (`PRODUCT_NOT_CONNECTED`), or the id is not valid (`NOT_FOUND`). The product's own 404 is passed through as well.

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 429 — Too many requests (`RATE_LIMITED`). Wait `Retry-After` seconds.

Headers:

- `Retry-After` (integer): Seconds to wait.

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 500 — Something went wrong on EvoHub's side (`INTERNAL_ERROR`). Retry later.

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 502 — The product did not answer (`UPSTREAM_UNAVAILABLE`, 502).

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

### 504 — The product took longer than 10 seconds (`UPSTREAM_TIMEOUT`).

Content type: `application/json`

Type: `Error`

- `error` (object, required)
  - `code` (string, required): Machine-readable code. Branch on this.
  - `message` (string, required): Human-readable explanation.
  - `request_id` (string): This request's id, also in `X-Request-ID`.
- `success` (boolean, value `false`)

## Example request

```bash
curl -X GET 'https://evohub.io/api/v1/evotrail/metrics/docs/sites/string/search' \
  -H 'Authorization: Bearer <TOKEN>'
```
