ursy.singles · The instrument and the live record
Where a machine may knock
Every way a machine can reach this site without a browser, with the address it answers at, what it serves, how long a reply may be cached, what the API ledger recorded at each door, the limits published for each, and the sponsor line that rides on every machine answer.
0 (honest zero) of the 92 API requests in the last seven days came from a named AI caller.
- Every number carries its source, its window, the rule that produced it and whether it is live or frozen.
- Every table reconciles, or says in writing why it cannot.
- Private application namespaces are never named; where the ledger saw one it is folded into a row that says so.
Room 08 of 12
The doors, in plain English
URSY.SINGLES has doors as well as pages. A door is any address a machine may call without a browser: the machine files (llms.txt, agents.json, ai-entry.json, humans.txt), the two guides Nicola and MCP, the runtime's own status and knocks routes, this instrument and its JSON twin, and whichever public API namespaces the site declares. This room lists every door that is switched on here, what each serves and how long a reply may be cached, then what the API ledger recorded at each in the last seven days, the rate limits published for each, and the sponsor line appended to every machine answer.
Two rules hold throughout. A door that is off for this site is absent from the tables rather than shown as zero, because an absent surface is not a measured nothing. And private application namespaces are never named — in a table, in a sentence or in the JSON twin; where the ledger recorded requests at one, they are folded into a single row marked "private lanes (not named)" so every total still reconciles.
The entrances
Every door, and what it serves
Every address on this site that a machine may call without a browser, listed only when it is switched on here. A door that is off for this site is absent from the table, not shown as zero, because an absent surface is not a measured nothing.
| Door | Address | Serves | Cache policy |
|---|---|---|---|
| llms.txt | /llms.txt | A plain-text map of this site written for language models: what it is, where its pages and services are, and the house rules it asks readers to keep. | max-age 600 (ten minutes), stale-while-revalidate 3600 |
| agents.json | /agents.json | The AI agent manifest, also served at .well-known/agents.json. | max-age 600 (ten minutes), stale-while-revalidate 3600 |
| ai-entry.json | /ai-entry.json | The machine entry point: declared pages, services, doors and public namespaces in one document. | max-age 600 (ten minutes), stale-while-revalidate 3600 |
| Sitemap | /sitemap.xml | The WordPress core XML sitemap of published pages and posts. | set by WordPress core, not by the runtime |
| humans.txt | /humans.txt | The human-readable credits file. | max-age 600 (ten minutes), stale-while-revalidate 3600 |
| Under the Hood | /under-the-hood/ | This twelve-room instrument as HTML. | max-age 120 (two minutes) |
| Nicola | /wp-json/nicola/v1/hello | A signpost: hello, directory and route answers that carry addresses, never page content. | no max-age is set by the module |
| MCP | /wp-json/ursy-mcp/v1/mcp | A JSON-RPC tool server with three tools: search, list_services and get_entrances. | no max-age is set by the module |
| Runtime status | /wp-json/ursy-runtime/v1/status | The parity proof: runtime version, package fingerprint and the loader's module record. | max-age 60 (one minute) |
| Apis nicola v1 | /wp-json/nicola/v1 | An address this site declares in its own configuration. | not stated by the runtime |
| Apis ursy mcp v1 | /wp-json/ursy-mcp/v1 | An address this site declares in its own configuration. | not stated by the runtime |
| Apis ursy runtime v1 | /wp-json/ursy-runtime/v1 | An address this site declares in its own configuration. | not stated by the runtime |
| Apis ursy mint v1 | /wp-json/ursy-mint/v1 | An address this site declares in its own configuration. | not stated by the runtime |
| Under the Hood, JSON twin | /wp-json/ursy-runtime/v1/uth | The same facts tree as JSON, one shape for every room, with the room register attached. | max-age 120 (two minutes) |
| Knocks | /wp-json/ursy-runtime/v1/knocks | The traffic ledger by UTC day and visitor class, seven days. | max-age 300 (five minutes) |
| Mint status | /wp-json/ursy-mint/v1/status | The mint's public status: gate, issued, ready, pending. | max-age 60 (one minute), stale-while-revalidate 300 |
| Mint contract | /wp-json/ursy-mint/v1/contract | The appreciation-token contract this site is bound by, and its hash. | max-age 60 (one minute), stale-while-revalidate 300 |
Source: this site's configuration and the loader's module record (the entrances map). Window: this request. Rule: each address is listed only when its surface is switched on for this site; cache policy is the max-age the owning module sets on its own reply. Freshness: Live.
Public API namespaces named on this site: nicola/v1, ursy-mcp/v1, ursy-runtime/v1, ursy-mint/v1 (4) · config public_namespaces · as at 12 Sep 2026 · the only site namespaces a machine may be told about · Frozen until the site file changes
Corrected 4 September 2026: The 'REST namespaces present' line once listed every ursy-* namespace the server reported, including private application APIs; it now names only the package's own five and config public_namespaces.
Nicola and MCP
The two guides
Two of the doors are guides rather than content. Nicola answers "where is…" with addresses; MCP answers tool calls with structured results. Neither ever returns a page body.
Nicola — the signpost
In plain words
Nicola is a signpost that answers "where is…" with addresses, never with content. It says where a page or a service lives and how confident it is; it does not quote the page.
Precisely
Hello: /wp-json/nicola/v1/hello. Directory: /wp-json/nicola/v1/directory. 2 directory entries, one per declared page and service. Truth policy, as the module states it: "directory-backed; every door is a real page or keyless service on this site; dated; correction-friendly"
module state from the loader; addresses from this site's REST base · this request · a guide is listed with its addresses only when its module is on for this site · Live
MCP — the tool server
In plain words
MCP is a tool server that speaks JSON-RPC. A machine asks for the site's search, its list of services or its entrances and gets a structured answer built from the same directory Nicola uses — never a page body.
Precisely
Endpoint: /wp-json/ursy-mcp/v1/mcp (POST, JSON-RPC 2.0; a GET returns a hint object). Tools: search, list_services, get_entrances. Request bodies are capped at 64 KB. Rate bucket: 60 requests per five minutes and 15 per minute, per client hash, as this site configures it.
module state from the loader; addresses from this site's REST base · this request · a guide is listed with its addresses only when its module is on for this site · Live
What the doors recorded
The API ledger, by door and by caller
What the forensic REST ledger recorded at the doors in the last seven days: which door, and which class of caller. The ledger stores a salted hash of the caller's address, never the address itself.
| Door (route prefix) | Requests, 7 days |
|---|---|
/ursy-runtime/v1 | 43 |
/ursy-mint/v1 | 22 |
/nicola/v1 | 6 |
/ursy-mcp/v1 | 6 |
| private lanes (not named) — 1 prefix | 15 |
Source: table wp_ursy_api_log. Window: 6 Sep 2026 to 12 Sep 2026 (7 UTC days including today). Rule: one row per REST request in the ledger's namespaces, grouped by the first two path segments of the route; prefixes outside the public namespaces and the five the package owns are folded into one unnamed row; the caller's IP is stored as a salted 24-character hash, never the address. Freshness: Live.
| Caller class | Requests, 7 days |
|---|---|
| browser-like | 86 |
| bot-like | 6 |
Source: table wp_ursy_api_log. Window: 6 Sep 2026 to 12 Sep 2026 (7 UTC days including today). Rule: the caller class the ledger stored for each request — no-ua, bot-like, browser-like, or ai: followed by the named AI reader; a class, never a person; hashed IP, never the address. Freshness: Live.
Hospitality
The limits we publish
The rate limits this site publishes for each public namespace, per client hash. They are stated as configuration: the table says what the limiter is told to do, not how many requests it refused.
| Namespace | Per five minutes | Per minute |
|---|---|---|
/ursy-telemetry/v1 | 120 | 30 |
/nicola/v1 | 300 | 90 |
/ursy-mint/v1 | 120 | 30 |
/ursy-mcp/v1 | 60 | 15 |
/ursy-runtime/v1 | 300 | 60 |
| Exempt by ruling: 0 (honest zero) namespaces (not named) | no limit | no limit |
Source: hospitality module, its bucket register, and config rl_exempt. Window: this request for the buckets; as at 12 Sep 2026 for the exemptions. Rule: per five minutes and per minute, per client hash; signed-in users get five times each figure; private application namespaces are folded into one unnamed row; exempt namespaces are counted, never named, because they are private lanes. Freshness: Live for the buckets, Frozen until the site file changes for the exemptions.
The sponsor line
Who pays, said plainly
Every machine answer from this site carries one sponsor line, appended after the data. Here it is spelled out: who, for which month, and where it does and does not appear.
The sponsor, spelled out
- Sponsorteas.co.uk — https://teas.co.uk/
- MonthSeptember 2026
- Disclosurepaid placement
- Link relsponsored nofollow
- Where it appearsappended after supported public REST data, MCP results and eight declared machine files; this room also links to the sponsor with a paid-placement disclosure
- Where it never appearsthe mint routes, the telemetry beacon, the sponsor-evidence endpoint
config sponsor · month 2026-09 · paid placement, rel=sponsored nofollow; the sponsor configuration and controlled campaign registry supply this disclosure · Frozen until the month changes
Visit teas.co.uk — paid placement.
Sponsor evidence
These figures concern the sponsor block in a machine response. They do not show that an AI used it, recommended the sponsor, or caused a purchase. Human page views create no new sponsor event here.
Sponsor evidence counting is not enabled on this site. An unavailable count is not a measured zero.
The saved snapshot counts successful, non-cacheable origin responses with the registered sponsor block, and excludes verified maintenance probes. Generated machine files remain separate because their cache hits are not observed here. AI names come from user-agent claims. The existing citation and API ledgers keep their own counting rules; these exclusions do not rewrite those older ledgers.
Read the sponsor evidence, source rules and UTC windows as JSON.
Honesty note
How this room was read. Every figure in this room was read at 12 Sep 2026 15:22 UTC and is held for up to 120 seconds; this copy was served at 15:22 UTC from that held tree.
Where a door is switched off for this site its row is absent rather than shown as zero; where a ledger is installed and empty the figure reads 0 (honest zero); where a ledger is not installed the section says "not counting yet"; where the runtime cannot read a fact on this site family it says "not kept on this site"; where a site has ruled a module off it says "not kept on this site by design". Nothing here is modelled, sampled or estimated, and no private application namespace is named.
Revised 4 September 2026: the single-page truth room was replaced by twelve rooms; no stored value changed, and every figure the old page showed appears in a room with the same source. The full list of corrections is in The Workings.
Stated 5 September 2026: the machine-files counter in this room follows the tree. Where the ai-surfaces module is ruled off in the site file it prints 0 (honest zero) — the runtime offers none, and whether the theme serves any machine file is not read here. Where the theme provides ai-surfaces it prints words, not a zero — the runtime does not read the theme's map, and a zero there would be a false zero.
AI agents and integrators: llms.txt · agents.json · ai-entry.json · sitemap · humans.txt · this instrument · Nicola · MCP (POST only) · runtime status · apis nicola v1 · apis ursy-mcp v1 · apis ursy-runtime v1 · apis ursy-mint v1 · this room as JSON · traffic ledger · mint status · mint contract