live · as of 2026-11-03 · version 2026-11-05.1 · getasof.ai

The issuer record, as of any date, with the receipt.

As Of · on Data Vintage · Replay

6
sealed years
2021 → 2026
1
markets sealed
us
4
receipts written
get_as_of reads, receipted

read at render: the shelf ledger (shelf/state.json, tools.replay) and the gate's receipt counter · ledger 2026-10-28

get_as_of is the issuer record as it stood on a date: an issuer by ticker, ISIN or LEI plus a date returns the signed record of that day — every field with its source and read date, the sealed disclosure lines of the market-year up to that date — signed by the node of the issuer's market and receipted, so a backtest can show what it read and when. Nothing is restated and nothing is filled backwards: before the record existed the answer says before_record; in a market-year not yet sealed it says not_sealed and names the earliest sealed date.

1 What it is

1.1
Built specifically so an AI agent can read the issuer record as it stood on any date since 2021, with the proof that it read it.
1.2
Any agent gets in; it pays in the call. A firm licenses the vintage.
1.3
Sealed years, 2021 forward, done. Each market lights as its vintage seals.

2 What it is not

Not a price. Not a terminal. Not a news feed. Not a restated dataset.

3 The tool

fieldspecification
Inputissuer (ticker, ISIN or LEI) · as_of (ISO date) · market (optional; the owning node resolves it if absent)
OutputThe signed issuer record version whose validity covers as_of: every field with value, source page, read date and effective date; version id; node signature and key id (kid); the RCO receipt (id, hash)
ReceiptWritten on every cleared read under the Allooloo writer key; the receipt id is returned in the answer.
typed errorwhen
unknown_issuerno issuer on the register for this identifier
before_recordthe record did not exist on that date; nothing is inferred backwards
not_sealedthe market-year is not yet sealed; the answer names the earliest sealed date (and, in the current year, the date it is sealed through); no partial vintage is served as final
not_foundthe market or record asked for is not on this door
3.1
One call:
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_as_of","arguments":{"issuer":"NASDAQ:MSFT","as_of":"2023-03-15"}}}
at https://mcp.getasof.ai/mcp .
3.2
Nothing is answered from memory. Identity fields answer on the read-date clock: a field is held only if the record had read it by the date asked; the disclosure lines are the sealed vintage — public filings dated on or before that date, each with its source and read date, each signed.
3.3
Paying for a read: every read is free unless the agent asks for the offer (header x402-pay: 1); the door then answers HTTP 402 with a signed offer and the same call carries the payment and the receipt — data-paygo.ai.

4 The edge

Point-in-time fundamentals exist as premium products elsewhere; replay exists on terminals. "As of a date" alone is not the edge. The edge is five things the record already has by construction, which no feed vendor built:

propertywhat it means for a quant
Two clocksEvery fact carries when it was true in the world (effective) and when the record learned it (read date). get_as_of answers on the second clock — what was knowable that day. That is the only honest basis for a backtest; most feeds have one clock and overwrite.
Append-only, signed versionsNothing is restated in place. A change is a new signed version; the old one is kept. The as-of answer is a lookup, never a recomputation, so it is the same answer forever.
Per-field provenanceSource page and read date on every field. A regulator's restatement and our re-read are distinguishable.
Receipts (RCO)Every read writes an RCO-10060 receipt chaining the answer hash. The firm can prove what a model relied on.
Agent-native, openMCP door, verb-object tool name, human page free to read, x402 to pay. Built for the reader that is actually arriving — an agent — not a human with a seat.

Others sell point-in-time data; Allooloo sells point-in-time proof.

5 The proof

5.1
Each get_as_of read is cleared and receipted: subject, jurisdiction, rule version, the stated time of the read, the hash of the signed answer, and the link to the previous receipt in the chain. The door signs the receipt; the producing node signs the content under the record key.
5.2
verify_receipt is public. Anyone holding the receipt and the answer can confirm the answer is the one that was served, unaltered.
5.3
A firm's own auditor key (issue_auditor_key) lets model-risk, internal audit or an external auditor list and verify every as-of read behind a model — the signed input list of a backtest, replayable to any date.
5.4
The quant's artefact is therefore not a CSV. It is a receipt chain: a signed, chained statement of every record the model read, as of when, and what it said. Model validation, MiFID II record-keeping and SR 11-7 style reviews want exactly this and have never been able to buy it.
5.5
KYP the facts · Issuerwire the news · RCO the proof.

6 Access

Any MCP client that speaks Streamable HTTP:

