Dataset contract
The product is structured data. The site is the distribution channel. Everything below is served as immutable static JSON at https://errors.standardbeagle.com/data/… — CORS-enabled, so browsers and third-party tools can fetch it directly.
Search API
A thin edge function wraps the same tiered matching the MCP server uses (exact code → derived pattern → fuzzy). All responses are JSON with Access-Control-Allow-Origin: *.
| Endpoint | Purpose |
|---|---|
GET /api/search?q=<message> | Scored matches for a raw error message. Optional repo=owner/name, limit (max 25). |
GET /api/errors/{id} | Full ErrorEntry record by id. |
GET /api/repos | Analyzed repositories with error counts. |
GET /api/tags | Background error families with record and repo counts, and the article covering each. ?uncovered=1 returns only the families with no article yet, largest first; ?minErrors=n and ?limit=n narrow the list. |
curl "https://errors.standardbeagle.com/api/search?q=Request+failed+with+status+code+404"
Prefer bulk or offline consumption? Skip the API — download the dataset files below and query locally; that is exactly what the MCP server does.
Files
| Path | Purpose |
|---|---|
/data/manifest.json | Freshness poll target. Tiny. MCP checks this first. |
/data/index.json.gz | Compact search index (gzip) — one record per error, all repos. |
/data/repos.json | RepoEntry[] — the list of analyzed repos. |
/data/repos/{owner}/{name}.json | Full ErrorEntry[] for one repo. |
Current dataset
{
"schemaVersion": 2,
"datasetVersion": "2026-09-15T18:17:12.389Z",
"counts": {
"repos": 1915,
"errors": 428202,
"infoPages": 184,
"sitePublishedRepos": 1677
},
"files": {
"index": {
"path": "/data/index.json.gz",
"bytes": 25364899,
"sha256": "121718b66a9e4de29b7e2c6cd4af5afd14928c4a4255dc64516b295aaefc2855",
"encoding": "gzip",
"rawBytes": 146615803,
"rawSha256": "f23b09abb736727f61da5d100529f67d7bcd24f9f1786ad02b43e54e6f0df755"
},
"repos": {
"path": "/data/repos.json",
"bytes": 718045,
"sha256": "328c0b7c17843b6dde28f247b670a8ba5331efc01f201bb94cf40d996269a4c2"
},
"published": {
"path": "/data/published.json",
"bytes": 35842,
"sha256": "7bf5fc76701c7dd468f8bf2f2bc3670449f45b19fab454773b91a70edb139107"
},
"tags": {
"path": "/data/tags.json",
"bytes": 4566922,
"sha256": "f62751a5a6db143dd851735851c9e8c1dcae7798bed834517fc858be1373225a"
},
"searchSummary": {
"path": "/data/search/summary.json",
"bytes": 73,
"sha256": "388a107ecb4a14d5b1befc499ea3f3d1972acd218db7fe5e0e91e976bb59c2bf"
}
}
} Schema
JSON Schema (Draft-07): /schema.json. TypeScript types: @errlookup/schema. Every record validates on write, on read (build), and on download (MCP). Fail fast; never silently coerce.
Cache headers
/data/manifest.json Cache-Control: public, max-age=300 /data/* Cache-Control: public, max-age=86400, stale-while-revalidate=604800