{"openapi":"3.1.0","info":{"title":"LeadFuzion Agent Store","version":"0.1.0","description":"Buy LeadFuzion historical lead packages (Probate, FirstUp) one item_id at a time, at the listed price, with no account. Prices are shown free before any charge. Pay per purchase with MPP (card via Stripe SPT, or Tempo) or x402 (USDC on Base)."},"servers":[{"url":"https://mcp.leadfuzion.ai"}],"x-service-info":{"categories":["data","leads","real-estate"],"docs":{"homepage":"https://mcp.leadfuzion.ai","llms":"https://mcp.leadfuzion.ai/llms.txt"}},"paths":{"/api/v1/mcp":{"post":{"operationId":"mcp_post","summary":"MCP Streamable HTTP endpoint (JSON-RPC 2.0). Serves protocol 2026-07-28 (per-request _meta, no sessions) and 2025-11-25/2025-06-18/2025-03-26 (initialize handshake). initialize, server/discover and tools/list are free. Paid tool results signal payment in result._meta; this endpoint never answers HTTP 402.","tags":["mcp"],"responses":{"200":{"description":"JSON-RPC response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"202":{"description":"Notification accepted (empty body)"},"400":{"description":"Malformed request, header mismatch or unsupported version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"403":{"description":"Origin not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"404":{"description":"Unknown method (protocol 2026-07-28)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"}}}}}},"/api/v1/packages":{"get":{"operationId":"list_packages","summary":"Free. List lead packages that are for sale, with their prices. Pass state and county (e.g. AZ and Maricopa): the live catalog is listed one county at a time and answers 400 naming the missing one.","tags":["catalog"],"responses":{"200":{"description":"Packages for sale","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageList"}}}},"400":{"description":"Invalid input or a missing state or county; the body names the field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The catalog could not be read right now; try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"state","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"Two-letter US state, e.g. AZ. Pass it with county.","in":"query","required":false},{"name":"county","schema":{"type":"string","minLength":1,"maxLength":64},"description":"County name without the word County (letters, spaces and . ' - only), e.g. Maricopa. Pass it with state.","in":"query","required":false},{"name":"lead_type","schema":{"type":"string","enum":["Probate","FirstUp"]},"in":"query","required":false},{"name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"in":"query","required":false}]}},"/api/v1/packages/{item_id}":{"get":{"operationId":"get_package","summary":"Free. Price and details for one package, what the buyer must attest, and how to pay. This is where the price is shown before any charge.","tags":["catalog"],"responses":{"200":{"description":"Quote, record fields, attestation and payment instructions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageQuote"}}}},"400":{"description":"Invalid item_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Item not found; list its state and county first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Item exists but is not for sale; the body gives the reason","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The catalog could not be read right now; try again shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"}}]}},"/api/v1/packages/{item_id}/purchase":{"post":{"operationId":"purchase","summary":"Paid. Buy one package at its listed price. Without payment this answers 402 with x402 v2 PAYMENT-REQUIRED and MPP WWW-Authenticate: Payment challenges; nothing is charged. Pay with Authorization: Payment (MPP) or PAYMENT-SIGNATURE (x402).","tags":["purchase"],"responses":{"200":{"description":"Paid: the records and an order_token for redelivery","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryBody"}}}},"400":{"description":"Invalid input or attestation; nothing charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required; nothing charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Item not found; nothing charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Item not for sale; nothing charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Body too large; nothing charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Charged but delivery failed; the body gives the refund status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseFailure"}}}},"503":{"description":"Payments not configured, or data unavailable; nothing charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseFailure"}}}}},"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseRequest"}}}},"x-payment-info":{"offers":[{"intent":"charge","method":"stripe","amount":null,"currency":"usd","description":"Card via Stripe Shared Payment Token. Per item: the listed price of the item_id; see GET /api/v1/packages/{item_id}."},{"intent":"charge","method":"tempo","amount":null,"description":"USDC.e on Tempo. Per item: the listed price of the item_id; see GET /api/v1/packages/{item_id}."}]},"x-lf-payment":{"intent":"charge","methods":["mpp_spt","mpp_tempo","x402_base"],"pricing":"per item; see GET /api/v1/packages/{item_id}","x402":{"version":2,"scheme":"exact","asset":"USDC on Base","header":"PAYMENT-SIGNATURE"}}}},"/api/v1/orders/redeem":{"post":{"operationId":"redeem_order","summary":"Redeliver a paid order. The order_token goes in the JSON body, never in the URL. No charge and no attestation.","tags":["purchase"],"responses":{"200":{"description":"The same records, with redelivery=true","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryBody"}}}},"400":{"description":"Missing or malformed order_token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown order_token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The package can no longer be delivered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Order expired or not paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payments not configured, or data unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRequest"}}}}}},"/api/v1/orders/recover":{"post":{"operationId":"recover_order","summary":"x402 payers only: recover a paid order whose response and order_token were lost. Sign the text 'LeadFuzion order recovery\\nx402 payment nonce: <nonce, lowercase>\\nissued_at: <issued_at>' with the paying wallet (personal_sign, EIP-191); issued_at must be within 10 minutes of now. Returns the paid records and a NEW order_token. No charge; never pay again instead.","tags":["purchase"],"responses":{"200":{"description":"The paid records, with redelivery=true and a new order_token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryBody"}}}},"400":{"description":"Malformed field, stale issued_at or wrong signer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No x402 order for that nonce","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The package can no longer be delivered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Order expired, not paid, or changed since it was paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payments not configured, or data unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoverRequest"}}}}}},"/healthz":{"get":{"operationId":"healthz","summary":"Health: 200 when payments are configured, 503 otherwise.","tags":["discovery"],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"503":{"description":"Payments not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/llms.txt":{"get":{"operationId":"llms_txt","summary":"Plain-text guide for AI agents: what is sold and how to pay.","tags":["discovery"],"responses":{"200":{"description":"text/plain guide","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"operationId":"openapi_json","summary":"This OpenAPI 3.1 document (MPP discovery).","tags":["discovery"],"responses":{"200":{"description":"OpenAPI 3.1 document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/mcp-registry-auth":{"get":{"operationId":"mcp_registry_auth","summary":"Official MCP Registry HTTP domain proof (public key only); 404 when unset.","tags":["discovery"],"responses":{"200":{"description":"text/plain 'v=MCPv1; k=ed25519; p=<public key>'"},"404":{"description":"No registry key configured"}}}}},"components":{"schemas":{"JsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","integer"]},"method":{"type":"string"},"params":{"type":"object"}}},"JsonRpcResponse":{"type":"object","required":["jsonrpc"],"properties":{"jsonrpc":{"const":"2.0"},"id":{},"result":{"type":"object"},"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{}}}}},"Quote":{"type":"object","properties":{"item_id":{"type":"string"},"title":{"type":"string"},"state":{"type":"string"},"county":{"type":"string"},"lead_type":{"type":"string","enum":["Probate","FirstUp"]},"period":{"type":"string","description":"YYYY-MM"},"lead_count":{"type":"integer"},"skiptrace":{"type":"boolean"},"price_usd":{"type":"string","description":"Price charged, e.g. 58.50; the same with or without skip tracing (the skip-traced version's catalog price)"},"price_cents":{"type":"integer","minimum":50},"currency":{"type":"string"},"terms_url":{"type":"string"},"terms_version":{"type":"string"},"privacy_url":{"type":"string"}},"required":["item_id","title","price_usd","price_cents","lead_count","terms_url","terms_version"]},"PackageList":{"type":"object","required":["packages","count"],"properties":{"packages":{"type":"array","items":{"$ref":"#/components/schemas/Quote"}},"count":{"type":"integer"}}},"PackageQuote":{"type":"object","required":["quote","fields","attestation_required","pay"],"properties":{"quote":{"$ref":"#/components/schemas/Quote"},"fields":{"type":"array","items":{"type":"string"}},"attestation_required":{"type":"object"},"pay":{"type":"object"}}},"PurchaseRequest":{"type":"object","required":["buyer","purpose","accept_terms","terms_version"],"properties":{"buyer":{"type":"string","minLength":3,"maxLength":200,"description":"Who is buying: person or company name plus a contact. Recorded with the order."},"purpose":{"type":"string","minLength":10,"maxLength":500,"description":"What the leads will be used for. Recorded with the order."},"accept_terms":{"const":true},"terms_version":{"type":"string","description":"terms_version from the quote"}}},"RedeemRequest":{"type":"object","required":["order_token"],"properties":{"order_token":{"type":"string","minLength":20,"maxLength":200}}},"RecoverRequest":{"type":"object","required":["payment_nonce","issued_at","signature"],"properties":{"payment_nonce":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"issued_at":{"type":"string","format":"date-time"},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$"}}},"DeliveryBody":{"type":"object","required":["order","item","payload"],"properties":{"order":{"type":"object","properties":{"order_id":{"type":"string"},"order_token":{"type":"string"},"order_token_expires_at":{"type":"string"},"rail":{"type":"string"},"amount_cents":{"type":"integer"},"payment_reference":{"type":"string"},"redelivery":{"type":"boolean"}}},"item":{"$ref":"#/components/schemas/Quote"},"payload":{"type":"object","properties":{"subscription_id":{"type":"string"},"count":{"type":"integer"},"state":{"type":"string"},"county":{"type":"string"},"custom":{"type":"string"},"jobid":{"type":"string"},"records":{"type":"array","items":{"type":"object"},"description":"Records in the LeadFuzion webhook payload shape"}}}}},"Problem":{"type":"object","required":["type","title","status"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"quote":{"$ref":"#/components/schemas/Quote"}}},"PurchaseFailure":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean"},"detail":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"reason":{"type":"string"}}},"Health":{"type":"object","properties":{"ok":{"type":"boolean"},"payments":{"type":"string"},"rails":{"type":"array","items":{"type":"string"}},"data_adapter":{"type":"string"},"version":{"type":"string"}}}}}}
