◎ Discry Score
plausible.com
analytics · API
C
0 / 100
DISCOVERY0
COMPREHENSION0
Category leader: 92 (A)
Discry your API →
ANALYTICS · RANK #21 OF 29

Plausible is Needs Work to agents.

Discry independently scored how well an AI agent can discover and understand the Plausible API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.

Discry your API — freeView the docs ↗

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 · 24/100
OpenAPI specA machine-readable OpenAPI/Swagger spec agents can parse.Fail
llms.txtAn llms.txt index that points agents to the docs that matter.Fail
llms.txt qualityThe llms.txt is focused, current, and well under the size budget.Fail
llms-full.txtA full-text bundle agents can load in one request.Fail
AGENTS.mdAn AGENTS.md that tells coding agents how to build on the API.Fail
.well-known/mcp.jsonA discoverable MCP manifest at a well-known path.Fail
MCP registryThe API is listed in a public MCP registry.Pass
robots.txt AI directivesrobots.txt allows (or explicitly guides) AI crawlers.Pass
SitemapA sitemap so agents can enumerate the docs surface.Partial

Comprehension

55% of score · 90/100
Task-oriented descriptionsEndpoints described by what they accomplish, not just their shape.Pass
Realistic examplesRunnable, real-world request/response examples.Pass
Multi-step workflowsDocs that chain calls into complete jobs an agent can follow.Partial
Error-recovery guidanceDocumented failure modes and how to recover from them.Partial
Answer-first formatThe answer leads; preamble does not bury it.Pass
Capability boundariesClear limits — what the API can and cannot do.Pass
Naming consistencyConsistent, predictable naming across endpoints.Pass
Heading hierarchyClean heading structure agents can navigate.Pass
Markdown docsDocs available as clean markdown, not JS-rendered HTML only.Pass
Token efficiencyDocs are concise enough to fit an agent context window.Pass

What we found

  • Plausible's documentation is excellent for comprehension but nearly invisible to agent-discovery infrastructure: there is no llms.txt, no llms-full.txt, and no AGENTS.md, so an agent that doesn't already know the doc URLs has no machine-readable entry point and must scrape Docusaurus HTML.
  • Positive: a real, official MCP server exists (built by the Sentry team, getsentry/plausible-mcp) and Plausible documents it at /docs/data-access — an agent wanting to query Plausible data can discover a ready-made natural-language tool instead of wiring the REST API by hand. This is the strongest discovery signal on the site.
  • The Stats API is built around a single consolidated endpoint (POST /api/v2/query) with task-oriented descriptions, ISO8601 date handling, consistent snake_case naming, and roughly eight realistic worked examples — an agent can understand and call the entire analytics surface from one answer-first page.
  • Capability boundaries are unusually well documented: explicit rate limits (600 req/hr), a dedicated 'Quirks' section, plan-gating (Stats = Business, Sites = Enterprise), a 2,000-character URL cap, and data-URI exclusions — an agent learns the limits before it fails rather than after.
  • Error recovery is the weak spot: the Stats and Sites APIs document only success responses with no 400/401 error body schema or fix guidance, so a rejected request leaves an agent guessing which field was invalid; only the Events API offers real debugging guidance (x-plausible-dropped header, X-Debug-Request header, /api/health endpoint).

What to change

Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.

  1. 01Publish an llms.txt (and llms-full.txt) at plausible.io/llms.txt indexing the Stats, Events, and Sites API reference pages with one-line descriptions. This is the single highest-leverage discovery fix and would point any agent straight at the machine-readable docs.
  2. 02Generate and host an OpenAPI spec at a stable public URL (e.g. /docs/openapi.json) for the v2 query, events, and sites endpoints. It is the highest-weighted discovery check (5) and currently a hard fail, and it unlocks client codegen and automatic tool wiring.
  3. 03Document error responses: add the actual 400/401 JSON error body shape for the Stats and Sites APIs and map common causes (invalid metric/dimension, malformed date_range, expired key, plan not entitled) to explicit fixes. This is the biggest remaining comprehension gap.
  4. 04Add an AGENTS.md to the plausible/analytics and plausible/docs repositories so coding agents working with the SDK or self-hosted build get setup and usage context.
  5. 05Add the /docs documentation pages to a sitemap — the root sitemap.xml currently lists only marketing and blog URLs — so crawlers and agents can enumerate the API reference.

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.

Bearer API key (Stats API, Sites API)No auth / domain-scoped public ingestion (Events API) Error format documented Rate limits documented Pagination documented Idempotency documented

Stats and Sites APIs authenticate with a Bearer API key; the Events ingestion endpoint is unauthenticated and domain-scoped. Rate limits (600 req/hr on the Stats API) and pagination are well documented — cursor-based before/after/limit on the Sites API and limit/offset on the Stats API. Hard error responses are not documented as machine-parseable bodies: the docs show only success (200/202) examples, and the Events API always returns 202 even when an event is dropped (surfaced via an x-plausible-dropped header). No idempotency keys are documented.

See your own Discry Score.

Drop your API docs URL. See what an agent sees — in 60 seconds, free.

Discry your API — free