This release is a pre-release and may not be stable for production use.
EDINET Replay
Official EDINET ZIP → verifiable faithful JSON + manifest.
Same source package, same pinned taxonomy, same Arelle version → same output hash.
Beta (
0.1.0b1). The vertical pathfetch → extract → validateworks for resolved XBRL. A multi-standard β corpus (JP GAAP / IFRS / US GAAP) pins fixed docIDs and expected hashes. Inline XBRL presentation provenance is still incomplete. Best-effort, not production-certified. Not affiliated with Japan's FSA.
30-second demo
Corpus entry: E04236 / S100W1NC (JP GAAP annual report).
Needs: Python 3.10+, EDINET_API_KEY, and the pin-matching FSA taxonomy zip
(see taxonomies/edinet-fsa-2024-11-01.json).
$ pip install -e ".[xbrl]"
$ export EDINET_API_KEY=… # header only — never pass --api-key
$ edinet-replay fetch --document-id S100W1NC --store ./store
$ edinet-replay extract ./store/packages/S100W1NC/<raw_sha256>.zip \
--taxonomy edinet-fsa-2024-11-01 -o ./out
$ edinet-replay validate filing ./out/faithful-filing.json
$ edinet-replay validate manifest ./out/extraction-manifest.json
What you get:
| Output | Role |
|---|---|
./out/faithful-filing.json |
Resolved facts (concept, value, context, unit, dims, nil, footnotes) |
./out/extraction-manifest.json |
Reproduction identity: dual package hashes, taxonomy pin, engine, selection |
each fact's source.package_path + source.line |
Pointer back into the official ZIP |
Example fact from this filing (value is a string, as reported):
{
"value": "4122148000000",
"decimals": "-6",
"dimensions": {
"concept": "jppfs_cor:Assets",
"unit": { "numerator": ["iso4217:JPY"], "denominator": [] }
},
"source": {
"package_path": "XBRL/PublicDoc/jpcrp030000-asr-001_E04236-000_2025-03-31_01_2025-06-23.xbrl",
"line": 4943
}
}
…which is this line inside the source package:
<jppfs_cor:Assets contextRef="Prior1YearInstant" decimals="-6"
unitRef="JPY">4122148000000</jppfs_cor:Assets>
Expected canonical hash for the full filing: see
tests/golden/E04236-S100W1NC.json
(canonical_output_sha256). Same path for IFRS and US GAAP entries in the
β corpus catalog.
Who this is for
Data engineers, quantitative researchers, XBRL implementers, ESG data users, academic researchers, financial data providers, and institutional data teams who need verifiable access to Japanese corporate disclosures — not a retail stock screen.
Why it exists
EDINET filings are public, but reproducible use is hard: XBRL/iXBRL structure, taxonomy churn, lost context/units/dimensions/provenance, and opaque transforms in normalized databases.
EDINET Replay focuses on faithful reproduction, not financial interpretation. Mapping, normalization, comparability, and investment analysis are Layer 2 (out of scope here).
What ships today
- CLI:
fetch·extract·validate·inspect - Offline Arelle resolution against hash-pinned FSA taxonomies
- Versioned JSON Schemas (
extraction-manifest/faithful-filing1.0.0) - Content hashing + canonical JSON profile (golden-by-hash)
- β corpus v1 — one JP GAAP, one IFRS, one US GAAP annual report (
corpus/)
Other CLI shapes
$ edinet-replay fetch --date 2025-06-27 --edinet-code E04236 --list-only
$ edinet-replay fetch --date 2025-06-27 --edinet-code E04236 \
--select latest-original-filing --store ./store
$ edinet-replay inspect ./store/packages/S100W1NC/<raw_sha256>.zip
Selection is never implicit: with --date you pass --list-only or a named
--select. The API key is read only from EDINET_API_KEY.
Library retrieval
from edinet_replay.client import EdinetClient
client = EdinetClient() # EDINET_API_KEY → Ocp-Apim-Subscription-Key header
listing = client.list_documents("2025-06-27")
download = client.download_document("S100W1NC")
# download.content is the submission ZIP exactly as received
What this project does not do
- Merge XBRL concepts into a “common” economic concept
- Normalize or assert economic meaning
- Guarantee cross-company / cross-period / cross-GAAP comparability
- Investment recommendations
- Speak for the FSA / EDINET
Design in one line
Layer 1 (this repo): retrieval, package identity, offline DTS, faithful facts + provenance.
Layer 2 (elsewhere): interpretation. Downstream tools should be auditable against Layer 1.
Reproduction identity = source content hash + taxonomy content hash + Arelle
version + extractor version + schema version + explicit selection record.
Details: architecture · reproducibility · schema.
Engine
XBRL semantics via Arelle (Apache-2.0). We do not reimplement context / dimension / unit / accuracy resolution.
Docs
- β corpus · For researchers · For investors / data teams
- Japanese market data notes · 日本語: README.ja.md
Maintenance · License · Citation
Best-effort beta; no SLA on issues/PRs. Security: SECURITY.md.
Contributing: CONTRIBUTING.md.
Apache-2.0 — LICENSE. Cite via CITATION.cff.
Regenerate the demo GIF: python tools/render_demo_gif.py (Pillow).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edinet_replay-0.1.0b1.tar.gz.
File metadata
- Download URL: edinet_replay-0.1.0b1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
446c3781b598d4410e56218634abe1e1596a5c69e83fe171cfa17f323e51564a
|
|
| MD5 |
9fdb5755ea03e5d9840580d25e770160
|
|
| BLAKE2b-256 |
6eb40ef2e64f7d16d7f18d48bb880fa0123d705364f313c8f21ae9cb8e3f8c2d
|
File details
Details for the file edinet_replay-0.1.0b1-py3-none-any.whl.
File metadata
- Download URL: edinet_replay-0.1.0b1-py3-none-any.whl
- Upload date:
- Size: 46.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae82e79143c1242d7eac7de86b680a66bddecc246b2708d8daadeb23ed768438
|
|
| MD5 |
8fbc1330ff8ec0855745cf8e05f1c6af
|
|
| BLAKE2b-256 |
74e976af2eb5888b108d1dbf948796f9dc895b147063d92ee007d34b4633828d
|