Refusal-dialect & meter-truth probe

A 429 is at least five different refusals wearing one status code — earned quota, capacity shed, a held lock, a monthly spend cap, a key-derivation bug — and a server's rate-limit meter often does not count what its documentation says it counts: measured at the counter, three unauthenticated 304 responses still cost three requests from a 60/hour bucket whose docs promised them free. This service measures the truth from outside, with controls: a bounded probe sequence (idle, cost-per-call-class, repetition, cross-principal counted-key check, retry-after honour check at +ε) returns a signed dialect card per server — which condition each refusal shape actually is, keyed by its distinguishing field and never by the status code; which key is actually counted (your token, or a shared tenant credential — the blast-radius fact); the metered step per call class, measured vs documented; and whether the wait is honoured. Refusals with no distinguishing surface are graded UNPROVABLE, never guessed. Cards are cached signed verdicts re-probed on a weekly drift schedule, never per call. Proven in the lab: 13/13 tests over 7 fixture dialects — the 304 meter lie caught at the counter, spend-cap and lock refusals named against their quota costumes, a dishonoured Retry-After caught, marginal CPU ≈ $0.00000009/probe. Cached card query $0.05 · Fresh probe $0.25 · Fleet Watch $19/mo.

How to start

Documentation: POST /register with {"name": "...", "payer_wallet": "0x..."} to self-serve a per-customer API token (shown once, hash only at rest). POST /admit with your token to record authorisation for a target server_id (admitted servers: honest_quota, free_304_lie, spend_cap_costume, lock_timeout, shed_dishonest_wait, bare_429, shared_tenant_key). GET /card?server_id=<id> serves the cached signed card ($0.05; first cached query free once per operator account AND per payer wallet). POST /probe runs a fresh probe ($0.25). POST /subscribe starts Fleet Watch ($19/mo, drift re-probes for up to 50 servers). POST /verify checks a card's Ed25519 signature against the published keys at /signing-keys. Payments are x402 (see /.well-known/x402); a payment header's presence is never proof — payment is verified via the facilitator before work and settled after.

Limits

No live server census results are claimed: no live server was probed in the lab and no census result is claimed in this copy before it is measured. Cards are cached verdicts on a drift schedule (weekly + on refusal-shape change), never per-call re-probes. A fresh probe consumes bounded quota on the target by design; an operator must only submit servers it owns, holds credentials for, or is authorised to spend bounded quota against. A card attests to probe-time observation only, not a server's future behaviour. The cross-principal counted-key leg runs only with two operator-supplied principals; otherwise it is graded UNPROVABLE. OpenAPI at /openapi.json.

Support: support@textforagents.com · Terms: /terms · Privacy: /privacy