API
Available on Free, Plus and Pro. Every request needs an API key.
Create an API key → Sign in first if asked; you come straight back to the key page.
Auth
Usage limits
| Plan | Requests / day | Per minute | Filings / request | Delay |
|---|---|---|---|---|
| Free | 100 | 30 | 20 | 30 min |
| Plus | 3,000 | 120 | 100 | None added |
| Pro | Unlimited | 300 | 200 | None added |
Limits are shared across all keys on your account and survive key rotation and server restarts. Daily allowances reset at 00:00 UTC; minute limits reset at the next UTC minute.
Each successful data request counts once, including empty results and each page of results. Invalid requests, unavailable filings, authentication errors and rejected requests do not consume the allowance. Free hides new filings on both endpoints.
At a limit, requests stop with HTTP 429 and Retry-After. No automatic overage charges. Upgrading raises your allowance immediately; switching plans does not reset today’s usage.
Pro includes Unlimited API: no daily request cap, with 300 requests per minute and up to 200 filings per request.
Usage headers
For Pro, daily limit and remaining values are null in JSON and unlimited in headers; the daily reset marks the usage counter reset, not a request cap. Reset headers contain Unix timestamps in seconds. RateLimit headers describe the per-minute window. GET /api/v1/usage returns the current limits and remaining allowance without consuming it, even when a limit is reached.
Endpoints
| GET /api/v1/events | List, newest first. { data: Event[], next_cursor } |
| GET /api/v1/usage | Account allowance. No usage charge. |
| GET /api/v1/events/:doc_id | One event. { data: Event } |
| GET /api/v1/research?kind=financials&ticker=6104 | Available annual, half-year and quarterly financial facts, with EDINET source, original units and periods. Free includes the 30-minute delay. |
| GET /api/v1/companies/7203/reports?form=annual&year=2025&page=1 | Every structured financial report for a company, newest first. Filter by form (annual, half_year, quarterly) and period year; paginated with totals and facets. |
| GET /api/v1/companies/7203/financials?metrics=revenue,eps_basic&scope=consolidated&period=annual | One point per period: latest reported value, first reported value and a restated flag, each with its source filing, element ID and period resolution. |
| GET /api/v1/companies/7203 | Company master data, names as filed and which financial reports are not structured yet. |
| GET /api/v1/companies/7203/filings?group=tob&page=1 | Every EDINET filing about the company (financial, tob, stake, material, other), including amendments and withdrawals. |
| GET /api/v1/companies/7203/segments | Segment rows from annual reports. |
| GET /api/v1/companies/7203/tender-offers | Tender offers grouped into deals, with price history and outcome. |
| GET /api/v1/companies/7203/ownership?page=1 | 5%+ holder positions with previous ratios. |
| GET /api/v1/reports/S100Y8NY/rows?q=配当 | Every original CSV row of a report, searchable. Narrative text on Plus and Pro. |
| GET /api/v1/reports/S100Y8NY | One report's figures with original label, raw value, unit and source row, plus segment rows and consistency checks. |
Parameters
| since / until | ISO date-time, on submit_at |
| type | event_type or group (tob, stake), comma-separated |
| ticker | e.g. 6104 |
| holder | holder_slug or name substring |
| tier | 1 or 2 (max tier) |
| limit | Positive integer; capped at your plan’s page size. Default: 20 on Free, 50 on paid plans. |
| cursor | next_cursor from the previous page |
Event
| Field | Type | |
|---|---|---|
| doc_id | string | EDINET docID |
| event_type | string | tob · tob_amendment · tob_result · tob_opinion · stake_new · stake_change · extraordinary · buyback |
| subtype | string|null | e.g. mbo, withdrawn, extraordinary item |
| tier | 1|2 | 1 = most material |
| ticker | string | TSE code, e.g. 6104, 558A |
| company_en / company_ja | string|null | Target company |
| market | string|null | Prime · Standard · Growth |
| holder_en / holder_ja | string|null | Lead holder (stakes) or acquirer (TOB) |
| holder_country / holder_slug | string|null | |
| pct_prev / pct_new / pct_delta | number|null | Percent units (9.02 = 9.02%) |
| thresholds_crossed | number[] | e.g. [10, 20] |
| tob_price_jpy | number|null | |
| tob_period_start / tob_period_end | date|null | ISO date |
| purpose_en / purpose_ja | string|null | |
| headline / summary | string | English |
| facts | object|null | Extra key facts |
| submit_at | datetime | EDINET submission, JST offset |
| published_at | datetime|null | English written |
| edinet_url / url | string | Original filing / event page |
Example
MCP
Paste this into your AI
Works in Claude, ChatGPT, Codex, Cursor or any AI app—it walks you through connecting, step by step.
For a version with your API key included, copy it from API keys & AI.Available on every plan. MCP and REST share one allowance.
Claude, ChatGPT, Claude Code and other clients with sign-in: add a custom connector / remote MCP server, paste the URL, then sign in to Tokyo Tape and choose Allow. No key needed (OAuth 2.1 with PKCE and dynamic client registration).
Claude Code, Codex, Cursor, VS Code and clients with custom headers: create a key and send Authorization: Bearer YOUR_API_KEY. Step-by-step configs with your key filled in are in API keys & AI. Never put the key in the URL.
| search_filings | Text, ticker, holder, type, market, country and date filters; cursor pagination. |
| get_filing | English summary, facts and source URLs by doc_id. |
| get_document | Indexed Japanese text in chunks, with body_kind and source. Plus / Pro. |
| get_company_financials | Available EDINET report facts for one ticker; preserves units, periods and consolidation scope. Free supported. |
| list_financial_reports | All structured reports for a ticker, filterable by form and year, paginated. |
| get_financial_series | Metric time series with first-reported values and source pointers. |
| get_financial_report | Figures, segment rows and checks for one report. |
| get_company_profile · list_company_filings | Master data, names as filed, coverage gaps and every EDINET filing. |
| get_segments · search_report_rows | Segment rows and full-text search over a report's original rows. |
| get_tender_offer_deals | Tender offers for a target grouped into deals, with price history and outcome. |
| get_ownership_history | 5%+ holder positions including joint holders, with previous ratios. |
| compare_companies | Filing activity for 2 / 3 / 6 companies, with a shared period. |
| keyword_trends | Daily counts over up to 90 / 365 / 365 days. |
| get_usage | Remaining allowance and reset times; no charge. |
Each successful data tool call consumes one request from the same account allowance as REST. Initialize, tool discovery, ping, validation failures and get_usage do not count. Free keeps its 30-minute delay and page limits. Limits return HTTP 429 with Retry-After.
The server supports MCP protocol 2025-11-25 and compatible SDK-negotiated versions. It is stateless and read-only; no separate session or notification stream is needed.
Test the connection
MCP SDK transport documentation
Errors
| 400 | bad_request |
| 401 | unauthorized |
| 404 | not_found |
| 429 | rate_limited or daily_limit |