ドキュメント/コアコンセプト/フリーズトークン
コアコンセプト

Freeze tokens.

A number is only citable if you can get the exact same bytes back later. Every response carries a freeze token at meta.as_of; pass it back as ?as_of= and you replay the response as it was, months later, after the filing was restated, the upstream schema changed, or the ontology moved on.

What a freeze token is

A freeze token is an opaque string returned on every response at meta.as_of. It pins the response to a point in time: the data version, the ontology version, and the exact rows that were served. Replaying with the same token returns bit-identical bytes. The SHA-256of the body is part of the token’s contract.

!
The token lives in meta, and you replay via a query param.

Read it from meta.as_of, then replay by passing ?as_of=<token> on the same request.

Capture, then replay

Make a normal request and read meta.as_of from the response. Send it back to the same endpoint as ?as_of=<token> and you get the same response.

cURL
# 1. Capture the token from any response (it is at meta.as_of)
curl -s https://api.axiora.dev/v1/companies/7203/financials \
  -H "Authorization: Bearer ax_live_•••" | jq -r '.meta.as_of'
# → "2026-05-22T06:35:04.512Z|v2.1.0|sha256:1f3b…"

# 2. Replay it months later — pass it as the ?as_of= query param
curl -s "https://api.axiora.dev/v1/companies/7203/financials?as_of=2026-05-22T06:35:04.512Z|v2.1.0|sha256:1f3b…" \
  -H "Authorization: Bearer ax_live_•••"
# → byte-for-byte identical to the original response

The quickstart walks through the same capture-and-replay flow against a live ownership query.

What it survives

A replay returns the original bytes even when, since you captured the token:

  • EDINET restates a filing: a correction is a separate later filing; your frozen response still reflects what was served at capture time.
  • The upstream schema changes: EDINET revises its XBRL taxonomy; the bytes you froze do not move.
  • The ontology evolves: a new ontology version maps elements differently going forward; your token still resolves under the version it was computed with.
i
Replays still count against your budget.

A frozen response is still a request. It counts against your daily and burst budgets like any other call, see Rate limits.

Exactly where it lives

The contract is two fields:

FieldWhat it is
Read the token frommeta.as_of, inside the meta object, not a top-level field.
Replay the token via?as_of=<token>, a query parameter on the same endpoint.