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).
Metadata
Release files for edinet-replay 0.1.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| edinet_replay-0.1.0b1.tar.gz | 1.6 MB | Without provenance | Details for edinet_replay-0.1.0b1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| edinet_replay-0.1.0b1-py3-none-any.whl | Python 3 | none | any | Details for edinet_replay-0.1.0b1-py3-none-any.whl |
Total release size: 1.7 MB
Release files / edinet_replay-0.1.0b1.tar.gz
| Download URL | edinet_replay-0.1.0b1.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
446c3781b598d4410e56218634abe1e1596a5c69e83fe171cfa17f323e51564a
|
|
BLAKE2b-256 checksum How to use checksums |
6eb40ef2e64f7d16d7f18d48bb880fa0123d705364f313c8f21ae9cb8e3f8c2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / edinet_replay-0.1.0b1-py3-none-any.whl
| Download URL | edinet_replay-0.1.0b1-py3-none-any.whl |
|---|---|
| Size | 46.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae82e79143c1242d7eac7de86b680a66bddecc246b2708d8daadeb23ed768438
|
|
BLAKE2b-256 checksum How to use checksums |
74e976af2eb5888b108d1dbf948796f9dc895b147063d92ee007d34b4633828d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Security for edinet-replay 0.1.0b1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.