Stack Exchange is Poor to agents.
Discry independently scored how well an AI agent can discover and understand the Stack Exchange API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.
SCORED UNDER RUBRIC 1.2 · A full re-launch under Discry Score 2.5 — a new behavioral instrument, not comparable to these scores — is in progress.
Discovery
45% of score · 5/100Comprehension
55% of score · 76/100What we found
- An agent trying to programmatically DISCOVER this API hits a wall: stackoverflow.com/robots.txt returns Disallow: / for all user-agents plus an explicit Content-signal: search=no, ai-train=no. There is no llms.txt, no sitemap.xml, and no official OpenAPI/Swagger spec — every automated discovery signal except MCP is absent or actively hostile.
- The one discovery bright spot is an official Stack Overflow MCP server listed on PulseMCP (with a maintained server.json), plus several community Stack Overflow/Stack Exchange servers on Glama — so Stack Exchange's answer to agents is a curated MCP surface rather than open crawl-friendly signals.
- For an agent that already has the docs URL, comprehension is strong: every one of ~200 methods carries a task-oriented one-line description ('Casts an accept vote on the given answer', 'Creates a new question'), grouped cleanly by concept under a logical H1→H2→H3 hierarchy.
- Capability boundaries are unusually well documented for an API of this age — throttles, the backoff contract, per-user quota limits, the 100-item page cap, the 25-page anonymous ceiling, and heavy-caching guidance are all stated up front, so an agent can plan around limits instead of discovering them by failing.
- Field and parameter naming is rigorously consistent (snake_case throughout, all dates as unix epoch), but endpoint pages are built around a JavaScript 'Try It' explorer that dumps large field-selection widgets — usable examples exist as runnable request URLs, but there are no multi-language copy-paste code samples.
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Publish an llms.txt at api.stackexchange.com (and stackoverflow.com) linking the docs landing page, authentication, throttle, filters, and errors guides. It is the single highest-leverage discovery fix and currently returns 404.
- 02Relax robots.txt for the API/docs host, or serve a docs-specific robots.txt: the current site-wide Disallow: / with Content-signal: ai-train=no means well-behaved agent crawlers will refuse to index the docs at all, hiding an otherwise excellent reference.
- 03Publish an official OpenAPI/Swagger spec for the v2.3 API. The method catalog, types, and filters are already formalized internally; a machine-readable spec would let agents generate typed clients and auto-discover endpoints without scraping the custom docs app.
- 04Add per-endpoint code examples in at least one popular language (Python/JavaScript) alongside the live 'Try It' explorer, using realistic values — the explorer is human-oriented and its widget markup is noisy for LLM consumption.
- 05Add a short 'recipes' section with 2-3 end-to-end task walkthroughs (e.g. authenticate → create a filter → page through tagged questions → handle backoff) so agents can chain endpoints with error handling rather than reasoning it out from isolated method pages.
Execution coverage · INFORMATIONAL, UNSCORED
Whether an agent can actually complete a call and recover from errors is the deeper Audit layer — documented here, but not part of the Discry Score.
Execution characteristics are documented thoroughly. Errors return machine-parseable JSON via a common wrapper object (error_id, error_name, error_message); OAuth errors return a JSON {error:{type,message}} shape. Rate limits are explicit (30 req/sec per IP hard cap, 10,000 default daily quota, dynamic per-method backoff field, quota_remaining/quota_max in every wrapper). Pagination uses page/pagesize with has_more and a 100-item page cap (25-page cap for anonymous access). Idempotency keys are not mentioned.