{"openapi": "3.0.3", "info": {"title": "Evidence-granularity audit", "version": "1.0.0", "description": "Agent registries and scorers routinely present evidence keyed to the wrong unit: an operator wallet's aggregate treasury line written into every agent profile that wallet minted, a fleet's volume shown as an agent's, a claimant's self-supplied numbers shown as corroboration. Given a listing, this service re-keys every claim class \u2014 payments, volume, readiness, reputation \u2014 to the unit the evidence is actually keyed to, and returns a signed per-class verdict: OWN (independent evidence keyed to the agent's own unit), INHERITED-FROM-OPERATOR (independent evidence keyed one level up, with the exact key mismatch named and the sibling witness set recorded), or SELF-SUPPLIED (the claim rests only on channels the claimant controls \u2014 claimant evidence can never establish OWN, however much of it there is). Every verdict carries a bounded witness-set receipt \u2014 sibling count, shared line hash, and the operator's registration count at audit time \u2014 and expires on its own terms: when the registration count moves or a shared hash changes, the verdict is due for re-audit. A grade describes evidence keying only \u2014 OWN / INHERITED-FROM-OPERATOR / SELF-SUPPLIED is a statement about which unit the evidence is keyed to and which channel supplied it, never a fraud, Sybil, or trustworthiness determination about any account, and no grade triggers or recommends any action against any account. Live-registry re-keying coverage is UNMEASURED at launch; willingness to pay is UNMEASURED; verdicts are witness-bound \u2014 they stand only while the witness quantities on their receipt are unchanged."}, "servers": [{"url": "https://textforagents.com/products/evidence-granularity-audit"}], "components": {"securitySchemes": {"bearer": {"type": "http", "scheme": "bearer"}}}, "paths": {"/health": {"get": {"summary": "health", "responses": {"200": {"description": "ok"}}}}, "/register": {"post": {"summary": "register an operator account \u2014 returns a one-time claim token", "responses": {"201": {"description": "account + claim_token"}}}}, "/trial/claim": {"post": {"summary": "claim the API token; binds the one-time trial grant (one free full audit, ever) to the account + payer wallet", "responses": {"200": {"description": "token + trial state"}}}}, "/audit": {"post": {"security": [{"bearer": []}], "summary": "full granularity audit ($0.04 x402 after the one-time free trial, or included on a pass under the witness-trigger discipline); body: {listing, siblings} or {listing_url, siblings}", "responses": {"200": {"description": "signed verdict"}, "402": {"description": "x402 challenge"}}}}, "/query": {"post": {"security": [{"bearer": []}], "summary": "verdict query ($0.01 x402): precomputed signed verdict for one listing; optional current witness quantities \u2014 a moved witness returns 409 needs_reaudit instead of serving a stale verdict", "responses": {"200": {"description": "signed verdict"}, "402": {"description": "x402 challenge"}, "409": {"description": "needs re-audit"}}}}, "/verify": {"post": {"summary": "verify an Ed25519-signed verdict (free)", "responses": {"200": {"description": "valid + key fingerprint"}}}}, "/verify-key": {"get": {"summary": "accepted signing-key fingerprints (current + archived)", "responses": {"200": {"description": "keys"}}}}, "/subscribe": {"post": {"security": [{"bearer": []}], "summary": "Operator pass $9.99/mo or Fleet pass $19.99/mo (x402); standing verdicts re-audit only on the witness-set trigger", "responses": {"200": {"description": "pass active"}}}}, "/account": {"get": {"security": [{"bearer": []}], "summary": "own account state (trial, pass, verdict count)", "responses": {"200": {"description": "account"}}}}, "/tokens/rotate": {"post": {"security": [{"bearer": []}], "summary": "rotate own API token (old token revoked in the same call)", "responses": {"200": {"description": "new token"}}}}, "/tokens/revoke": {"post": {"security": [{"bearer": []}], "summary": "revoke own API token", "responses": {"200": {"description": "revoked"}}}}, "/account/data": {"delete": {"security": [{"bearer": []}], "summary": "delete own account data (verdicts tombstoned, token revoked)", "responses": {"200": {"description": "deleted"}}}}, "/mcp": {"post": {"summary": "MCP surface (initialize / tools/list / tools/call: audit_listing, query_verdict, verify_verdict) \u2014 same billing as REST, Bearer token required for paid tools", "responses": {"200": {"description": "JSON-RPC"}}}}}}