API Reference

the-shashi.com Public Data API

Public data for the-shashi.com is published as static JSON files that AI agents can fetch directly with GET. No authentication is required, and the API is free to call as many times as you like — it runs on infrastructure built to handle heavy load.

One page, one endpoint. Each public page of the site has exactly one API behind it: /tse/{stock_code}/decisions/ is history.json, /tse/{stock_code}/ceo/ is ceo.json, /tse/{stock_code}/financials/sales/ is financials.json, /tse/{stock_code}/shareholders/ is shareholders.json, /tse/{stock_code}/executives/ is executives.json, /tse/{stock_code}/dividend/ is dividend.json and /tse/{stock_code}/remuneration/ is remuneration.json. The results are split into one page per item (/tse/{stock_code}/financials/{sales|profit|balance-sheet|roe|cash-flow|segment|region}/), so financials.json returns a three-year summary and the way in, and the six files under /api/{stock_code}/financials/ each hold ten years of one section; each section's html_url names the page it belongs to (workforce is /tse/{stock_code}/workforce/, shares and share price is /tse/{stock_code}/per/). People are one file per person. A list holds one row per person and each row's api_url leads to that person's file: /api/{stock_code}/ceo.json lists a company's presidents and /api/{stock_code}/ceo/{slug}.json holds one of them in full; /api/ceo.json lists every president of every company; /api/directors.json lists every outside director across companies and /api/directors/{slug}.json holds one of them. Start from a list. A single management decision is not duplicated into its own endpoint: the row returns html_url, an absolute https://the-shashi.com/ URL, and you read it on the page. A section endpoint likewise returns html_url with the anchor of its section on the page it belongs to.

Every JSON response opens with the same envelope (see components/schemas/CommonEnvelope): which company and endpoint the file belongs to, the language of its content, the page a citation should point at, the licence, and — for the numeric endpoints — where the numbers came from. The envelope is there so that a response stays self-describing after it is detached from its URL. Character encoding is not declared in the body: JSON is UTF-8 by definition (RFC 8259).

Authentication

None. There is no API key, no OAuth and no MCP server to install — every endpoint is a static file served over HTTPS and answers a plain GET. CORS is open (Access-Control-Allow-Origin: *), so the API can be called from a browser as well.

Errors

The API uses HTTP status codes only; there is no error body. A file that does not exist — an unknown stock code, or an endpoint that is not populated for that company — does not return 200. Check resources.{id}.is_active in company.json before fetching.

StatusMeaning
200OK — the file exists.
404No such company, or no data for this endpoint.

Rate limits

None. The files sit behind a CDN built for heavy load, and you may call them as often as you like. Use chars_ja in company.json to estimate the token cost of a file before fetching it.

Versioning

The current version is 6.0, carried in spec_version of every response. Response schemas may change without notice: read the data through an LLM rather than a fixed parser, and adapt to new or missing keys.

All companies

Public entry point — company index + endpoint catalog

GET/api/companies.json

The first endpoint an LLM or external client should call. Returns the public endpoint catalog (endpoints) and a minimal index of every published company (contents: stock_code / name / industry) in a single request. Follow /api/{stock_code}/company.json for the pages and endpoints of any one company.

Returns200application/json

  • versionstring

    Example 4

  • basestring

    Example https://the-shashi.com

  • endpointsarray of objects
    Show child attributes
    • idstring
    • methodstring

      Example GET

    • pathstring
    • labelstring
    • descriptionstring
    • formatstring

      One of jsoncsv

    • scopestring

      One of globalcompany

  • contentsarray of objects
    Show child attributes
    • stock_codestring

      Example 1332

    • namestring
    • name_enstring
    • industrystringnullable
    • industry_detailstringnullable

Cross-company index of management decisions

GET/api/decisions.json

Every published management decision across every company, one row each. The row holds no body text and no link to another API file: read the decision itself on the page at html_url.

Returns200application/json

  • countinteger

    Example 2640

  • company_countinteger

    Example 906

  • decisionsarray of objects
    Show child attributes
    • stock_codestring

      Example 4716

    • company_namestring

      Example Oracle Corporation Japan

    • main_titlestring

      Short name of the event itself — the counterparty, product, site, person, plan or incident that identifies this decision.

      Example Move to the TSE First Section

    • sub_titlestring

      What the decision meant — what was chosen and what was given up.

    • yearintegernullable
    • typestring

      Example capital

    • html_urlstring

      Absolute URL of the page to read. There is no per-decision endpoint.

      Example https://the-shashi.com/tse/4716/decisions/nihon-oracle-listing-1999/

