JapanStake
Documentation

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

  1. Sign in with your email. We send a one-time link.
  2. Choose a plan (Starter $9 or Pro $39 a month; both include everything). A key without a plan gets HTTP 402.
  3. On the dashboard, choose Create key and copy it. It is shown once.
  4. 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 7203 or 648A. Find them with /v1/companies/search.
  • Filers are identified by EDINET code, such as E24872; find them in filer_edinet_code.
  • Amounts are in yen unless the field name says otherwise: _mn_jpy means millions of yen and _usd means U.S. dollars. Ratios ending _pct are percent.
  • Dates are YYYY-MM-DD.
  • Sources: filing records carry doc_id, source_doc_id or source_url, and responses carry attribution. 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"}.

StatusMeaningExample message
400A parameter or body is invalid.Query parameter 'q' is required.
401The key is missing, wrong or revoked.Missing API key. Send 'Authorization: Bearer <key>'.
402The account has no paid plan.A paid plan is required. Plans start at $9 a month; see /pricing on our website.
404No record for that ticker or ID, or no such endpoint.No listed company for that ticker.
429A 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.
500Something failed on our side. Retry with a delay.Internal error. Please retry; if it persists, contact support.

Rate limits

PlanRequests a month5% filings history
Starter (planned)20,000All on file
Pro (planned)300,000All 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.

ToolPlanReturns
search_companiesAll plansFind companies by ticker or name
get_companyAll plansProfile and identifiers
get_financialsAll plansKey figures and statements
get_company_detailsAll plansOfficer titles, workforce, shareholders, auditor
get_company_segmentsAll plansSegments from the latest annual report
get_voting_resultsAll plansShareholder-meeting voting results
get_tender_offersAll plansTender-offer filings and results
get_ownership_eventsAll plansOwnership-change events
get_large_holdingsAll plans5% filings
get_earnings_releasesAll plansHalf-year and quarterly results from EDINET
get_indicatorsAll plansIndicators for one company
get_policy_uncertainty_indexAll plansMonthly index
list_companiesAll plansAll listed companies, paged
list_sectorsAll plansSectors with company counts
get_companies_batchAll plansUp to 50 company profiles; counts per ticker
get_financials_batchAll plansUp to 50 companies' figures; counts per ticker
get_company_peersAll plansSame sector, nearest revenue
get_sector_benchmarksAll plansSector medians and quartiles
get_my_usageAll plansYour plan, usage and limits
get_disclosed_credit_ratingsAll plansRatings as stated in bond filings
get_share_buybacksAll plansMonthly share-buyback reports
get_governance_filingsAll plansInternal-control conclusions and auditor changes
get_cross_holding_tradesAll plansTrades by listed strategic holders
get_investorAll plansA filer's stakes and joint holders
search_investor_groupsAll plansFind investor groups by name
get_investor_group_portfolioAll plansA group's holdings, entries and exits
get_investor_group_changesAll plansA group's ownership events, paged
get_investor_group_overlapAll plansGroups with stakes in the same companies
get_company_ownership_timelineAll plansA company's ownership events by date
get_cross_holding_unwinding_tradesAll plansStrategic-holding cuts beside disclosed trades
get_disclosed_tradesAll plansTrades listed in 5% reports
get_cross_holdingsAll plansA company's cross-shareholdings
get_cross_holding_unwindingAll plansLargest sales of strategic shares
sort_companies_by_metricAll plansCompanies in the order of one metric
get_company_briefAll plansOne company from its filings, on one page
screen_companiesAll plansFilter companies on filing figures
get_us_fund_holdingsAll plansU.S. funds holding a stock

Companies and financials

Identifiers, statements and governance from the latest annual securities report.

GET/v1/companies/{ticker}

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."
}
GET/v1/companies/{ticker}/financials

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."
}
GET/v1/companies/{ticker}/details

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."
}
GET/v1/companies/{ticker}/segments

Segments stated in the latest annual securities report.

curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/7203/segments"
GET/v1/companies/{ticker}/voting

Shareholder-meeting voting results for one company.

sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 200
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/7203/voting"
GET/v1/companies/{ticker}/tender-offers

Tender-offer notifications, results and target opinions for one company.

sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 200
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/5484/tender-offers"
GET/v1/voting

Voting results across companies.

sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 500
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/voting?limit=1"
GET/v1/tender-offers

Tender-offer filings across companies.

sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 500
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/tender-offers?limit=1"
GET/v1/filings

Metadata of EDINET filings. doc_type_code is EDINET's own code.

tickerFilter by ticker
doc_typeEDINET document type code
sinceEarliest date, YYYY-MM-DD
limitRows 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.

GET/v1/events

Ownership-change events with one-line English summaries.

tickerFilter by the company
filerFilter by filer EDINET code
typeComma-separated: new_stake, stake_increase, stake_decrease, exit_below_5pct, threshold_crossed, stated_may_make_proposals, purpose_changed, amendment
sinceEarliest date, YYYY-MM-DD
limitRows 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."
}
GET/v1/large-holdings

The 5% filings: holders, purposes, change against the previous report.

tickerFilter by the company
filerFiler EDINET code
sinceEarliest date, YYYY-MM-DD
limitRows 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."
}
GET/v1/investors/{code}

One filer's filings, its latest stake in each company, and joint holders.

limitRows 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."
}
GET/v1/companies/{ticker}/trades

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.

sinceEarliest date, YYYY-MM-DD
limitRows 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."
}
GET/v1/investors/{code}/trades

The same trade rows for one filer across all companies.

sinceEarliest date, YYYY-MM-DD
limitRows 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.

GET/v1/companies/{ticker}/earnings-releases

Period results with year-on-year change as filed. Amounts in millions of yen.

limitRows 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)."
    }
  ]
}
GET/v1/earnings-releases

Latest period results across companies, newest filing first.

sinceEarliest date, YYYY-MM-DD
limitRows 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.

GET/v1/companies/{ticker}/cross-holdings

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": "発行会社グループとの、主に金融取引(預金・貸出・為替等)における総合的な取引関係維持・拡大のために保有"
    }
  ]
}
GET/v1/cross-holdings/unwinding

Largest stated sales of listed strategic shares in the latest fiscal year.

limitRows 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.

GET/v1/companies/{ticker}/indicators

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": "…"
  }
}
GET/v1/indicators/sorted

Companies in the order of one figure or percentile. The order is arithmetic and is not a judgement.

metricRequired. roe, equity_ratio, mean_percentile, policy_uncertainty, new_5pct_holders_180d and others; an error lists them all
orderdesc (default) or asc
sectorSector slugs, comma-separated
limitRows to return. Default 50, maximum 1000
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/indicators/sorted?metric=roe&sector=banks&limit=1"
GET/v1/indicators/policy-uncertainty

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.

GET/v1/companies/{ticker}/brief

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.

GET/v1/companies/{ticker}/credit-ratings

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"
GET/v1/companies/{ticker}/buybacks

Monthly share-buyback reports: limits per board resolution, shares and yen acquired, and progress as arithmetic on filed numbers.

limitRows to return. Default 50, maximum 60
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/7287/buybacks"
GET/v1/companies/{ticker}/governance

Internal-control conclusions and auditor changes as the company states them, with short Japanese quotes and the source filing.

limitRows to return. Default 40, maximum 40
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/7203/governance"
GET/v1/governance

The same filings across companies.

typeinternal_control or auditor_change
sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 200
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/governance?type=auditor_change&limit=1"
GET/v1/cross-holdings/trades

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.

tickerThe stock traded
holderThe filer's ticker
sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 200
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/cross-holdings/trades?limit=1"
GET/v1/credit-ratings

Ratings stated in bond filings across issuers, including unlisted ones.

agencyFilter by agency
sinceEarliest date, YYYY-MM-DD
limitRows 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.

GET/v1/companies/{ticker}/us-funds

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

GET/v1/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"
}
GET/v1/freshness

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"
GET/v1/filings/latest

Filing metadata newest first by when it was seen on EDINET's list.

tickerFilter by ticker
sinceEarliest date, YYYY-MM-DD
limitRows to return. Default 50, maximum 200
curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/filings/latest?limit=1"
GET/v1/companies/{ticker}/refresh

Latest refresh request and check status.

curl -H "Authorization: Bearer $JAPANSTAKE_KEY" \
  "https://japanstake.com/v1/companies/7203/refresh"
POST/v1/companies/{ticker}/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.

POST/v1/webhooks

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"
}
GET/v1/webhooks

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
    }
  ]
}
POST/v1/webhooks/{id}/test

Send the latest stored event to the webhook, marked test: true. Returns the status your URL answered with.

DELETE/v1/webhooks/{id}

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 filer or individual 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_warning and 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