API and MCP
JSON over HTTPS. Names are in English where the company registered one, with the Japanese original beside it in *_ja fields. Examples below use this site's own address (https://japanstake.com) and are based on real responses captured on 2026-10-31 and reshaped to the current field names on 2026-11-01, shortened: arrays are cut to one item and long strings are clipped.
Machine-readable spec: /openapi.json.
Quick start
- Sign in with your email. We send a one-time link.
- Choose a plan (Starter $9 or Pro $39 a month; both include everything). A key without a plan gets HTTP 402.
- On the dashboard, choose Create key and copy it. It is shown once.
- Call the API.
export JAPANSTAKE_KEY=jsk_your_key
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203"
Response
{
"edinet_code": "E02144",
"ticker": "7203",
"corporate_number": "1180301018771",
"name_ja": "トヨタ自動車株式会社",
"name_en": "TOYOTA MOTOR CORPORATION",
"listed": 1,
"industry_ja": "輸送用機器",
"fiscal_year_end": "3月31日",
"capital_million_jpy": 635401,
"filer_type": "内国法人・組合",
"figi": "BBG000BCM915",
"composite_figi": "BBG000BCM915",
"share_class_figi": "BBG001S6BGT4",
"industry_en": "Transportation Equipment",
"fiscal_year_end_en": "Mar 31",
"yahoo_symbol": "7203.T",
"bloomberg_ticker": "7203 JP",
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Every plan is paid and includes every endpoint below; plans differ only in request limits. Billing is off until launch, so no plan can be bought yet; signup works only on a local test deployment for now.
JapanStake provides reference data from public filings. It distributes no share prices and gives no investment advice, and nothing in the API or this documentation is a recommendation to buy or sell any security. Values we derive (events, net shares, percentiles, matches, interest examples) are labelled as ours, and prices in trade tables are filed prices, not market prices.
Authentication
Send Authorization: Bearer <key> or X-API-Key: <key>. Keys start with jsk_. An account has one active key, and replacing it on the dashboard revokes the old one at once. We keep only a hash, so a lost key has to be replaced. CORS is open on /v1, but keep keys out of public web pages.
Conventions
- Tickers are Tokyo codes of four characters, such as
7203or648A. Find them with/v1/companies/search. - Filers are identified by EDINET code, such as
E24872; find them infiler_edinet_code. - Amounts are in yen unless the field name says otherwise:
_mn_jpymeans millions of yen and_usdmeans U.S. dollars. Ratios ending_pctare percent. - Dates are
YYYY-MM-DD. - Sources: filing records carry
doc_id,source_doc_idorsource_url, and responses carryattribution. Keep the attribution when you show data to others. - Quotes are excerpts of at most 200 characters, cut with an ellipsis, with personal names removed where we recognise them.
- Language: summaries and field names are in English. Purposes, shareholder names and quoted sentences stay in Japanese as filed.
Errors
Errors are JSON with one field: {"error": "message"}.
| Status | Meaning | Example message |
|---|---|---|
| 400 | A parameter or body is invalid. | Query parameter 'q' is required. |
| 401 | The key is missing, wrong or revoked. | Missing API key. Send 'Authorization: Bearer <key>'. |
| 402 | The account has no paid plan. | A paid plan is required. Plans start at $9 a month; see /pricing on our website. |
| 404 | No record for that ticker or ID, or no such endpoint. | No listed company for that ticker. |
| 429 | A limit was hit: either the monthly quota or the per-minute limit. The message says which. | Monthly quota of 20000 requests exceeded. or Rate limit of 60 requests per minute exceeded. Retry after 30 seconds. |
| 500 | Something failed on our side. Retry with a delay. | Internal error. Please retry; if it persists, contact support. |
Rate limits
| Plan | Requests a month | 5% filings history |
|---|---|---|
| Starter (planned) | 20,000 | All on file |
| Pro (planned) | 300,000 | All on file |
The limit is per calendar month and resets on the 1st at 00:00 UTC. Per-minute limits are 60 on Starter and 600 on Pro, reported in the X-RateLimit-*-Minute headers; requests can briefly reach twice that across a minute boundary. Data responses carry X-Data-As-Of, and list endpoints accept format=csv. Every authenticated request counts, including ones that end in a 4xx error, and each MCP message counts as one, including initialize and tools/list. Successful responses carry X-Quota-Used and X-Quota-Limit.
MCP for AI agents
Remote MCP server over Streamable HTTP at https://japanstake.com/mcp, using the same key and quota as the API. Authentication is by header. OAuth 2.1 sign-in for Claude and ChatGPT connectors is built and switched on per deployment, but has not yet been tested with those connectors.
Claude Code
claude mcp add --transport http japanstake https://japanstake.com/mcp \
--header "Authorization: Bearer $JAPANSTAKE_KEY"
Claude Desktop
Add this to claude_desktop_config.json and restart the app. It runs the mcp-remote bridge, which needs Node.js.
{
"mcpServers": {
"japanstake": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://japanstake.com/mcp", "--header", "Authorization: Bearer jsk_your_key"]
}
}
}
Cursor
Add this to ~/.cursor/mcp.json, or .cursor/mcp.json in a project. Do not commit a file containing your key.
{
"mcpServers": {
"japanstake": {
"url": "https://japanstake.com/mcp",
"headers": { "Authorization": "Bearer jsk_your_key" }
}
}
}
Check the connection
curl -X POST "https://japanstake.com/mcp" \
-H "Authorization: Bearer $JAPANSTAKE_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Tools
Every tool is on every plan; plans differ only in request limits.
| Tool | Plan | Returns |
|---|---|---|
search_companies | All plans | Find companies by ticker or name |
get_company | All plans | Profile and identifiers |
get_financials | All plans | Key figures and statements |
get_company_details | All plans | Officer titles, workforce, shareholders, auditor |
get_company_segments | All plans | Segments from the latest annual report |
get_voting_results | All plans | Shareholder-meeting voting results |
get_tender_offers | All plans | Tender-offer filings and results |
get_ownership_events | All plans | Ownership-change events |
get_large_holdings | All plans | 5% filings |
get_earnings_releases | All plans | Half-year and quarterly results from EDINET |
get_indicators | All plans | Indicators for one company |
get_policy_uncertainty_index | All plans | Monthly index |
list_companies | All plans | All listed companies, paged |
list_sectors | All plans | Sectors with company counts |
get_companies_batch | All plans | Up to 50 company profiles; counts per ticker |
get_financials_batch | All plans | Up to 50 companies' figures; counts per ticker |
get_company_peers | All plans | Same sector, nearest revenue |
get_sector_benchmarks | All plans | Sector medians and quartiles |
get_my_usage | All plans | Your plan, usage and limits |
get_disclosed_credit_ratings | All plans | Ratings as stated in bond filings |
get_share_buybacks | All plans | Monthly share-buyback reports |
get_governance_filings | All plans | Internal-control conclusions and auditor changes |
get_cross_holding_trades | All plans | Trades by listed strategic holders |
get_investor | All plans | A filer's stakes and joint holders |
search_investor_groups | All plans | Find investor groups by name |
get_investor_group_portfolio | All plans | A group's holdings, entries and exits |
get_investor_group_changes | All plans | A group's ownership events, paged |
get_investor_group_overlap | All plans | Groups with stakes in the same companies |
get_company_ownership_timeline | All plans | A company's ownership events by date |
get_cross_holding_unwinding_trades | All plans | Strategic-holding cuts beside disclosed trades |
get_disclosed_trades | All plans | Trades listed in 5% reports |
get_cross_holdings | All plans | A company's cross-shareholdings |
get_cross_holding_unwinding | All plans | Largest sales of strategic shares |
sort_companies_by_metric | All plans | Companies in the order of one metric |
get_company_brief | All plans | One company from its filings, on one page |
screen_companies | All plans | Filter companies on filing figures |
get_us_fund_holdings | All plans | U.S. funds holding a stock |
Companies and financials
Identifiers, statements and governance from the latest annual securities report.
Find listed companies by ticker or by English or Japanese name.
q | Required. Ticker or name |
limit | Rows to return. Default 50, maximum 50 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/search?q=toyota&limit=1"
Example response
{
"data": [
{
"ticker": "3116",
"name_en": "TOYOTA BOSHOKU CORPORATION",
"name_ja": "トヨタ紡織株式会社",
"industry_ja": "輸送用機器",
"fiscal_year_end": "3月31日",
"corporate_number": "2180301014324",
"figi": "BBG000BBRS83",
"industry_en": "Transportation Equipment",
"fiscal_year_end_en": "Mar 31"
}
]
}Company profile: names, corporate number, industry, FIGI and common ticker symbols.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203"
Example response
{
"edinet_code": "E02144",
"ticker": "7203",
"corporate_number": "1180301018771",
"name_ja": "トヨタ自動車株式会社",
"name_en": "TOYOTA MOTOR CORPORATION",
"listed": 1,
"industry_ja": "輸送用機器",
"fiscal_year_end": "3月31日",
"capital_million_jpy": 635401,
"filer_type": "内国法人・組合",
"figi": "BBG000BCM915",
"composite_figi": "BBG000BCM915",
"share_class_figi": "BBG001S6BGT4",
"industry_en": "Transportation Equipment",
"fiscal_year_end_en": "Mar 31",
"yahoo_symbol": "7203.T",
"bloomberg_ticker": "7203 JP",
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Five years of key figures, plus current and prior income statement, balance sheet and cash flow. Statement items use XBRL element names.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/financials"
Example response
{
"ticker": "7203",
"accounting_standard": "IFRS",
"fiscal_year_end": "2026-03-31",
"key_metrics": [
{
"fiscal_year_end": "2026-03-31",
"basis": "consolidated",
"revenue": 50684952000000,
"ordinary_income": null,
"profit_before_tax": 5152996000000,
"net_income": 3848098000000,
"total_assets": 105522331000000,
"net_assets": 39918854000000,
"equity_ratio": 37.8,
"roe": 10.1,
"eps": 295.25,
"bps": 3062.82,
"dividend_per_share": 95,
"payout_ratio": 36.4,
"operating_cf": 5472920000000,
"investing_cf": -1520307000000,
"financing_cf": -536659000000,
"cash": 12659622000000,
"shares_issued": 15794987000,
"employees": 390927
}
],
"statements": {
"income_statement": {
"current": {
"CostOfSalesIFRS": 39141418000000,
"SellingGeneralAndAdministrativeExpensesIFRS": 4697524000000,
"OperatingProfitLossIFRS": 3766216000000
}
},
"balance_sheet": {
"current": {
"TradeAndOtherReceivablesCAIFRS": 3795986000000,
"OtherFinancialAssetsCAIFRS": 3982445000000,
"InventoriesCAIFRS": 5134996000000
}
},
"cash_flow": {
"current": {
"CashAndCashEquivalentsIFRS": 12659622000000,
"DepreciationAndAmortizationOpeCFIFRS": 2392519000000,
"ShareOfLossProfitOfInvestmentsAccountedForUsingEquityMethodOpeCFIFRS": -552742000000
}
}
},
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Officer titles (no names), workforce, major shareholders, shareholder mix, auditor and fees. Shareholders not recognisably organisations appear as individual holder.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/details"
Example response
{
"ticker": "7203",
"fiscal_year_end": "2026-03-31",
"english_name": "TOYOTA MOTOR CORPORATION",
"auditor": "PwC Japan有限責任監査法人",
"audit_fees_jpy": 1107000000,
"non_audit_fees_jpy": 3000000,
"capex_jpy": 2284125000000,
"total_shareholder_return_5y": 2.051,
"issued_shares": 15794987460,
"treasury_shares": 2761055400,
"female_officer_ratio_pct": 20,
"workforce": {
"employees": 73133,
"average_age": 40.5,
"average_tenure_years": 15.1,
"average_annual_salary_jpy": 10060464,
"female_manager_ratio_pct": 3.9
},
"major_shareholders": [
{
"shares": 1667971000,
"name": "日本マスタートラスト信託銀行㈱",
"ratio_pct": 12.8
}
],
"officers": [],
"shareholder_categories_pct": {
"national_and_local_governments": 0,
"financial_institutions": 27.01,
"financial_service_providers": 1.47,
"other_corporations": 20.29,
"foreigners_other_than_individuals": 22.79,
"foreign_individuals": 0.01,
"individuals_and_others": 28.43
},
"source_doc_id": "S100Y8NY",
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Segments stated in the latest annual securities report.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/segments"
Shareholder-meeting voting results for one company.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/voting"
Tender-offer notifications, results and target opinions for one company.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/5484/tender-offers"
Voting results across companies.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 500 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/voting?limit=1"
Tender-offer filings across companies.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 500 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/tender-offers?limit=1"
Metadata of EDINET filings. doc_type_code is EDINET's own code.
ticker | Filter by ticker |
doc_type | EDINET document type code |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/filings?ticker=7203&limit=1"
Example response
{
"data": [
{
"doc_id": "S100Z7HA",
"submit_datetime": "2026-10-13 11:43",
"edinet_code": "E02144",
"ticker": "7203",
"filer_name_ja": "トヨタ自動車株式会社",
"doc_type_code": "220",
"description_ja": "自己株券買付状況報告書(法24条の6第1項に基づくもの)",
"subject_edinet_code": null,
"issuer_edinet_code": null,
"parent_doc_id": null,
"withdrawn": 0,
"has_xbrl": 1,
"has_csv": 1,
"has_english": 0
}
],
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Ownership changes
Events derived from 5% rule filings, the filings themselves and the filers behind them. All plans: full history, and the response names the cut-off in history_limited_to.
Ownership-change events with one-line English summaries.
ticker | Filter by the company |
filer | Filter by filer EDINET code |
type | Comma-separated: new_stake, stake_increase, stake_decrease, exit_below_5pct, threshold_crossed, stated_may_make_proposals, purpose_changed, amendment |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/events?type=stated_may_make_proposals&limit=1"
Example response
{
"data": [
{
"type": "stated_may_make_proposals",
"summary_en": "GREEN8 Co.,Ltd. states it may make proposals to the management of Kyogoku unyu shoji Co., Ltd. (9073) (first filing).",
"doc_id": "S100Z968",
"submit_date": "2026-10-28",
"issuer_ticker": "9073",
"issuer_name_en": "Kyogoku unyu shoji Co., Ltd.",
"issuer_name_ja": "京極運輸商事株式会社",
"filer_edinet_code": "E33911",
"filer_name_en": "GREEN8 Co.,Ltd.",
"filer_name_ja": "グリーンエイト株式会社",
"holding_ratio_pct": 5.83,
"previous_ratio_pct": null,
"change_pt": null,
"purpose_tags": [
"may_make_proposals"
],
"source_url": "https://disclosure2dl.edinet-fsa.go.jp/searchdocument/pdf/S100Z968.pdf",
"event_id": "S100Z968:stated_may_make_proposals",
"stated_may_make_proposals": true
}
],
"history_limited_to": null,
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}The 5% filings: holders, purposes, change against the previous report.
ticker | Filter by the company |
filer | Filer EDINET code |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/large-holdings?ticker=4042&limit=1"
Example response
{
"data": [
{
"doc_id": "S100Z9GY",
"report_kind": "change_report",
"report_title_ja": "変更報告書No. 5",
"filer_name_ja": "シルチェスター・インターナショナル・インベスターズ・エルエルピー",
"filer_edinet_code": "E24872",
"obligation_date": "2026-10-21",
"submit_date": "2026-10-22",
"holders_count": 1,
"change_reason_ja": "株券等保有割合が前回の報告書提出時より1%以上増加したこと",
"issuer_name_ja": "東ソー株式会社",
"issuer_ticker": "4042",
"exchange_ja": "東京証券取引所(プライム市場)",
"holding_ratio_pct": 6.99,
"previous_ratio_pct": 5.98,
"ratio_change_pt": 1.01,
"purpose_ja": "提出者は、発行者に対し、企業価値及び株主価値の向上を目的として、資本政策の変更、資本効率の向上、事業構造の見直し、及びコーポレート・ガバナンスの強化等に関する提案(重要提案行為等に該当し得るものを含む。)を行う方針です。これらの提案に…",
"purpose_tags": [
"may_make_proposals"
],
"source_url": "https://disclosure2dl.edinet-fsa.go.jp/searchdocument/pdf/S100Z9GY.pdf",
"source": "EDINET (Financial Services Agency of Japan)",
"pdf_ratio_pct": 6.99,
"ratio_source": "xbrl",
"issuer_name_en": "TOSOH CORPORATION",
"issuer_edinet_code": "E00767",
"issuer_corporate_number": "5250001010002",
"filer_name_en": null,
"holders": [
{
"shares": 22724900,
"ratio_pct": 6.99,
"previous_ratio_pct": 5.98,
"own_funds_jpy": 0,
"borrowings_jpy": 0,
"holder_type_ja": "法人(英国法に基づく有限責任事業組合(LLP))",
"name": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"purpose_ja": "提出者は、発行者に対し、企業価値及び株主価値の向上を目的として、資本政策の変更、資本効率の向上、事業構造の見直し、及びコーポレート・ガバナンスの強化等に関する提案(重要提案行為等に該当し得るものを含む。)を行う方針です。これらの提案に…",
"holder_type": "corporation"
}
],
"filer_name_en_filing": "Silchester International Investors LLP"
}
],
"history_limited_to": null,
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}One filer's filings, its latest stake in each company, and joint holders.
limit | Rows to return. Default 50, maximum 500 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/investors/E24872?limit=1"
Example response
{
"filer_edinet_code": "E24872",
"filer_name_ja": "シルチェスター・インターナショナル・インベスターズ・エルエルピー",
"filer_name_en": "Silchester International Investors LLP",
"joint_holder_names": [
"シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)"
],
"latest_positions": [
{
"ticker": "4536",
"issuer_name_en": "SANTEN PHARMACEUTICAL CO.,LTD.",
"issuer_name_ja": "参天製薬株式会社",
"holding_ratio_pct": 10.25,
"as_of": "2026-10-26",
"doc_id": "S100Z9VH"
}
],
"filings": [
{
"doc_id": "S100Z9VH",
"report_kind": "change_report",
"report_title_ja": "変更報告書No. 6",
"filer_name_ja": "シルチェスター・インターナショナル・インベスターズ・エルエルピー",
"filer_edinet_code": "E24872",
"obligation_date": "2026-10-23",
"submit_date": "2026-10-26",
"holders_count": 1,
"change_reason_ja": "株券等保有割合が前回の報告書提出時より1%以上増加したこと",
"issuer_name_ja": "参天製薬株式会社",
"issuer_ticker": "4536",
"exchange_ja": "東京証券取引所(プライム市場)",
"holding_ratio_pct": 10.25,
"previous_ratio_pct": 9.23,
"ratio_change_pt": 1.02,
"purpose_ja": "提出者は、発行者に対し、企業価値及び株主価値の向上を目的として、資本政策の変更、資本効率の向上、事業構造の見直し、及びコーポレート・ガバナンスの強化等に関する提案(重要提案行為等に該当し得るものを含む。)を行う方針です。これらの提案に…",
"purpose_tags": [
"may_make_proposals"
],
"source_url": "https://disclosure2dl.edinet-fsa.go.jp/searchdocument/pdf/S100Z9VH.pdf",
"source": "EDINET (Financial Services Agency of Japan)",
"pdf_ratio_pct": 10.25,
"ratio_source": "xbrl",
"issuer_name_en": "SANTEN PHARMACEUTICAL CO.,LTD.",
"issuer_edinet_code": "E00949",
"issuer_corporate_number": "5120001051819",
"filer_name_en": null,
"holders": [
{
"shares": 33050300,
"ratio_pct": 10.25,
"previous_ratio_pct": 9.23,
"own_funds_jpy": 0,
"borrowings_jpy": 0,
"holder_type_ja": "法人(英国法に基づく有限責任事業組合(LLP))",
"name": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"purpose_ja": "提出者は、発行者に対し、企業価値及び株主価値の向上を目的として、資本政策の変更、資本効率の向上、事業構造の見直し、及びコーポレート・ガバナンスの強化等に関する提案(重要提案行為等に該当し得るものを含む。)を行う方針です。これらの提案に…",
"holder_type": "corporation"
}
],
"filer_name_en_filing": "Silchester International Investors LLP"
}
],
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Rows of the 60-day trade tables in 5% reports on this company, with net shares and the average disclosed price per holder. Unit prices are usually stated only for off-market trades; they are not market prices.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 1000 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/4042/trades?limit=1"
Example response
{
"by_holder": [
{
"filer_edinet_code": "E24872",
"holder": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"ticker": "4042",
"first_trade_date": "2026-09-02",
"last_trade_date": "2026-10-21",
"shares_bought": 3082900,
"shares_sold": 0,
"net_shares": 3082900,
"net_pct_of_outstanding": 0.92,
"disclosed_vwap_jpy": 2610.92,
"disclosed_low_jpy": 2577,
"disclosed_high_jpy": 2706
}
],
"data": [
{
"trade_date": "2026-10-21",
"ticker": "4042",
"filer_edinet_code": "E24872",
"holder": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"security_ja": "普通株式",
"shares": 191800,
"pct_of_outstanding": 0.06,
"venue": "on_market",
"side": "acquisition",
"unit_price_jpy": null,
"kind": "trade",
"common": true,
"note_ja": null,
"source_doc_id": "S100Z9GY",
"filing_date": "2026-10-22"
}
],
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}The same trade rows for one filer across all companies.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 1000 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/investors/E24872/trades?limit=1"
Example response
{
"by_holder": [
{
"filer_edinet_code": "E24872",
"holder": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"ticker": "4536",
"first_trade_date": "2026-09-02",
"last_trade_date": "2026-10-23",
"shares_bought": 676700,
"shares_sold": 0,
"net_shares": 676700,
"net_pct_of_outstanding": 0.2,
"disclosed_vwap_jpy": 1701.19,
"disclosed_low_jpy": 1652,
"disclosed_high_jpy": 1891
}
],
"data": [
{
"trade_date": "2026-10-23",
"ticker": "4536",
"filer_edinet_code": "E24872",
"holder": "シルチェスター・インターナショナル・インベスターズ・エルエルピー (Silchester International Investors LLP)",
"security_ja": "普通株式",
"shares": 109300,
"pct_of_outstanding": 0.03,
"venue": "on_market",
"side": "acquisition",
"unit_price_jpy": null,
"kind": "trade",
"common": true,
"note_ja": null,
"source_doc_id": "S100Z9VH",
"filing_date": "2026-10-26"
}
],
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Half-year and quarterly results
Results between annual reports, from half-year and quarterly securities reports on EDINET (source: edinet_half_year), each with its source filing. They arrive some weeks after the period ends and state no forecast.
Period results with year-on-year change as filed. Amounts in millions of yen.
limit | Rows to return. Default 40, maximum 40 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/earnings-releases?limit=1"
Example response
{
"ticker": "7203",
"data": [
{
"consolidated": true,
"results": {
"profit_before_tax_mn_jpy": 2478127,
"profit_before_tax_yoy_pct": -9.3,
"net_income_parent_mn_jpy": 1773426,
"net_income_parent_yoy_pct": -7.0
},
"ticker": "7203",
"fiscal_year_end_month": "2026-03",
"period": "H1",
"release_date": "2025-11-13",
"source": "edinet_half_year",
"source_doc_id": "S100WYZE",
"source_url": "https://disclosure2.edinet-fsa.go.jp/WZEK0040.aspx?S100WYZE",
"summary_en": "For the first half of the fiscal year to 2026-03: Profit before tax ¥2.48 trillion (-9.3% YoY), Net income ¥1.77 trillion (-7.0% YoY)."
}
]
}Latest period results across companies, newest filing first.
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 500 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/earnings-releases?limit=1"
Example response
{
"data": [
{
"name_en": "TOYOTA MOTOR CORPORATION",
"ticker": "7203",
"period": "H1",
"release_date": "2025-11-13",
"source": "edinet_half_year",
"source_doc_id": "S100WYZE",
"summary_en": "For the first half of the fiscal year to 2026-03: Profit before tax ¥2.48 trillion (-9.3% YoY), Net income ¥1.77 trillion (-7.0% YoY)."
}
]
}Cross-shareholdings
From the status of shareholdings section of annual reports. Names are matched to tickers by Japanese name, so renamed or delisted companies may stay unmatched. Share changes include stock splits.
Strategic stakes the company holds, listed companies holding it, mutual pairs and the year's sales and purchases.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/cross-holdings"
Example response
{
"ticker": "7203",
"summary": {
"ticker": "7203",
"fiscal_year_end": "2026-03-31",
"source_doc_id": "S100Y8NY",
"named_holdings": 37,
"named_holdings_linked_to_ticker": 27,
"named_book_value_jpy": 3237499000000,
"mutual_as_stated": 20,
"mutual_confirmed_both_reports": 18,
"named_reduced": 1,
"named_increased": 4,
"named_exited": 3,
"held_by_listed_companies": 114,
"listed_issues": 34,
"listed_carrying_amount_jpy": 3237498000000,
"listed_issues_increased": 6,
"listed_acquisition_cost_jpy": 93737000000,
"listed_issues_decreased": 5,
"listed_sale_amount_jpy": 238784000000
},
"holds": [
{
"ticker": "9433",
"name_en": "KDDI CORPORATION",
"holder": "reporting_company",
"kind": "specified",
"name_ja": "KDDI㈱",
"shares": 363365900,
"prior_shares": 203294600,
"shares_change_pct": 78.7,
"book_value_jpy": 989627000000,
"prior_book_value_jpy": 959347000000,
"held_back_as_stated": true,
"reciprocal_confirmed": true,
"purpose_ja": "自動車関連(情報)取引の維持・発展[株式数が変動した理由]株式分割、一部売却のため"
}
],
"held_by": [
{
"holder_ticker": "8306",
"holder_name_en": "Mitsubishi UFJ Financial Group, Inc.",
"holder_name_ja": "株式会社三菱UFJフィナンシャル・グループ",
"fiscal_year_end": "2026-03-31",
"source_doc_id": "S100YJQO",
"holder": "largest_holding_company",
"kind": "specified",
"name_ja": "トヨタ自動車株式会社",
"shares": 156830000,
"prior_shares": 156830000,
"shares_change_pct": 0,
"book_value_jpy": 495896000000,
"prior_book_value_jpy": 410267000000,
"held_back_as_stated": true,
"reciprocal_confirmed": true,
"purpose_ja": "発行会社グループとの、主に金融取引(預金・貸出・為替等)における総合的な取引関係維持・拡大のために保有"
}
]
}Largest stated sales of listed strategic shares in the latest fiscal year.
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/cross-holdings/unwinding?limit=1"
Example response
{
"data": [
{
"name_en": "DENSO CORPORATION",
"ticker": "6902",
"fiscal_year_end": "2026-03-31",
"source_doc_id": "S100Y9T1",
"named_holdings": 12,
"named_holdings_linked_to_ticker": 5,
"named_book_value_jpy": 83994000000,
"mutual_as_stated": 1,
"mutual_confirmed_both_reports": 1,
"named_reduced": 2,
"named_increased": 1,
"named_exited": 4,
"held_by_listed_companies": 16,
"listed_issues": 8,
"listed_carrying_amount_jpy": 83994000000,
"listed_issues_increased": 1,
"listed_acquisition_cost_jpy": 33250000000,
"listed_issues_decreased": 6,
"listed_sale_amount_jpy": 450945000000
}
],
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice."
}Indicators
Descriptive figures computed from filings. Percentiles are ranks among listed companies. Text indicators use a proprietary method. None of them is a rating.
Financial percentiles, policy-uncertainty counts, results wording balance, ownership activity counts and an interest example on reported debt.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/indicators"
Example response
{
"ticker": "7203",
"name_en_filing": "TOYOTA MOTOR CORPORATION",
"fiscal_year_end": "2026-03-31",
"source_doc_id": "S100Y8NY",
"policy_uncertainty": {
"policy_uncertainty_per_100": 0.47,
"policy_uncertainty_mentions": 2,
"policy_uncertainty_by_area": {
"trade": 2,
"fiscal_tax": 0,
"monetary": 0,
"regulation": 1,
"politics": 1
},
"uncertainty_per_100": 0.7,
"percentile": 31.6,
"note": "Share of disclosure text discussing policy-related uncertainty, by policy area; proprietary text method. Descriptive, not a forecast."
},
"rate_lens": {
"data_warning": null,
"shock_bp": 50,
"fiscal_year_end": "2026-03-31",
"interest_bearing_debt_jpy": 43205469000000,
"debt_lines": {
"InterestBearingLiabilitiesCLIFRS": 17581104000000,
"InterestBearingLiabilitiesNCLIFRS": 25624365000000
},
"cash_jpy": 12659622000000,
"extra_annual_interest_jpy": 216027345000,
"reported_interest_expense_jpy": null,
"extra_interest_pct_of_operating_cf": 3.95,
"implied_interest_rate_pct": null,
"note": "Arithmetic example: reported interest-bearing debt x 50 basis points for one year. It is not a forecast. Fixed-rate d…"
},
"attribution": "Source: EDINET (Financial Services Agency of Japan); processed by JapanStake. Not investment advice.",
"financial_percentiles": {
"metrics": {
"roe": {
"value": 10.1,
"percentile": 59.0
},
"ordinary_margin": {
"value": 0.1017,
"percentile": 68.7
},
"equity_ratio": {
"value": 37.8,
"percentile": 23.8
},
"revenue_growth": {
"value": 0.0551,
"percentile": 52.9
},
"net_income_growth": {
"value": -0.1924,
"percentile": 23.0
},
"ocf_to_assets": {
"value": 0.0519,
"percentile": 41.7
}
},
"mean_percentile": 44.8,
"mean_percentile_within_sector": 39.7,
"note": "Percentile rank among listed companies. mean_percentile averages the available metric percentiles; it is not a rating or evaluation."
},
"results_wording_balance": {
"balance": -0.1,
"words": {
"positive": 18,
"negative": 22
},
"note": "Balance of positive and negative results wording; proprietary text method. It counts wording only, does not interpret context and says nothing about results or prospects."
},
"ownership_activity": {
"filers_stating_may_make_proposals_365d": 0,
"new_5pct_holders_180d": 0,
"net_stake_change_pt_90d": 0,
"held_by_listed_companies_pct": 7.82,
"note": "…"
}
}Companies in the order of one figure or percentile. The order is arithmetic and is not a judgement.
metric | Required. roe, equity_ratio, mean_percentile, policy_uncertainty, new_5pct_holders_180d and others; an error lists them all |
order | desc (default) or asc |
sector | Sector slugs, comma-separated |
limit | Rows to return. Default 50, maximum 1000 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/indicators/sorted?metric=roe§or=banks&limit=1"
Japan corporate policy-uncertainty index by filing month, with the share of reports per policy area.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/indicators/policy-uncertainty"
Example response
{
"data": [
{
"month": "2025-11",
"reports": 150,
"mean_policy_uncertainty": 0.633,
"share_of_reports_mentioning": 0.607,
"share_by_area": {
"trade": 0.373,
"fiscal_tax": 0.06,
"monetary": 0.147,
"regulation": 0.107,
"politics": 0.44
}
}
]
}Company brief
One company from its own filings in one response, each part with its date.
A company's latest period results, indicator figures, ownership changes in the last 180 days, latest buyback report, governance filings, stated ratings and a 50 bp interest example on its reported debt. rate_lens is null where no comparable debt is reported, as for banks.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/brief"
Example response
{
"ticker": "7203",
"name_en_filing": "TOYOTA MOTOR CORPORATION",
"fiscal_year_end": "2026-03-31",
"latest_results": {
"period": "H1",
"release_date": "2025-11-13",
"source": "edinet_half_year",
"source_doc_id": "S100WYZE",
"summary_en": "For the first half of the fiscal year to 2026-03: Profit before tax ¥2.48 trillion (-9.3% YoY), Net income ¥1.77 trillion (-7.0% YoY)."
},
"indicators": {
"financial_percentiles": {
"mean_percentile": 44.8,
"mean_percentile_within_sector": 39.7,
"metrics": "…"
}
},
"ownership_events_180d": [],
"rate_lens": {
"shock_bp": 50,
"interest_bearing_debt_jpy": 43205469000000,
"extra_annual_interest_jpy": 216027345000,
"extra_interest_pct_of_operating_cf": 3.95
}
}Credit ratings stated in filings
Ratings as issuers state them in bond filings on EDINET, each with its source filing. A row says what the filing said on its date; agencies can change or withdraw a rating. We do not rate anything, and symbols are not comparable across agencies.
Agency, rating, date, bond and source filing for one company. Issuers without a recent rated bond return an empty list.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/3382/credit-ratings"
Monthly share-buyback reports: limits per board resolution, shares and yen acquired, and progress as arithmetic on filed numbers.
limit | Rows to return. Default 50, maximum 60 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7287/buybacks"
Internal-control conclusions and auditor changes as the company states them, with short Japanese quotes and the source filing.
limit | Rows to return. Default 40, maximum 40 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/governance"
The same filings across companies.
type | internal_control or auditor_change |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/governance?type=auditor_change&limit=1"
Trades and prices from 5% reports where the listed filer also names the stock among its strategic holdings. Why a holder traded is not stated.
ticker | The stock traded |
holder | The filer's ticker |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/cross-holdings/trades?limit=1"
Ratings stated in bond filings across issuers, including unlisted ones.
agency | Filter by agency |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/credit-ratings?limit=1"
U.S. funds
From SEC Form N-PORT data sets: each fund's latest report in the quarter, in U.S. dollars as filed.
Fund count, total shares and value, and the top 25 funds.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/us-funds"
Example response
{
"ticker": "7203",
"quarter": "2026q3",
"fund_count": 375,
"total_shares": 1089974907,
"total_value_usd": 20098840148.44,
"latest_report_date": "2026-07-31",
"top_funds": [
{
"fund": "VANGUARD TOTAL INTERNATIONAL STOCK INDEX FUND",
"registrant": "VANGUARD STAR FUNDS",
"series_id": "S000002932",
"shares": 157195113,
"value_usd": 2974867603.22,
"pct_of_fund": 0.460603185459,
"report_date": "2026-07-31",
"accession": "0000736054-26-000275"
}
],
"source": "SEC Form N-PORT data sets (U.S. Securities and Exchange Commission)",
"attribution": "Source: SEC Form N-PORT data sets (U.S. Securities and Exchange Commission); mapped to Tokyo tickers via OpenFIGI. Not investment advice."
}Status
Data freshness. Needs no key.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/status"
Example response
{
"ok": true,
"latest_large_holding_submit_date": "2026-10-29"
}Freshness, source age, last run and row count for every dataset. Needs no key.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/freshness"
Filing metadata newest first by when it was seen on EDINET's list.
ticker | Filter by ticker |
since | Earliest date, YYYY-MM-DD |
limit | Rows to return. Default 50, maximum 200 |
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/filings/latest?limit=1"
Latest refresh request and check status.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/companies/7203/refresh"
Queue a company re-check; joins an existing request when one is open.
Webhooks
Ownership changes pushed to your HTTPS URL. A delivery job runs every 5 minutes and sends events first seen after your webhook was created, filtered by type and ticker. Up to 5 webhooks per account, on every plan.
Subscribe a URL. Optional: types, tickers (up to 500), and replay_from, an ISO time to receive events first seen after it. The secret is returned once.
curl -X POST "https://japanstake.com/v1/webhooks" \
-H "Authorization: Bearer $JAPANSTAKE_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/hook", "types": ["stated_may_make_proposals"], "tickers": ["7203"]}'
Example response
{
"id": "wh_3233d32e87ea2021",
"url": "https://example.com/hook",
"types": [
"stated_may_make_proposals"
],
"tickers": [
"7203"
],
"secret": "whsec_…shown once…",
"created_at": "2026-10-31T08:36:04.246Z",
"delivering_events_first_seen_after": "2026-10-31T08:36:04.246Z"
}Your webhooks and their delivery status.
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
"https://japanstake.com/v1/webhooks"
Example response
{
"data": [
{
"id": "wh_3233d32e87ea2021",
"url": "https://example.com/hook",
"types": [
"stated_may_make_proposals"
],
"tickers": [
"7203"
],
"created_at": "2026-10-31T08:36:04.246Z",
"enabled": true,
"delivered_events": 0,
"consecutive_failures": 0,
"last_attempt_at": null,
"last_status": null,
"last_error": null
}
]
}Send the latest stored event to the webhook, marked test: true. Returns the status your URL answered with.
Delete a webhook. Returns 204.
Deliveries are POSTs with the body {"webhook_id": "wh_…", "events": [ … ]}, where each event has the shape of /v1/events. The host is resolved through DNS over HTTPS when registered and before every delivery; loopback, private, link-local, CGNAT and metadata addresses are refused. Redirects are not followed and count as failures. Answer with any 2xx within 10 seconds. A failed delivery is retried on each run, and the webhook pauses after 50 failures in a row, about four hours. Your dashboard shows the status.
Verifying signatures
Each delivery has X-JapanStake-Signature: t=<unix seconds>,v1=<hex>, an HMAC-SHA256 of t + "." + raw body with your secret.
// Node.js
const [t, v1] = req.headers["x-japanstake-signature"].split(",").map((p) => p.split("=")[1]);
const expected = crypto.createHmac("sha256", secret).update(t + "." + rawBody).digest("hex");
const valid = crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
# Python
t, v1 = (p.split("=")[1] for p in sig.split(","))
expected = hmac.new(secret.encode(), f"{t}.{raw_body}".encode(), "sha256").hexdigest()
valid = hmac.compare_digest(v1, expected)
Prices
We do not distribute market prices. Use figi, yahoo_symbol or bloomberg_ticker from /v1/companies/{ticker} to join your own source. The only unit prices served are those a filer states in the trade table of a 5% report.
Known limits
- 5% filings on file start in November 2021, and annual reports in June 2026. Each annual report carries five years of headline figures.
- A newly listed company may have a page with its 5% filings before its profile and financials exist.
- A company appears under financials once its annual report in that window has been processed.
- No TDnet feed and no earnings releases. Results between annual reports come from half-year and quarterly securities reports on EDINET.
- Individuals are not named in ownership data: 5% filers and holders who are not recognisably organisations appear as
individual filerorindividual holder. - Text indicators describe policy-uncertainty discussion and results wording; they do not interpret context or rate a company.
- Three filers tag thousands of yen as yen in their cross-shareholding tables; their summaries carry
data_warningand are left out of the largest-sales list. - Filings and our processing can both contain errors. Check important figures against the source filing.
Also in the OpenAPI spec: /v1/investor-groups /v1/investor-groups/{id} /v1/investor-groups/{id}/portfolio /v1/investor-groups/{id}/changes /v1/investor-groups/{id}/overlap /v1/companies/{ticker}/timeline /v1/companies/{ticker}/unwinding-trades /v1/batch/companies /v1/batch/financials /v1/usage /v1/companies /v1/sectors /v1/sectors/{sector}/benchmarks /v1/companies/{ticker}/peers /v1/screener