Endpoint definitions

GET/api/api-manifest.json

The definition of every endpoint in this API — the same catalog that companies.json carries inline, served on its own so a client can refresh the shape of the API without pulling the company index.

Returns200application/json

  • versionstring

    Example 4

  • basestring

    Example https://the-shashi.com

  • endpointsarray of objects
    Show child attributes
    • idstring

      Example financials

    • methodstring

      Example GET

    • pathstring

      Example /api/{stock_code}/financials.json

    • labelstring
    • descriptionstring
    • formatstring

      One of jsoncsv

    • scopestring

      One of globalcompany

People

Every president of every company

GET/api/ceo.json

One row per president across every published company, in stock-code order and, within a company, in order of succession. Follow api_url to the person file.

Returns200application/json

  • countinteger

    Example 5000

  • company_countinteger

    Example 1300

  • ceoarray of anys

Every outside director, across companies

GET/api/directors.json

One row per sitting outside director. A person who sits on several boards is one row, with every company listed under companies. Follow api_url to the person file.

Returns200application/json

  • countinteger

    Example 4374

  • directorsarray of objects
    Show child attributes
    • slugstring

      Example abe-atsushige

    • namestring
    • romajistringnullable
    • birthstringnullable

      Example 1958-04

    • company_countinteger

      Example 1

    • companiesarray of objects
      Show child attributes
      • stock_codestring

        Example 7942

      • company_namestringnullable
      • rolestringnullable
      • independentbooleannullable
    • api_urlstring

      Example https://the-shashi.com/api/directors/abe-atsushige.json

One outside director

GET/api/directors/{slug}.json

One outside director: every board seat (role, independence, the attribute declared in the corporate governance report, and the vote results of their election), the career rows and the sources the career rows cite (refs point at sources[].id).

Path parameters

  • slugstringrequired

    The slug from a row of /api/directors.json.

Returns200application/json

  • personobject
    Show child attributes
    • slugstring

      Example abe-atsushige

    • namestring
    • romajistringnullable
    • birthstringnullable
    • directorshipsarray of objects
      Show child attributes
      • stock_codestring

        Example 7942

      • company_namestringnullable
      • rolestringnullable
      • start_atstringnullable
      • end_atstringnullable
      • independentbooleannullable
      • attributestringnullable
      • votesarray of objects
        Show child attributes
        • monthstring
        • rationumbernullable
      • company_html_urlstringnullable
    • careerarray of objects
    • sourcesarray of objects
    • api_urlstring
    • list_api_urlstring

      Example https://the-shashi.com/api/directors.json

Presidents — the list at /tse/{stock_code}/ceo/

GET/api/{stock_code}/ceo.json

Every president the company has had, in order, one row each. The row holds no body text: follow api_url to the person file for background, career and the account of the tenure.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • countinteger

    Example 13

  • ceoarray of CeoRows

One president — the page at /tse/{stock_code}/executives/ceo/{slug}/

GET/api/{stock_code}/ceo/{slug}.json

One president in full: where they came from, how they were chosen, what they did, the career table, and the neighbours in the line of succession. html_url is present only when the person has a page of their own; otherwise canonical_url points at the company's list of presidents.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

  • slugstringrequired

    The slug from a row of /api/{stock_code}/ceo.json.

Returns200application/json

  • personobject
    Show child attributes
    • slugstring

      Example kon-kenta

    • namestring
    • kanastring
    • surnamestring
    • given_namestring
    • term_startstring

      Example 2026-04

    • term_endstringnullable
    • originstring

      How this person reached the presidency.

    • origin_typestring

      Example career insider

    • milestonestring
    • hometownstringnullable
    • educationstringnullable
    • prev_rolestringnullable
    • careerarray of objects
    • sectionsobject

      tenure_frames — origin, selection, measures and appraisal.

    • api_urlstring

      Example https://the-shashi.com/api/7203/ceo/kon-kenta.json

    • html_urlstring

      Example https://the-shashi.com/tse/7203/executives/ceo/kon-kenta/

    • list_api_urlstring

      Example https://the-shashi.com/api/7203/ceo.json

    • predecessorPersonLink
    • successorPersonLink

