Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.alterscope.org/llms.txt

Use this file to discover all available pages before exploring further.

Most data vendors tell you what they cover. Alterscope also tells you where it doesn’t — as a live, machine-readable feed you can query before you build on a number. The data coverage manifest is that inventory: which markets, oracle feeds, vaults, and protocols have complete data, and exactly where the known gaps are. You can stake a risk decision on the answer because the answer names its own gaps.

Two endpoints, two depths

EndpointWhat it returnsAccess
GET /v2/data-manifestTop-level summary across every scope: market, feed, vault, and per-protocol counts broken down by status.Open — no key required.
GET /v2/data-manifest/coveragePer-row coverage with completeness percentages and named gaps, sorted worst-covered first.Team plan or higher.
The summary is open on purpose: anyone evaluating Alterscope can see the shape of coverage before signing up. The per-row gap inventory — the artifact that tells you which specific feed is missing history — is the institutional differentiator and sits behind the Team tier.
Both endpoints are cached for 5 minutes. The actual cache age is reported on every response at meta._agentic.freshness.age_seconds, so a non-zero age means the snapshot is genuinely that old — never “fresh because we said so.”

How to read a coverage row

Each row in /v2/data-manifest/coverage describes one unit of coverage — an oracle feed, a market, a vault, or a protocol — and carries:
  • history_completeness_pct — how complete the data is for that row, 0100.
  • classified / has_metadata — whether the row has been processed and whether it carries registry metadata.
  • last_update_at — when the underlying data last changed (most recent oracle price, governance event, or registry write) — not when the manifest was computed.
  • gaps — an explicit list of what’s missing, if anything.
Rows are returned worst-covered first. If you are asking “where is the gap,” you should not have to scroll past the healthy rows to find it.

What a gap means

Gap kindMeaning
missing_metadataThe row has no metadata in its registry yet.
missing_historyThe row has metadata but no time-series history yet.
staleThe row has data, but its latest update is older than its expected heartbeat.
unverifiableThe row’s freshness semantics are not modeled yet (e.g. an oracle architecture outside the classified set). It is surfaced honestly rather than guessed.

How completeness is measured

Completeness is rows_present / rows_expected_if_full, and what counts as “present” and “expected” depends on the scope:
ScopePresentExpected if full
oracle_feedobserved price points in historyelapsed time ÷ expected heartbeat
morpho_market1 if classified with a known staleness status1
morpho_vaultdistinct governance event types observed7 (timelock, guardian, allocator, cap, fee, owner, queue)
protocolsum of its markets’ completenesstotal markets in the protocol
You can filter by scope, scope_id, and min_completeness_pct, and page with an opaque cursor. The full parameter and field reference is on the Data coverage manifest page in the API reference.

Why this is the trust mechanism

A vendor that only reports its wins is selling you confidence, not data. By publishing the gaps as a queryable feed, Alterscope lets you:
  • Verify before you buy — check coverage for the exact markets you care about, on the open summary endpoint, before committing.
  • Gate your own automation — skip or down-weight a row your pipeline knows is incompletely covered, instead of acting on a partial number.
  • Audit after the fact — the manifest’s last_update_at and the per-response freshness metadata together reconstruct exactly how complete the data was at decision time.
For the customer-facing list of which chains and protocols are covered, see the Coverage matrix. For where the data originates, see Data provenance.