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: *.

EndpointPurpose
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/reposAnalyzed repositories with error counts.
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

PathPurpose
/data/manifest.jsonFreshness poll target. Tiny. MCP checks this first.
/data/index.jsonCompact search index — one record per error, all repos.
/data/repos.jsonRepoEntry[] — the list of analyzed repos.
/data/repos/{owner}/{name}.jsonFull ErrorEntry[] for one repo.
/data/errors/{id}.jsonA single full ErrorEntry record.

Current dataset

{
  "schemaVersion": 2,
  "datasetVersion": "2026-08-01T17:26:29.575Z",
  "counts": {
    "repos": 10,
    "errors": 1664
  },
  "files": {
    "index": {
      "path": "/data/index.json",
      "bytes": 533555,
      "sha256": "95585d0777cb654e1919a03ddef9eb70846eee4e81468b9ac6b98531002564b3"
    },
    "repos": {
      "path": "/data/repos.json",
      "bytes": 2633,
      "sha256": "ef489973e22edf3a5e607a8ee4c95008f750e961fe716a9c401650c0ebdc2e90"
    }
  }
}

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