{"openapi":"3.1.0","info":{"title":"Struckoff agent API","version":"1.0.0","description":"Public pricing and human scan/checkout handoffs. Scan is a demo stub; checkout is a human portal link, not a Stripe session or purchase. Status requires a scoped one-hour token created by a signed-in human in Account. No email is sent by these endpoints. Human payment and signed consent are required before filing."},"servers":[{"url":"https://struckoff.hatz.xyz"}],"components":{"securitySchemes":{"statusToken":{"type":"http","scheme":"bearer","description":"Read-only token from /app/account. Expires in one hour and can be revoked. Never supply a user id."}}},"paths":{"/api/agent/pricing":{"get":{"operationId":"get_pricing","summary":"Get USD prices and live checkout configuration mode","responses":{"200":{"description":"One-time placeholder price, annual price, covered site count and checkout mode","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/agent/scan":{"post":{"operationId":"start_scan","summary":"Prepare a free scan handoff, demo stub","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Human portal URL; no scan is executed. Likely-listed results are simulated.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid JSON object or unexpected arguments","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/agent/checkout":{"post":{"operationId":"create_checkout_link","summary":"Prepare a human checkout link; never charges or grants consent","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product":{"type":"string","enum":["one_time","annual"]}},"required":["product"],"additionalProperties":false}}}},"responses":{"200":{"description":"Billing link with product preference and current checkout mode. Human selects product and confirms payment. Stub mode charges nothing.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid product or JSON object","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/agent/status":{"get":{"operationId":"get_removal_status","summary":"Get only the token owner's recorded per-site removal statuses","security":[{"statusToken":[]}],"responses":{"200":{"description":"Items with broker_slug, name, status and updated_at. Empty items means no recorded work, not no exposure.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Missing, invalid, expired or revoked token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}