Skip to main content
These endpoints serve what companies file with their own markets — TWSE/TPEx in Taiwan, DART in Korea, TDnet in Japan — plus the SEC Form 20-F content of foreign private issuers. Local feeds and SEC filings are different datasets: a Taiwanese issuer that also files with the SEC appears in both, under different rules. In the dashboard’s dataset list the cross-market feed appears as Real-time international disclosures (get_international_disclosure via MCP). Taiwan, Korea, and Form 20-F routes require the Professional plan; the cross-market disclosures route requires Fund. Every call costs 1 credit. Responses use the { data, next_cursor, coverage } envelope with cursor pagination — pass next_cursor back unchanged as cursor; see Pagination. Errors use the standard error envelope; see Errors.

Taiwan

Coverage: ~2,330 Taiwan-listed companies (TWSE and TPEx). The company_id path segment accepts a Taiwan security code (2330), a suffixed symbol (2330.TW, 6976.TWO), an ISIN, or a cmp_… id.

GET /v1/companies/{company_id}/tw/financials

Quarterly income statements and balance sheets as filed to TWSE/TPEx, from 2024 Q1 (period end 2024-03-31). Taiwan files no cash-flow statement in this feed. Plan: Professional · Credits: 1 per call
string
income or balance.
integer
Fiscal year, e.g. 2025.
integer
TWSE season 1–4. Season 2 is the first half as filed, season 4 the full year.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000, default 40.
TWSE files income statements cumulative from the start of the fiscal year: season 2 is the first half, season 4 the full year. Every income line comes back as both *_ytd (as filed) and *_q (single quarter), with quarter_basis saying which reading *_q is. A null *_q means the quarter could not be established — it is not a zero.
Amounts are TWD thousands. Monthly revenue is the parent-company filing while the quarterly statements are consolidated, so the two do not reconcile exactly.

GET /v1/companies/{company_id}/tw/monthly-revenue

Monthly revenue as filed, complete from 2013-01. Newest month first. Plan: Professional · Credits: 1 per call
string
Inclusive lower bound, YYYY-MM.
string
Inclusive upper bound, YYYY-MM.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000, default 100.

GET /v1/companies/{company_id}/tw/foreign-ownership

Daily foreign-investor shareholding, one row per trading day, from 2024-01-02. Newest first. Plan: Professional · Credits: 1 per call
string
Inclusive lower bound, YYYY-MM-DD.
string
Inclusive upper bound, YYYY-MM-DD.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000, default 100.
Percentages are on a 0–100 scale. foreign_limit_pct is the regulatory ceiling for the security — usually 100, occasionally not — which is a different fact from how much is actually held. These are share counts, not money.

Korea (DART)

Coverage: Korean-listed companies from 2022 onward, still backfilling newest-year and largest-cap first — a missing older year for a small company means not-yet-loaded. The company_id path segment accepts a DART corp code, a symbol (005930.KS), an ISIN, or a cmp_… id.

GET /v1/companies/{company_id}/kr/financials

Account-level financial facts as filed to DART. Plan: Professional · Credits: 1 per call
integer
required
Business year, 2000–2100. Required — omitting it is a 400, not a default.
string
annual, half, q1, or q3. There is no Q2 report — half is the first-half filing.
string
consolidated or separate.
string
One of balance_sheet, income, comprehensive_income, cash_flow, changes_in_equity.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000, default 200.
These are the filer’s own accounts, not a normalised statement: there is no revenue field, because which Korean account is revenue differs by filer and industry. Match on account_id (e.g. ifrs-full_CostOfSales), not on the Korean account_nm text. basis matters: consolidated and separate are both filed, and mixing them in one comparison double-counts.

Report sections

Five sibling routes serve the periodic report’s sections. Each shares the same query shape: an optional section-specific kind, year, cursor, and limit (1–1000); the ownership route additionally accepts date_gte / date_lte (YYYY-MM-DD), because ownership is event-based rather than annual. Plan: Professional · Credits: 1 per call each
Some rows in the report sections are the filer’s own subtotal lines (계 / 합계) rather than individual entries — filter before summing.