{
  "mcpServers": {
    "getasof": {
      "type": "http",
      "url": "https://mcp.getasof.ai/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http getasof https://mcp.getasof.ai/mcp
6.1
Door: https://mcp.getasof.ai/mcp — the same router as https://mcp.getissuer.ai/mcp : same index, no second copy of the history; read-only, no authentication, no account. get_as_of is routed to the node of the issuer's listing; the node signs and receipts; the router forwards.
6.2
Agent Card (A2A): https://agent.getasof.ai/.well-known/agent-card.json .
6.3
Tools: get_as_of, with resolve_issuer · list_events_since · list_nodes on the same door. list_events_since stays where it is; get_as_of reads the same history.
6.4
Regional doors: every node door answers get_as_of for its own market (mcp.<market>-cm-kg.ai/mcp, <market>.eu-cm-kg.ai/mcp).
6.5
Registry entry: registry.modelcontextprotocol.io · io.github.allooloo/getasof.

7 Lanes

lanewhatwhere
Agent, per readx402 on the existing per-call till. USDC and Open USD on Base.data-paygo.ai
Firm, licenceData Vintage enterprise licence.data-licence.ai
Auditissue_auditor_key — the firm's own key to list and verify its receipt chain.rco-records.ai

8 Data path

8.1
Store: the Replay store under Data Vintage — sealed market-years, 2021 forward. get_as_of is a read over it. No new store, no second copy of the history.
8.2
Index: the router holds an index only; the record is served by the owning node's regional door in its own jurisdiction. getasof.ai routes the same way.
8.3
Nightly: the OpsAgents re-slate the trading day; a sealed year is immutable thereafter. Receipts chain per writer.
8.4
Two clouds: Azure primary, AWS warm standby (Data Ark). The vintage and the receipt chain are both in the ark.
8.5
Markets light one by one as each vintage seals (us first, then the roster). The door answers not_sealed until then rather than guessing.

9 Markets

nodemarketsealed vintagestate
ae-cm-kgUnited Arab Emiratesnot sealed yet — the door answers not_sealedlive
at-cm-kgAustrianot sealed yet — the door answers not_sealedlive
au-cm-kgAustralianot sealed yet — the door answers not_sealedlive
be-cm-kgBelgiumnot sealed yet — the door answers not_sealedlive
bm-cm-kgBermudanot sealed yet — the door answers not_sealedlive
br-cm-kgBrazilnot sealed yet — the door answers not_sealedlive
ca-cm-kgCanadanot sealed yet — the door answers not_sealedlive
ch-cm-kgSwitzerlandnot sealed yet — the door answers not_sealedlive
cz-cm-kgCzech Republicnot sealed yet — the door answers not_sealedlive
de-cm-kgGermanynot sealed yet — the door answers not_sealedlive
dk-cm-kgDenmarknot sealed yet — the door answers not_sealedlive
es-cm-kgSpainnot sealed yet — the door answers not_sealedlive
fi-cm-kgFinlandnot sealed yet — the door answers not_sealedlive
fr-cm-kgFrancenot sealed yet — the door answers not_sealedlive
gr-cm-kgGreecenot sealed yet — the door answers not_sealedlive
hk-cm-kgHong Kongnot sealed yet — the door answers not_sealedlive
ie-cm-kgIrelandnot sealed yet — the door answers not_sealedlive
in-cm-kgIndianot sealed yet — the door answers not_sealedlive
it-cm-kgItalynot sealed yet — the door answers not_sealedlive
je-cm-kgJerseynot sealed yet — the door answers not_sealedlive
jp-cm-kgJapannot sealed yet — the door answers not_sealedlive
kr-cm-kgSouth Koreanot sealed yet — the door answers not_sealedlive
ky-cm-kgCayman Islandsnot sealed yet — the door answers not_sealedlive
lu-cm-kgLuxembourgnot sealed yet — the door answers not_sealedlive
mx-cm-kgMexiconot sealed yet — the door answers not_sealedlive
nl-cm-kgNetherlandsnot sealed yet — the door answers not_sealedlive
no-cm-kgNorwaynot sealed yet — the door answers not_sealedlive
pl-cm-kgPolandnot sealed yet — the door answers not_sealedlive
pt-cm-kgPortugalnot sealed yet — the door answers not_sealedlive
se-cm-kgSwedennot sealed yet — the door answers not_sealedlive
sg-cm-kgSingaporenot sealed yet — the door answers not_sealedlive
tw-cm-kgTaiwannot sealed yet — the door answers not_sealedlive
uk-cm-kgUnited Kingdomnot sealed yet — the door answers not_sealedlive
us-cm-kgUnited States2021 → 2026live

source: list_nodes at https://mcp.getissuer.ai/mcp and the shelf ledger, read at render

10 Machine kit

10.1
/llms.txt · /index.md · /facts.json · /.well-known/agent-card.json · /.well-known/mcp.json · /.well-known/x402.json · /.well-known/security.txt · /sitemap.xml · /robots.txt · /mcp.json
10.2
Forwards here (301, whole zone): getasof.com, getasof.org, getasof.io.

Contact Us