Docs/Introduction
Getting started

Introduction.

Axiora is a verifiable financial-data API for Japanese listed companies. Every figure traces to a source EDINET (金融庁) filing, and every response can be frozen and replayed byte-for-byte.

Base URL
api.axiora.dev
API version
v1
Source
EDINET · TDNet
Envelope
{ data, meta }

What is Axiora

Japanese ownership intelligence and EDINET-derived company data for 11,000+ companies. All endpoints return JSON with the { data, meta } envelope pattern.

Numbers are lifted from schema-validated XBRL by deterministic code, never inferred by a model. Language (translations, naturalised entity names) is LLM-assisted, with the Japanese original always preserved. Every row carries the EDINET doc_id it came from, and the verifiability model explains exactly which layer produced each field.

i
Data sourced from EDINET (Financial Services Agency of Japan). Axiora is not affiliated with FSA or EDINET.

Response Envelope

Every success response wraps its payload in the same envelope. List endpoints add pagination to meta.

Single resourceapplication/json
{
  "data": { "...": "resource fields" },
  "meta": {
    "request_id": "req_abc123",
    "data_as_of": "2026-05-12T03:25:11Z",
    "as_of": "6b6d7729-0e41-4e6c-94dc-33e584afaf0d",
    "computation_version": "2026.04.1",
    "ontology_version": "2.1.0",
    "caveats": ["..."]
  }
}

List endpoints return an array under data and add pagination fields (total, limit, offset, next_cursor) to meta.

Meta fields

FieldDescription
request_id
string
Unique request identifier for tracing and support (e.g. req_abc123).
data_as_of
string | null
Timestamp of the last successful EDINET ingest. ISO 8601 with timezone. Null if not yet resolved.
as_of
string | null
Opaque freeze token. Copy this value, send it back as `?as_of=<token>` on later calls to replay the exact same rows. Null when the response isn't pinnable.
computation_version
string
Public compatibility version of the response schema. Bumped on breaking changes. Format YYYY.MM.N. For exact reproduction, use `as_of` instead.
ontology_version
string
Semver of the field/unit interpretation layer. Bumped on breaking changes. For exact reproduction, use `as_of` instead.
caveats
string[] | null
Endpoint-specific caveats consumers should know when interpreting this response. Strings drawn from the catalog below; null when none apply.
total
int | null
Total number of matching records (list endpoints only).
limit
int | null
Maximum records returned per page.
offset
int | null
Number of records skipped (offset-based pagination).
next_cursor
string | null
Opaque cursor for the next page (keyset pagination). Null on the last page.

Caveat catalog

Caveats are short, public-facing notes attached to meta.caveats so consumers can interpret a response correctly. They are not errors. An endpoint emits a subset of the strings below.

  • This response is a derived view, not a raw filing snapshot. See meta.data_as_of for source freshness; capture meta.as_of and replay with ?as_of=<token> for bit-identical reproduction.
  • Sourced from TDNet (Tokyo Stock Exchange) 決算短信 filings, not 金融庁 EDINET. Earnings data arrives weeks before the matching EDINET annual report, use meta.data_as_of for freshness.
  • English entity names carry a name_en_quality tier of 'verified', 'derived', or 'machine'. Treat 'verified' and 'derived' as high-trust; 'machine' rows are best-effort and should be reviewed before publication.
  • Per-share fields (eps, bps, dps) reflect raw filings unless meta.split_adjusted is true for this response. Across stock-split events, values are only comparable when adjustment was applied.
  • Rows aggregate across multiple filings; per-row doc_id is not currently exposed. Use meta.data_as_of for freshness.
  • Not every filing has every section translated. Rows where text_en is null have not yet been processed.
  • Translation is scoped to issuers listed as TSE Prime, Standard, or Growth (common stock). Filings from REITs, asset-management funds, unlisted subsidiaries, individual filers, and other non-common-stock issuers are not translated, their Japanese source text remains queryable via the sections endpoint.
  • Some signal rows carry doc_id = null, typically signals that summarise a pattern across multiple filings, with no single originating document to cite. Filter doc_id IS NOT NULL when you need a direct EDINET citation.

Coverage

Six classes, all derived from the same EDINET and TDNet filings. Each shares the response envelope and the same as_of replay contract.

ClassDescription
Financials
15 endpoints
Income statement, balance sheet, cash flow, and ratios, lifted from typed XBRL.
Translations
5 endpoints
JA→EN narrative sections; the Japanese source stays on the row.
Filings
3 endpoints
The raw EDINET document index: doc_id, doc_type, fiscal year, filed_at.
Ownership
20 endpoints
Large-shareholding trajectories, movers, and signals built from 大量保有報告書.
Governance
6 endpoints
Board composition, voting results, relationships, and subsidiaries.
Earnings
9 endpoints
決算短信 results, forecasts, and earnings signals from TDNet.

Surfaces

The same data over three surfaces. Pick the one your stack already talks to.

Building with an LLM? Point it at llms.txt for a map of these docs, or connect the MCP server directly.

Next steps