Skip to main content
Pre-release

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.

Demo: fetch → extract → validate, then a fact traced back to its ZIP line

Beta (0.1.0b1). The vertical path fetch → extract → validate works 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-filing 1.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

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)

Source distribution for edinet-replay 0.1.0b1
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)

Table of built distributions (wheels) for edinet-replay 0.1.0b1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page