AgentFit docs agentfit.dev ↗

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

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

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

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

{
  "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.