{"openapi":"3.1.0","info":{"title":"AgentStack Research API","version":"0.2.0","x-guidance":"Machine-payable market research data. Pay per call with USDC on Base via the x402 protocol (HTTP 402 challenge -> pay -> data). GET /v1/{market}/announcements/{ticker} returns parsed, taxonomy-classified company announcements; GET /v1/{market}/research/{ticker} returns a compound research bundle. Every market returns an identical JSON schema, so the same client code works for US (SEC/EDGAR) and AU (ASX, coming soon) tickers. GET /v1/pricing is free and lists every route, price, and availability. Responses are data and classifications only — never investment advice."},"paths":{"/healthz":{"get":{"tags":["meta"],"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/health":{"get":{"tags":["meta"],"summary":"Healthz","operationId":"healthz_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Health Get"}}}}}}},"/v1/pricing":{"get":{"tags":["meta"],"summary":"Pricing","description":"Machine-readable price sheet. Free. Agents read this before paying.","operationId":"pricing_v1_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pricing V1 Pricing Get"}}}}}}},"/v1/au/tickers":{"get":{"tags":["meta"],"summary":"Tickers","description":"Valid ticker symbols per market. Free — agents read this before paying.","operationId":"tickers_v1__market__tickers_get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tickers V1  Market  Tickers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/tickers":{"get":{"tags":["meta"],"summary":"Tickers","description":"Valid ticker symbols per market. Free — agents read this before paying.","operationId":"tickers_v1__market__tickers_get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tickers V1  Market  Tickers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/asx/announcements/{ticker}":{"get":{"tags":["legacy"],"summary":"Asx Announcements Legacy","description":"Deprecated alias for /v1/au/announcements/{ticker}.","operationId":"asx_announcements_legacy_v1_asx_announcements__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Asx Announcements Legacy V1 Asx Announcements  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Market coming soon. No payment was requested or taken."}}}},"/v1/research/{ticker}":{"get":{"tags":["legacy"],"summary":"Research Legacy","description":"Deprecated alias for /v1/au/research/{ticker}.","operationId":"research_legacy_v1_research__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Research Legacy V1 Research  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Market coming soon. No payment was requested or taken."}}}},"/v1/au/announcements/{ticker}":{"get":{"tags":["atomic"],"summary":"Announcements","description":"Parsed, taxonomy-classified announcements for one ticker. Atomic call.","operationId":"announcements_v1__market__announcements__ticker__get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}},{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only announcements dated on/after this ISO date (YYYY-MM-DD) — cheap daily polling.","title":"Since"},"description":"Only announcements dated on/after this ISO date (YYYY-MM-DD) — cheap daily polling."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Announcements V1  Market  Announcements  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Market coming soon. No payment was requested or taken."}}}},"/v1/us/announcements/{ticker}":{"get":{"tags":["atomic"],"summary":"Announcements","description":"Parsed, taxonomy-classified announcements for one ticker. Atomic call.","operationId":"announcements_v1__market__announcements__ticker__get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}},{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only announcements dated on/after this ISO date (YYYY-MM-DD) — cheap daily polling.","title":"Since"},"description":"Only announcements dated on/after this ISO date (YYYY-MM-DD) — cheap daily polling."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Announcements V1  Market  Announcements  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/v1/au/research/{ticker}":{"get":{"tags":["compound"],"summary":"Research","description":"Compound research bundle: announcements + extracted figures + summary.\n\nThis is the high-margin route. One paid call replaces an agent's whole\nfan-out (price feed + filings + parsing), which is why it can carry a\n25-50x atomic price.","operationId":"research_v1__market__research__ticker__get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}},{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Research V1  Market  Research  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Market coming soon. No payment was requested or taken."}}}},"/v1/us/research/{ticker}":{"get":{"tags":["compound"],"summary":"Research","description":"Compound research bundle: announcements + extracted figures + summary.\n\nThis is the high-margin route. One paid call replaces an agent's whole\nfan-out (price feed + filings + parsing), which is why it can carry a\n25-50x atomic price.","operationId":"research_v1__market__research__ticker__get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}},{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Research V1  Market  Research  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"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"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}