Skip to main content

DataSinking

PyPI version MCP server

Full-text financial reports across Asia, as clean Markdown.

DataSinking serves full-text financial reports — annual, semi-annual and quarterly — from China, Korea and Japan as clean Markdown, ready for LLM reading and RAG. Query by FMP-style symbol (600519.SS, 005930.KS, 7203.T) or filter by exchange, report period, or section — pull just the MD&A / risk section instead of the whole report. Reports are sourced from official disclosure platforms and parsed into structured Markdown with YAML frontmatter, preserved headings, paragraphs and tables.


MCP server

Ship DataSinking to any AI agent (Claude Desktop / Cursor / Codex / Windsurf) as an MCP server — 6 tools: list exchanges, list stocks, list reports, fetch a report, list sections, fetch one section (token-friendly for RAG).

pip install "datasinking[mcp]"
datasinking-mcp          # requires DATASINK_API_KEY (free at https://datasink.ing)

Or add to your client with command: datasinking-mcp. A remote streamable-HTTP endpoint is also live at https://api.datasink.ing/mcp. See mcp-server.md.

What this repo is

Examples, research and tutorials showing how to work with financial report data, including reproducing the presentation styles found in financial-report research papers.

datasinking/
├── examples/     # Example scripts: pull data from the API and analyze it
├── research/     # Research notes / blog posts (reproducing paper-style presentation)
├── datasinking/  # Python client + MCP server — pip install "datasinking[mcp]"
├── mcp-server.md # How to configure the MCP server (for AI agents: Claude / Cursor / Codex / DeepSeek)
├── llm-examples.md  # Ask an LLM — no code needed (8 end-to-end examples)
├── api-examples.md  # 7 examples × 3 interfaces (curl / Python / LLM)
└── README.md

Quick start

  1. Get an API key at datasink.ing
  2. One line (FMP-style ?apikey=):
curl "https://api.datasink.ing/documents?symbol=600519.SS&with_content=1&apikey=YOUR_KEY"

Or in Python:

pip install datasinking
from datasinking import DataSinking

ds = DataSinking("YOUR_KEY")
for r in ds.get_stock_reports("600519.SS", limit=3):
    print(r["report_period"], r["title"], len(r["content"]), "chars")

All five functions (curl / Python / LLM): api-examples.md.

Ask an LLM (no code)

Don't want to write code? Point any LLM at datasink.ing, give it your API key, and ask in plain language. See llm-examples.md for eight end-to-end examples — explore coverage, list a company's reports, and extract a figure with correct units.

Examples (examples/)

File What it does
01_quickstart.py The 5 core functions: list exchanges / stocks / reports / fetch a report / fetch a stock's reports
02_download_company.py Download a company's full reports to local Markdown files
03_download_exchange.py Download an entire exchange's reports (all stocks) to local Markdown files

Every example pulls from the live API and runs as-is.

03_download_exchange.py fetches every report on an exchange (e.g. all of Shenzhen — 150k+ documents). Free keys work too, but fall back to slow per-document fetching (1 req/s + shared daily quota); a paid (yearly) key is strongly recommended for full-exchange downloads.

Research (research/)

research/ hosts research notes and blog posts, each based on DataSinking data with the source cited. You can reproduce charts and presentations found in financial-report research papers, e.g.:

  • Long-term revenue / profit trends
  • Industry comparison and distribution
  • Time series of financial metrics

Start from research/TEMPLATE.md.

Data overview

Coverage China (SSE / SZSE / BSE) · Korea (KOSPI / KOSDAQ / KONEX) · Japan (TSE)
Document types annual / semiannual / q1 / q3 / amendment
Update frequency Daily — Korea/Japan via official DART/EDINET APIs (new filings within ~24h of publication)
Format Full-text Markdown (with YAML frontmatter)
API REST — GET /documents, batch download, with_content=1 for full text, ?section= + /sections for chapter-level access
Symbols FMP style: 600519.SS / 005930.KS / 7203.T
Auth ?apikey= query parameter (FMP style)

Data source

Reports are sourced from official regulatory disclosure platforms in each market and converted in-house to clean Markdown.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datasinking-0.2.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datasinking-0.2.2-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file datasinking-0.2.2.tar.gz.

File metadata

  • Download URL: datasinking-0.2.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for datasinking-0.2.2.tar.gz
Algorithm Hash digest
SHA256 26ca312e2f68f68cc0c55aa07fd93ee69cef66e85e5162b090b3d2a1f6861a4c
MD5 b08f9c4ce8b17810381b605d72615d05
BLAKE2b-256 7e06d526f3c867939c149f1e99e4e86cba659766264be08e54696d39c81d5427

See more details on using hashes here.

File details

Details for the file datasinking-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: datasinking-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for datasinking-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b4df26b103a6ac53d5f3bd2a1bb9e6726367d3fa67cb59d6e92163f1ae90c6ac
MD5 1e887b15dc323a0accba2a0de7dcfdd5
BLAKE2b-256 3b5900daec6d84fbbfa821cd7b545d8b8533990139c586f93a0f1c874db621c2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page