---
path: /v1/reference/browse
title: Browse the corpus
summary: Browse and search the corpus of audited sites via /api/public/browse/*.
group: Reference
updated: 2026-06-22
---

# Browse the corpus

The browse API exposes the corpus of sites AgentFit has audited. It has four read-only
sub-resources under `https://agentfit.dev/api/public/browse`:

| Endpoint | Returns |
|---|---|
| `GET /api/public/browse/summary` | Corpus summary across all audited sites (ETag-cached). |
| `GET /api/public/browse/top` | Top sites by score in a time window. |
| `GET /api/public/browse/search` | Search audited sites by hostname substring. |
| `GET /api/public/browse/stats` | Aggregate corpus statistics. |

Each site is a `SiteSummary` object: `base_url`, `canonical_url`, `run_count`,
`latest_run_at`, `first_run_at`, `best_score`, `worst_score`, and `avg_score`.

## Search

`GET https://agentfit.dev/api/public/browse/search`

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `q` | query | string | yes | Hostname substring to search for. |

### curl

```bash
curl -s 'https://agentfit.dev/api/public/browse/search?q=stripe' | jq '.hits[0]'
```

### Python

```python
import requests

resp = requests.get("https://agentfit.dev/api/public/browse/search", params={"q": "stripe"}, timeout=10)
for site in resp.json()["hits"]:
    print(site["canonical_url"], site["best_score"])
```

### JavaScript

```javascript
const resp = await fetch("https://agentfit.dev/api/public/browse/search?q=stripe");
const { hits } = await resp.json();
hits.forEach((s) => console.log(s.canonical_url, s.best_score));
```

## Response

```json
{
  "query": "stripe",
  "hits": [
    {
      "base_url": "docs.stripe.com",
      "canonical_url": "https://docs.stripe.com",
      "run_count": 4,
      "latest_run_at": "2026-06-22T10:02:11Z",
      "first_run_at": "2026-03-01T09:00:00Z",
      "best_score": 71,
      "worst_score": 63,
      "avg_score": 67
    }
  ]
}
```

The `summary` endpoint supports `If-None-Match` and returns `304 Not Modified` when the
corpus is unchanged.
