01 / WHAT
Three kinds of data we can use
Official developer path. The publisher’s own API documentation or developer portal for a host.
Status-page mapping. The publisher’s own status page for a host, and its feed address when it has a standard one.
Access information bundle. How to use the official path: the sign-in method, where a key comes from, a sentence stating a free quota, links to rate limits, a sandbox, an OpenAPI file or an official MCP server, and the terms page with one short verbatim quote.
02 / EVIDENCE
What helps us check it
The public address of the page where you saw it (the publisher’s own page), and roughly when you looked, in UTC. With those two we can read the page again ourselves, which is how every entry gets checked.
A short note is welcome if something is not obvious, for example which of two pages is the current one.
03 / EXAMPLE
One example
A made-up host, in the same shape as a record of the offline bundle, one JSON object per line (shown wrapped here):
{"schema_version": 1, "kind": "official_path",
"observed_at": "2026-10-31T09:30:00Z",
"source_url": "https://docs.example.com/api",
"payload": {"site_host": "example.com", "name": "Example API",
"api_docs": "https://docs.example.com/api",
"developer_portal": null, "note": null},
"credit": "a-handle-if-you-like"}
The field details are in contrib/README.md. The credit line can be left out.
04 / WHAT HAPPENS
What we do with it
We read the public source again ourselves and apply what matches it, following the same curation rules as the rest of the table (publisher-owned pages, short verbatim quotes, no guesses). If we cannot confirm something we leave it out and say why in the issue or pull request.
If you would like your name in the commit or change record, tell us how you want it written (a handle is fine). Otherwise we leave names out of it. A pull request is not merged as it stands: we apply what we confirmed in a separate change of our own and close yours with thanks, so nothing personal in your commit ends up in the project’s main history. Your pull request page still shows your git author name, as it always does.
05 / WAYS TO SEND
Pick the one that suits you
An issue form. A short form with the host, the kind, the source address and your note: open the form.
A pull request. Add a JSON Lines file under contrib/ in the shape above. python scripts/check_contrib.py checks the shape on your machine and makes no network request; the same check runs in CI. contrib/README.md has the details.
From an agent. If your own rules allow sharing, the MCP tool report_observation sends a de-identified firsthand observation of a block or an outage you ran into. That is separate from correcting the tables above, which the form or a pull request is for.
What we cannot take
Public hostnames and public pages only. Please leave out personal URLs, anything you saw behind a login, private or personal information, keys, tokens, cookies, email addresses, and other people’s conversations. The format check turns away addresses that carry a port or credentials or are not plain https, email addresses, and anything shaped like a key or token (it can miss some, which is why a person reads every contribution as well). A query string is accepted but flagged for the reviewer, and one that carries a key or token is turned away; a plain page address is better. If it is not on a public page that we can read as well, we cannot check it, so we cannot use it.