Per company

One company — its pages and its endpoints

GET/api/{stock_code}/company.json

The index for a single company: the profile, the public pages as absolute html_url, and which of the fourteen JSON and two CSV endpoints are populated. It carries no content of its own — read it to decide what to fetch, then fetch that.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • versionstring

    Example 4

  • stock_codestring
  • company_namestring
  • profileobject
    Show child attributes
    • company_colorstring
    • industrystring
    • industry_detailstringnullable
    • publishedstring (date)
    • updatedstring (date)
    • foundobject
      Show child attributes
      • yearinteger
      • locationstring
      • founderstring
    • listingobject
      Show child attributes
      • listed_yearintegernullable
      • delisted_yearintegernullable
      • unlistedboolean
    • old_namestring
    • name_kanastring
    • old_name_kanastring
  • pagesarray of objects

    The company's public pages. Cite and read these; the API mirrors them, it does not replace them.

    Show child attributes
    • keystring

      Example decisions

    • titlestring
    • html_urlstring

      Example https://the-shashi.com/tse/7203/decisions/

  • resourcesobject

    Keyed by endpoint id — history, ceo, financials, the six section ids financials-segment / financials-pl / financials-cf / financials-bs / financials-employee / financials-stock, shareholders, executives, dividend, remuneration, and financials-csv, financials-history-csv. An entry with is_active false means this company has nothing for that endpoint.

    Show child attributes
    • {key}object
      Show child attributes
      • is_activeboolean
      • urlstring
      • api_urlstring

        The same path as an absolute URL.

      • html_urlstring

        The page this endpoint stands behind. A section endpoint carries the anchor of its section.

      • formatstring

        One of jsoncsv

      • descriptionstring
      • chars_jainteger

        Character count of the underlying Japanese text, so the token cost can be estimated before fetching.

History — the page at /tse/{stock_code}/decisions/

GET/api/{stock_code}/history.json

The corporate history in chapters, the summary that opens it, the long-term results series that runs beside it, and the list of management decisions with the URL of each decision's page. The decisions carry no body text here — follow html_url.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • titlestring
  • summaryobject

    Present only when the company has a description.

    Show child attributes
    • descriptionstring
  • chaptersarray of objects

    The whole history, oldest chapter first. Chapters are not served as separate files.

    Show child attributes
    • start_yearinteger
    • end_yearinteger
    • main_titlestring
    • subsectionsarray of objects
  • long_termarray of objects

    Sales, profit and headcount from as close to the founding as the record allows, one row per fiscal year.

    Show child attributes
    • yearinteger
    • monthintegernullable
    • company_namestring

      The company's name in that year.

    • salesnumbernullable
    • operating_profitnumbernullable
    • ordinary_profitnumbernullable
    • net_profitnumbernullable
    • employeesintegernullable
    • unitstring

      Example JPY million

    • consolidationstring

      Example consolidated

    • accounting_standardstring

      Example JGAAP

    • referencestring

      That row's own source.

  • decisionsarray of objects

    This company's management decisions, oldest first. Headings (split into main_title / sub_title) and URLs only.

    Show child attributes
    • main_titlestring

      Short name of the event itself.

      Example Building the Motomachi plant

    • sub_titlestring

      What the decision meant.

    • yearintegernullable
    • typestring

      Example m_and_a

    • html_urlstring

      Example https://the-shashi.com/tse/7203/decisions/gm-alliance-1999/

Results — the page at /tse/{stock_code}/financials/sales/

GET/api/{stock_code}/financials.json

The summary behind /tse/{stock_code}/financials/sales/: the headline items of profit and loss, balance sheet and cash flow for the three most recent fiscal years, and the way in to the six section endpoints that hold ten years of detail apiece. Fetch this first; fetch a section when you need the series. Every row states its own unit, accounting standard and consolidation scope, because all three change across a long series.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • financialsarray of objects

    P&L, three most recent years: sales, operating_profit, ordinary_profit, net_profit and the other headline items. Ten years, with the detailed items, are in financials/pl.json.

  • bsarray of objects

    Balance sheet, three most recent years: total_assets, equity, interest_debt. Ten years are in financials/bs.json.

  • cfarray of objects

    Cash flow, three most recent years: operating_cf, investing_cf, financing_cf, cash_equivalents. Ten years are in financials/cf.json.

  • sectionsarray of objects

    The six sections of the page, each with the endpoint that carries it and the anchor to read it at. This is the one place the API names another API file: the sections of the same page.

    Show child attributes
    • keystring

      One of segment, pl, cf, bs, employee, stock.

      Example pl

    • titlestring

      Example Profit and loss (PL)

    • api_urlstring

      Example https://the-shashi.com/api/7203/financials/pl.json

    • html_urlstring

      Example https://the-shashi.com/tse/7203/financials/profit/

