{"openapi":"3.1.0","info":{"title":"Ask Surf x402 Server","description":"Surf is an AI intelligence platform for digital assets that delivers accurate, trusted insights through a simple chat interface.","version":"1.0.0"},"paths":{"/":{"get":{"summary":"Root","description":"Root path - Welcome page with auto-redirect to asksurf.ai","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/.well-known/x402/discovery":{"get":{"summary":"Discovery","description":"x402 Discovery Endpoint\n\nReturns service metadata, available tools, and payment configuration\nfor x402 clients and x402scan integration","operationId":"discovery__well_known_x402_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","description":"Health check endpoint","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/favicon.ico":{"get":{"summary":"Favicon","description":"Serve favicon from root directory","operationId":"favicon_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/thumb.png":{"get":{"summary":"Thumbnail","description":"Serve thumbnail image for social media sharing","operationId":"thumbnail_thumb_png_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402/tools/ask_surf_chat":{"post":{"tags":["x402-tools"],"summary":"Ask Surf Chat","description":"Ask-surf surf-ask chat tool (non-streaming to client).\n\nPrice: $0.2 USDC","operationId":"ask_surf_chat_x402_tools_ask_surf_chat_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/tools/ask_surf_research":{"post":{"tags":["x402-tools"],"summary":"Ask Surf Research","description":"Ask-surf surf-research tool submission endpoint.\n\nReturns immediately with a job_id; actual Ask-surf streaming happens in the\nbackground and must be retrieved via ask_surf_research_status.","operationId":"ask_surf_research_x402_tools_ask_surf_research_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/tools/ask_surf_research_status":{"post":{"tags":["x402-tools"],"summary":"Ask Surf Research Status","description":"Poll Ask-surf research job status using the job_id returned by ask_surf_research.\n\nThis is a FREE endpoint (no x402 payment required) - users only pay once when \nsubmitting the research job, then can poll status as many times as needed.","operationId":"ask_surf_research_status_x402_tools_ask_surf_research_status_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfJobStatusRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/tools/ask_surf_chat":{"post":{"tags":["solana-x402-tools"],"summary":"Ask Surf Chat Svm","description":"Ask-surf surf-ask chat tool paid via Solana USDC (exact-svm).","operationId":"ask_surf_chat_svm_x402_solana_tools_ask_surf_chat_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/tools/ask_surf_research":{"post":{"tags":["solana-x402-tools"],"summary":"Ask Surf Research Svm","description":"Ask-surf surf-research tool paid via Solana USDC (exact-svm).","operationId":"ask_surf_research_svm_x402_solana_tools_ask_surf_research_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/tools/ask_surf_research_status":{"post":{"tags":["solana-x402-tools"],"summary":"Ask Surf Research Status Svm","description":"Poll Ask-surf research job status (Solana prefix; free).\nDelegates to the shared job store.","operationId":"ask_surf_research_status_svm_x402_solana_tools_ask_surf_research_status_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfJobStatusRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/solana/tools/.well-known/x402/discovery":{"get":{"tags":["solana-x402-tools"],"summary":"Solana Discovery","description":"Solana-specific discovery endpoint for x402 clients.","operationId":"solana_discovery_x402_solana_tools__well_known_x402_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402/xrpl/tools/ask_surf_chat":{"post":{"tags":["xrpl-x402-tools"],"summary":"Ask Surf Chat Xrpl","description":"Ask-surf surf-ask chat tool paid via XRPL XRP.","operationId":"ask_surf_chat_xrpl_x402_xrpl_tools_ask_surf_chat_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/xrpl/tools/ask_surf_research":{"post":{"tags":["xrpl-x402-tools"],"summary":"Ask Surf Research Xrpl","description":"Ask-surf surf-research tool paid via XRPL XRP.","operationId":"ask_surf_research_xrpl_x402_xrpl_tools_ask_surf_research_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfQueryRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/xrpl/tools/ask_surf_research_status":{"post":{"tags":["xrpl-x402-tools"],"summary":"Ask Surf Research Status Xrpl","description":"Poll Ask-surf research job status (XRPL prefix; free).\nDelegates to the shared job store.","operationId":"ask_surf_research_status_xrpl_x402_xrpl_tools_ask_surf_research_status_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AskSurfJobStatusRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/xrpl/tools/.well-known/x402/discovery":{"get":{"tags":["xrpl-x402-tools"],"summary":"Xrpl Discovery","description":"XRPL-specific discovery endpoint for x402 clients.","operationId":"xrpl_discovery_x402_xrpl_tools__well_known_x402_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AskSurfJobStatusRequest":{"properties":{"job_id":{"type":"string","title":"Job Id","description":"Job identifier returned by ask_surf_research submit call"}},"type":"object","required":["job_id"],"title":"AskSurfJobStatusRequest","description":"Request payload for polling Ask-surf research job status."},"AskSurfQueryRequest":{"properties":{"user_query":{"type":"string","title":"User Query","description":"Single user query; server assembles OpenAI-style messages"}},"type":"object","required":["user_query"],"title":"AskSurfQueryRequest","description":"Stateless Ask-surf query payload."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}