{"openapi": "3.0.3", "info": {"title": "Intent Cloak: query-intent privacy for agents", "version": "1.0.0", "description": "Intent Cloak: query-intent privacy for agents \u2014 by TextForAgents LLC. Every query your agent sends is a disclosure: what its principal is buying, building, or investigating, handed to a counterparty who can price against it, log it for a competitor, or answer differently because of who is asking. The cloak treats intent as a protected asset at query time. A sensitive task's information need is decomposed into constructed subneed queries placed across independent providers under a hard threshold \u2014 no provider's share of the task's sensitive entities exceeds 0.5, and no provider ever receives both the goal and the target \u2014 with answers reassembled client-side by per-field quality selection; if no legal placement exists, the cloak refuses to send rather than leaking. A synthetic-task probe (never your real query \u2014 probing with it would itself be the leak) measures whether a provider prices differently for revealed intent and raises the decoy ratio automatically when it does. Every task returns a signed exposure receipt: a record of what was NOT disclosed, per provider, with the real-vs-decoy spend split stated honestly. Stated plainly: whether real providers exploit intent today is unmeasured \u2014 the $9 exposure audit is the canary that answers it on your own providers. The threshold is a bound on content reconstructability per provider; it is not a guarantee against account-level linkability (a shared authenticated account links queries regardless of content). Deterministic normalization is proven on templated/graded query shapes. Total task spend is higher cloaked \u2014 decoys and fragmentation multiply your own underlying provider queries (lab: $17.79 vs $3.90 in double units), disclosed per task on the receipt. The input is a task decomposed into constructed subneed queries \u2014 this is not a tool that divides a keyword search query; the default provider posture prefers tool/data API providers over search-engine providers."}, "servers": [{"url": "https://textforagents.com/products/intent-cloak-query-privacy"}], "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 (first 100 cloaked queries free, once per operator, per account + payer wallet) to the account", "responses": {"200": {"description": "token + trial state"}}}}, "/cloak": {"post": {"security": [{"bearer": []}], "summary": "run a task through the cloak ($0.02 per cloaked query after the one-time trial grant, or included on an Operator pass); body: {task_id} or {task}, provider_kind, cloaked. Fail-closed 422 when no legal placement exists \u2014 nothing sent, nothing charged", "responses": {"200": {"description": "answers + signed exposure receipt"}, "402": {"description": "x402 challenge"}, "422": {"description": "fail-closed refusal"}}}}, "/cloak/query": {"post": {"security": [{"bearer": []}], "summary": "cloak one constructed subneed query within a task context ($0.02 after the trial grant); body: {task_id|task, subneed:{query, entities, with_goal_verb}}", "responses": {"200": {"description": "cloaked query + disclosure share"}, "402": {"description": "x402 challenge"}, "422": {"description": "fail-closed refusal"}}}}, "/audit": {"post": {"security": [{"bearer": []}], "summary": "exposure audit ($9/task-set, no free grant): matched cloaked vs uncloaked canary over a task-set with a signed audit receipt; body: {provider_kind, task_ids?}", "responses": {"200": {"description": "signed audit receipt"}, "402": {"description": "x402 challenge"}}}}, "/verify": {"post": {"summary": "verify a signed exposure/audit receipt's HMAC signature (free)", "responses": {"200": {"description": "valid + key fingerprint"}}}}, "/verify-key": {"get": {"summary": "accepted receipt-key fingerprints (current + archived)", "responses": {"200": {"description": "keys"}}}}, "/subscribe": {"post": {"security": [{"bearer": []}], "summary": "Operator pass $19/mo (x402): 2,000 cloaked queries/mo with deterministic normalization included; queries beyond the cap bill at $0.02/query", "responses": {"200": {"description": "pass active"}}}}, "/account": {"get": {"security": [{"bearer": []}], "summary": "own account state (trial, pass, run 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 (run records tombstoned, token revoked)", "responses": {"200": {"description": "deleted"}}}}, "/mcp": {"post": {"summary": "MCP surface (initialize / tools/list / tools/call: cloak_run, exposure_receipt, verify_receipt) \u2014 same billing as REST, Bearer token required for paid tools", "responses": {"200": {"description": "JSON-RPC"}}}}}}