API & MCP
Two shells over one service layer.
Coverage
…
No key, no sign-up
Everything below is open. There is rate limiting, and the headers tell you when you hit it.
REST
| Endpoint | What it answers |
|---|---|
GET /v1/coverage | What is in scope and what the limits are. Call this first. |
GET /v1/filings | Recent filings of one company: title, date, source PDF link, and any extraction. |
GET /v1/filings/{aann_}/parsed | One filing already parsed: normalised text and tables as cells. Recent filings only. |
GET /v1/entity_state | Folded state for a company (code+market) or a shareholder (aent_). |
GET /v1/events/{aevt} | One event plus its whole timeline, in a single call. |
GET /v1/whats_new | What changed recently, with a cursor. |
GET /v1/scan | Cross-company scan by filing type and date range. |
The machine-readable contract lives at /openapi.json; an interactive browser is at /docs.
# Recent filings of one company, each with its source PDF link curl "https://astockevent.com/v1/filings?code=000029&market=SZ" # Folded state for one company curl "https://astockevent.com/v1/entity_state?code=300750&market=SZ" # Everything that changed in the last few days curl "https://astockevent.com/v1/whats_new?limit=20"
MCP
Streamable HTTP, no stdio wrapper needed. Point any MCP client at the URL below; cloud-hosted agents can connect directly.
https://astockevent.com/mcp/
| Tool | What it answers |
|---|---|
list_coverage | Scope and limits. Call this before concluding data is missing. |
list_company_filings | Recent filings of one company, with source links and any extraction. |
get_filing_parsed | One filing's normalised text and tables. Takes the aann_ from list_company_filings. |
get_entity_state | Folded state for a company or a shareholder. |
get_event_with_context | One event plus its whole timeline. |
whats_new | Recent changes, cursor-paged. |
scan_recent_events | Cross-company scan by type and date. |
How to check us
Every event carries source_pdf_url — the exchange's own PDF. We do not ask you to trust the extraction; we hand you the original so you can look.
Empty is not the same as unknown
A company with no filings of a type comes back as covered-with-nothing-found, not as an empty result. A security we do not carry comes back as not-found with a reason. Telling those two apart is the point of this service.