GET /v1/companies/{company_id}/disclosures

What a Taiwanese, Korean, or Japanese company told its own market — earnings releases, M&A, buybacks, board decisions, officer changes, large-holding reports — one row per announcement, newest first, across all three markets in one call. The response’s markets_searched lists which markets were actually consulted: an empty list means the company lists in none of the three, which is a different fact from finding nothing in them. Plan: Fund · Credits: 1 per call
string
Narrow to one of taiwan, korea, japan. Omitted means every market the company files in.
string
Japan’s own classification (earnings_flash, ma, buyback_progress, …). Only Japan classifies its rows — filtering on a category excludes Taiwan and Korea entirely rather than mixing unfiltered rows into a filtered result.
string
Inclusive lower bound, YYYY-MM-DD.
string
Inclusive upper bound, YYYY-MM-DD.
boolean
default:"false"
Taiwan only: include the full announcement text (the TWSE 說明 field). Off by default; description_chars is always returned so you can see there is text to ask for.
string
next_cursor from the previous page, passed back unchanged.
integer
1–200, default 50.
Very short history, per market: Japan from 2026-06-15, Taiwan from 2026-07-22, Korea from 2026-07-28. This is a recent-only feed, not an archive — an empty result for an older date is the feed’s start date, not a quiet company.
Row fields vary by market, and null fields are omitted. Only Japan links the document as a PDF and XBRL; Korea links the original DART filing (filing_url); Taiwan carries the announcement text itself, returned with include_text=true. Korea’s filer is whoever filed — often not the company the announcement is about (a large-holdings report about Samsung Electronics is filed by Samsung C&T). Titles and text are in Traditional Chinese, Korean, and Japanese as published; nothing is translated.

Form 20-F

The notes, as-reported segments, disclosed ownership, and raw XBRL facts from a foreign private issuer’s annual SEC filing. Coverage: 321 filers, annual from 2014-12 — a 20-F has no quarterly equivalent. The company_id path segment accepts a ticker, CIK, ISIN, or cmp_… id. Plan: Professional · Credits: 1 per call each
The three financial statements are not on these routes: /v1/financials serves covered 20-F filers through an annual-only fallback — quarterly and ttm return nothing for them.

GET /v1/companies/{company_id}/20f/profile

The filing profile — issuer identity and latest 20-F. No query parameters. Response fields include company_id, cik, ticker, name, country, market_cap, and form.

GET /v1/companies/{company_id}/20f/notes

The notes index — titles, tags, lengths — with the text opt-in. Find a note by title, not by concept name: nobody should have to guess DisclosureOfLeasesExplanatory.
string
One filing, e.g. 0001234567-26-000123.
string
IFRS or company concept, with or without its taxonomy prefix.
string
Substring of the human-readable note title, at least 2 characters.
boolean
default:"false"
Include the note text. Off by default — the index is how a caller finds the note worth reading.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000.
Rows carry company_id, id, cik, accession, note_tag, note_title, and — with include_text=true — the note text.

GET /v1/companies/{company_id}/20f/segments

As-reported segment disclosures.
string
e.g. geographic or business.
string
e.g. revenue, assets.
integer
1990–2100.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000.
Rows carry company_id, id, cik, accession, dimension, segment_path, segment_name, and depth, plus the reported values.

GET /v1/companies/{company_id}/20f/ownership

Ownership as disclosed in the filing.
string
One filing.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000.
Rows carry company_id, id, cik, accession, holder_name, shares, ownership_pct, and voting_pct.

GET /v1/companies/{company_id}/20f/xbrl-facts

The raw XBRL facts. At least one of tag, accession, or period_end is required — an unfiltered dump of every fact is a 400.
string
An XBRL concept tag.
string
One filing.
string
YYYY-MM-DD.
string
next_cursor from the previous page, passed back unchanged.
integer
1–1000.
Rows carry company_id, id, cik, accession, taxonomy, tag, value, unit, and decimals, plus period fields.