How to get full-text A-share (China) annual reports as Markdown — Kweichow Moutai example
If you're building RAG or LLM tooling on Chinese equities, you've hit the same wall:
annual reports are published as PDFs on cninfo.com.cn, and turning them into clean,
table-preserving Markdown is real work.
The hard way (what most people do)
- Query cninfo for the announcement PDF.
- Download it.
- Parse the PDF —
pymupdfgets you ~90% of the way, but scanned pages need OCR, and financial tables often come out mangled. - Clean headers/footers, restore tables, split chapters.
Doable, but it's a pipeline, not a task — and you rebuild it for every company.
The one-liner
DataSinking serves full-text annual / semi-annual / quarterly
reports from China (SSE/SZSE/BSE), Korea and Japan as clean Markdown, sourced from the
official disclosure platforms, with YAML frontmatter and preserved headings, paragraphs
and tables.
curl "https://api.datasink.ing/documents?symbol=600519.SS&with_content=1&apikey=YOUR_KEY"
That returns Kweichow Moutai's latest annual report as Markdown — no PDF, no OCR, no
cleanup. Symbols are FMP-style: 600519.SS (Moutai), 005930.KS (Samsung), 7203.T (Toyota).
Pull just one chapter (save tokens)
For RAG you rarely want the whole 300-page report:
# list the sections first
curl "https://api.datasink.ing/documents/12345/sections?apikey=YOUR_KEY"
# fetch only the MD&A
curl "https://api.datasink.ing/documents/12345?section=MD&A&apikey=YOUR_KEY"
Chapter-level access is the part most financial APIs miss — and it's the most useful
for feeding an LLM without blowing your context window.
Why full text beats structured indicators
Structured-finance APIs give you numbers (revenue, margins, ratios). They don't give you
the narrative — management discussion, risk factors, notes to the financial statements —
which is exactly what RAG apps and analyst-grade LLM workflows need to answer "why".
Start free
Get a free key by email (no signup): POST https://api.datasink.ing/free-key with
{"email": "you@example.com"}.
Top comments (0)