Major shareholders — /tse/{stock_code}/shareholders/

GET/api/{stock_code}/shareholders.json

Who owns the company: ten years of the top shareholders and of ownership by holder category, the top shareholders before XBRL taken from company histories, yearbooks and older filings, and the large-shareholding reports filed on the company.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • shareholdersarray of objects

    FY, period, rank, name, shareholding_ratio (%), shares_held, holder_type / holder_class (the kind of holder) and holder_name (the name folded across years).

  • categoriesarray of objects

    Ownership by holder category (government, financial institutions, individuals, foreign and so on): shareholders, shares_units, ratio (%).

  • long_termarray of objects

    Top shareholders for the years XBRL does not cover. Each row's source names the yearbook or filing it came from.

  • large_holdingsarray of objects

    Large-shareholding and change reports, one row per report (the filer and joint holders combined): submit_date, filer, ratio (%) and ratio_prev at base_date, purpose.

Board of directors — /tse/{stock_code}/executives/

GET/api/{stock_code}/executives.json

The current board, worked out the same way as the page: the board in the latest annual report, updated with the elections and retirements at the shareholders' meetings since (from the extraordinary reports on the vote results). Past presidents are in ceo.json.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • boardarray of objects

    name, role, as_of, romaji, role_board / role_exec, role_rep / role_outside / role_audit (1 when true), first_career, specialty, shares_held.

  • votingarray of objects

    Director-election votes: meeting_date, proposal_title, name, office (director / audit_director / auditor), for_ratio (%), result.

Dividends — /tse/{stock_code}/dividend/

GET/api/{stock_code}/dividend.json

Dividend per share and payout ratio for every fiscal year on file.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • dividendarray of objects

    dividend_per_share and interim_dividend_per_share as disclosed (yen, on the share count of that year), dividend_per_share_adjusted (restated for later splits — use this to compare across years), split_factor, payout_ratio_nonconsolidated (%), and note on how a figure was restated.

Executive remuneration — /tse/{stock_code}/remuneration/

GET/api/{stock_code}/remuneration.json

Ten years of officer pay by category, individually disclosed pay, and audit fees. Amounts are in millions of yen.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • remunerationarray of objects

    By category (directors, auditors, outside officers and so on): officers (headcount), total, fixed, bonus, share_awards, retirement, other.

  • individualarray of objects

    Officers whose pay was ¥100m or more: name, title, company, and the same breakdown.

  • audit_feearray of objects

    audit_fee and non_audit_fee, for the reporting company and for its consolidated subsidiaries (scope).

Section

Sales breakdown — /tse/{stock_code}/financials/segment/

GET/api/{stock_code}/financials/segment.json

Ten years of the sales breakdown on three axes: by reporting segment, by geographic region, and as the mix of the whole. canonical_url carries the anchor of the section on the page.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • segmentarray of objects

    Sales, profit and assets by reporting segment. Segment names are the company's own, in Japanese, and are redrawn on reorganisation — a break in the names is a break in the series, not an error.

  • regionarray of objects

    Sales by geographic region, on the company's own grouping.

  • revenue_mixarray of objects

    The share each segment takes of total sales, year by year.

Profit and loss — /tse/{stock_code}/financials/profit/

GET/api/{stock_code}/financials/pl.json

Ten years of the profit and loss account, headline items and the detailed breakdown beneath them.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • plarray of objects

    sales, cost_of_sales, sga, cost_others, gross_profit, operating_profit, ordinary_profit, extraordinary_income, extraordinary_loss, net_profit and the margins they leave.

Cash flow — /tse/{stock_code}/financials/cash-flow/

GET/api/{stock_code}/financials/cf.json

Ten years of the cash flow statement.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • cfarray of objects

    operating_cf, investing_cf, financing_cf, cash_equivalents.

