{"openapi":"3.1.0","info":{"title":"QuickPoll","version":"0.1.0"},"paths":{"/stats":{"get":{"summary":"Stats","operationId":"stats_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stats Stats Get"}}}}}}},"/poll/request":{"post":{"summary":"Create Poll","description":"Create and launch a poll. Requires x402 payment (handled by middleware).","operationId":"create_poll_poll_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PollRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Poll Poll Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/poll/vote/{poll_id}":{"post":{"summary":"Record Vote","description":"Record a vote on a poll option. Called by the landing page JS.","operationId":"record_vote_poll_vote__poll_id__post","parameters":[{"name":"poll_id","in":"path","required":true,"schema":{"type":"string","title":"Poll Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Record Vote Poll Vote  Poll Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/poll/{poll_id}":{"get":{"summary":"Serve Poll","description":"Serve the HTML poll landing page.","operationId":"serve_poll_poll__poll_id__get","parameters":[{"name":"poll_id","in":"path","required":true,"schema":{"type":"string","title":"Poll Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/poll/results/{poll_id}":{"get":{"summary":"Get Results","description":"Return poll results with statistical analysis.","operationId":"get_results_poll_results__poll_id__get","parameters":[{"name":"poll_id","in":"path","required":true,"schema":{"type":"string","title":"Poll Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Results Poll Results  Poll Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/poll/research":{"post":{"summary":"Research","description":"Run a research query against curated survey datasets. Requires x402 payment ($0.25).\n\nSearches Eurobarometer, Gallup World Poll, and World Bank data,\nthen synthesizes findings with citations via DeepSeek.","operationId":"research_poll_research_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Research Poll Research Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/x402.json":{"get":{"summary":"X402 Manifest","description":"Standard x402 service discovery manifest.","operationId":"x402_manifest__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response X402 Manifest  Well Known X402 Json Get"}}}}}}},"/about":{"get":{"summary":"About","operationId":"about_about_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response About About Get"}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Root  Get"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/quickpoll/feedback":{"get":{"summary":"Get Feedback","description":"Return the 50 most recent feedback entries.","operationId":"get_feedback_quickpoll_feedback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get Feedback Quickpoll Feedback Get"}}}}}},"post":{"summary":"Submit Feedback","description":"Submit feedback for a previous response. No payment required.","operationId":"submit_feedback_quickpoll_feedback_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Submit Feedback Quickpoll Feedback Post"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"NetworkType":{"type":"string","enum":["adexium"],"title":"NetworkType"},"PollRequest":{"properties":{"question":{"type":"string","maxLength":200,"minLength":10,"title":"Question"},"options":{"items":{"type":"string"},"type":"array","maxItems":4,"minItems":2,"title":"Options"},"budget_usdc":{"type":"number","maximum":50.0,"minimum":1.0,"title":"Budget Usdc","default":2.0},"network":{"$ref":"#/components/schemas/NetworkType","default":"adexium"},"targeting":{"$ref":"#/components/schemas/Targeting"}},"type":"object","required":["question","options"],"title":"PollRequest"},"ResearchRequest":{"properties":{"query":{"type":"string","maxLength":500,"minLength":5,"title":"Query","description":"Research query, e.g. 'remote work adoption in Germany'"},"country":{"anyOf":[{"type":"string","maxLength":3},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2 country code (e.g. DE, FR, US). Omit for global/aggregate data."}},"type":"object","required":["query"],"title":"ResearchRequest"},"Targeting":{"properties":{"geo":{"items":{"type":"string"},"type":"array","title":"Geo"},"device":{"type":"string","title":"Device","default":"all"}},"type":"object","title":"Targeting"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}