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.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.
Two endpoints, two depths
| Endpoint | What it returns | Access |
|---|---|---|
GET /v2/data-manifest | Top-level summary across every scope: market, feed, vault, and per-protocol counts broken down by status. | Open — no key required. |
GET /v2/data-manifest/coverage | Per-row coverage with completeness percentages and named gaps, sorted worst-covered first. | Team plan or higher. |
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,0–100.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.
What a gap means
| Gap kind | Meaning |
|---|---|
missing_metadata | The row has no metadata in its registry yet. |
missing_history | The row has metadata but no time-series history yet. |
stale | The row has data, but its latest update is older than its expected heartbeat. |
unverifiable | The 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 isrows_present / rows_expected_if_full, and what counts as “present” and “expected” depends on the scope:
| Scope | Present | Expected if full |
|---|---|---|
oracle_feed | observed price points in history | elapsed time ÷ expected heartbeat |
morpho_market | 1 if classified with a known staleness status | 1 |
morpho_vault | distinct governance event types observed | 7 (timelock, guardian, allocator, cap, fee, owner, queue) |
protocol | sum of its markets’ completeness | total markets in the protocol |
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_atand the per-response freshness metadata together reconstruct exactly how complete the data was at decision time.