Balance sheet — /tse/{stock_code}/financials/balance-sheet/

GET/api/{stock_code}/financials/bs.json

Ten years of the balance sheet, headline items and the detailed breakdown beneath them.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • bsarray of objects

    total_assets, equity, interest_debt, securities, goodwill, intangible_assets, short_debt, long_debt, bond.

Workforce — /tse/{stock_code}/workforce/

GET/api/{stock_code}/financials/employee.json

Ten years of headcount, pay and what each employee accounts for.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • employeearray of objects

    consolidated_employees, non_consolidated_employees, avg_salary (thousands of yen — 10060 means ¥10.06m), avg_age, and sales and profit per employee.

Shares and share price — /tse/{stock_code}/per/

GET/api/{stock_code}/financials/stock.json

Ten years of shares outstanding, share price, market capitalisation and the valuation multiples they give. Who the holders are is a different page — /tse/{stock_code}/shareholders/ — served by shareholders.json.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200application/json

  • stockarray of objects

    shares_outstanding, share price, market_cap and the multiples — PER, PBR and the like.

CSV

Results CSV

GET/api/{stock_code}/financials.csv

The annual figures behind /tse/{stock_code}/financials/sales/ — the same rows the financials endpoints serve as JSON — flattened for a spreadsheet or a data frame.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200text/csv

A CSV file with a header row. UTF-8.

Long-term results CSV

GET/api/{stock_code}/financials_history.csv

The long-term series carried in history.json (long_term), flattened for a spreadsheet or a data frame.

Path parameters

  • stock_codestringrequired

    The four-character securities code on the Tokyo Stock Exchange.

Returns200text/csv

A CSV file with a header row. UTF-8.

Schemas

CommonEnvelope

The leading keys of every JSON response. They come first so that a response truncated or detached from its URL still says what it is. Deliberately absent: charset — JSON is UTF-8 by definition (RFC 8259) and application/json defines no charset parameter.

Attributes

  • spec_versionstring

    Envelope/API generation.

    Example 6

  • endpointstring

    Which endpoint this file is an instance of.

    Example financials

  • stock_codestring

    Company identifier. Absent on the three global endpoints.

    Example 7203

  • company_namestring

    Example Toyota Motor

  • content_langstring

    BCP 47. Language of the content itself (title / event / text).

    Example ja

  • meta_langstring

    BCP 47. Language of the descriptive metadata (description / label). The two differ by design.

    Example en

  • canonical_urlstring

    The human-readable page this data belongs to. Cite this URL.

    Example https://the-shashi.com/tse/7203/financials/sales/

  • api_urlstring

    This file's own path.

    Example /api/7203/financials.json

  • updatedstring (date)

    The date this file's content last changed — not the date it was regenerated.

  • licensestring

    Example © 2026 Yutaka Sugiura. All rights reserved.

  • attributionstring

    Suggested citation line. If you surface this data to a reader

CeoRow

One president in a list. The same shape in /api/{stock_code}/ceo.json and /api/ceo.json.

Attributes

  • slugstring

    Example kon-kenta

  • namestring
  • kanastring
  • term_startstringnullable

    Example 2026-04

  • term_endstringnullable
  • origin_typestringnullable

    Example career insider

  • milestonestringnullable
  • prev_rolestringnullable
  • api_urlstring

    Example https://the-shashi.com/api/7203/ceo/kon-kenta.json

  • html_urlstring

    Present only when the person has a page of their own.

SourceDecl

Provenance of the numbers. Present on financials.json and each financials/*.json, on shareholders / executives / dividend / remuneration, and on the long-term series in history.json; absent on the narrative endpoints, which carry their citations inline under references.

Attributes

  • primaryarray of strings

    The primary sources behind this file. Where rows carry their own source column (see row_field), this list is computed from the actual rows rather than declared, so it names the specific yearbooks and filings used — not a generic claim.

    Example ["Annual Securities Report","Company Yearbook 1976"]

  • extractionstring

    How the source became data.

    Example Machine-extracted from EDINET XBRL

  • row_fieldstring

    Name of the per-row field holding that row's own source. Prefer it over primary when attributing a single figure.

    Example reference

  • caveatstring

    What to watch for when reading these numbers (changing units, disclosure-segment breaks, consolidation scope, and so on).