{"openapi": "3.0.3", "info": {"title": "Remote-Skill Census & Verification", "version": "1.0.0", "description": "Censuses a remote MCP server's loadable skill set per host persona: paginates skills/list, chases every skill:// URI referenced by server instructions and served skill bodies, SHA-256-verifies every manifest file, classifies each skill VERIFIED / DIGEST_MISMATCH / UNVERIFIABLE_DYNAMIC / UNVERIFIABLE_NO_MANIFEST / OVERSIZE, reports the listed / loadable-unlisted / referenced-unreachable partition, and issues an HMAC-signed receipt binding server, persona, partition and the full digest set \u2014 revoked automatically on re-census when any file changes, is added, or is removed."}, "servers": [{"url": "https://textforagents.com/products/remote-skill-census-verification"}], "components": {"securitySchemes": {"bearer": {"type": "http", "scheme": "bearer"}}}, "paths": {"/register": {"post": {"summary": "Self-serve account + token issuance (unauthenticated, rate-limited)", "responses": {"200": {"description": "account_id, token (shown once), trial_available"}}}}, "/census": {"post": {"summary": "Run a census of one server for one persona. Free once per operator; otherwise x402 $1.99 or subscription.", "security": [{"bearer": []}], "responses": {"200": {"description": "receipt_id + signed receipt + billed_as"}, "402": {"description": "x402 payment challenge"}}}}, "/receipts": {"get": {"summary": "List this account's receipts", "security": [{"bearer": []}], "responses": {"200": {"description": "receipts[]"}}}}, "/receipts/{id}": {"get": {"summary": "Fetch one of this account's receipts", "security": [{"bearer": []}], "responses": {"200": {"description": "receipt record"}, "404": {"description": "not found (or another account's)"}}}}, "/receipts/verify": {"post": {"summary": "Verify a receipt's HMAC signature (public)", "responses": {"200": {"description": "{valid: bool}"}}}}, "/verify-approval": {"post": {"summary": "Re-census and check the pinned approval still stands; revokes on digest-set change. Subscription-included up to the cap, else x402 $1.99.", "security": [{"bearer": []}], "responses": {"200": {"description": "{approved, revoked, old/new digest-set hashes}"}, "402": {"description": "x402 payment challenge"}}}}, "/check": {"post": {"summary": "Is this digest the approved one for a skill on a receipt?", "security": [{"bearer": []}], "responses": {"200": {"description": "{approved: bool}"}}}}, "/subscribe": {"post": {"summary": "Start continuous ($9.99/server/mo) or fleet ($99/mo) via x402 payment", "security": [{"bearer": []}], "responses": {"200": {"description": "subscription"}, "402": {"description": "x402 payment challenge"}}}}, "/account": {"get": {"summary": "Account, trial and subscription state", "security": [{"bearer": []}], "responses": {"200": {"description": "account record"}}}}, "/tokens/revoke": {"post": {"summary": "Revoke the presented token", "security": [{"bearer": []}], "responses": {"200": {"description": "{revoked: true}"}}}}, "/tokens/rotate": {"post": {"summary": "Rotate the presented token (old revoked, new shown once)", "security": [{"bearer": []}], "responses": {"200": {"description": "{token}"}}}}, "/mcp": {"post": {"summary": "MCP streamable-HTTP surface (initialize, tools/list, tools/call)", "responses": {"200": {"description": "JSON-RPC 2.0 result"}}}}, "/health": {"get": {"summary": "Health", "responses": {"200": {"description": "{status: ok}"}}}}}}