Changelog
Public API and developer-platform changes. Route paths listed here are the stable v1 surface bound by @owlviz/sdk.
2026-10-04 — Sprint S5.1 (Holder Health integrity & recompute hardening)
- **
GET /v1/collections/:address/holders** — additiveindexCompletedAt; holder summaries older than the latest index completion (or while a recompute job is active / after a failed post-index recompute) are served asstatus: stalewithX-Cache: STALEeven when Redis TTL is fresh, so a ~10 minute holder cache cannot resurrect pre-index snapshots. - **Worker holder recompute** — failed jobs invalidate the holder cache without overwriting persisted stats; repeated recompute on unchanged indexed assets converges on the same distribution fields.
No breaking changes.
2026-09-26 — Sprint S5.0.2 (Collection index pagination & completeness)
- **Collection indexing worker** — Helius
getAssetsByGroupexpected counts prefergrand_totalover page-scopedtotal; pagination continues until the provider cursor/page is exhausted (with max-page and repeated-cursor guards), not when a page-sizedtotalis reached. - **
GET /v1/collections/:address/index** and **GET /v1/collection-index-jobs/:jobId** — additive fieldsindexedCount,expectedCount, andcoverage(complete|partial);progressPercentdenominators use expected supply when known. - **Collection entity
indexing** — same additive completeness fields on embedded indexing state. - **
GET /v1/collections/:address/holders** —coveragePercentuses expected supply when known; additiveexpectedCount/indexIncomplete;status: partialwhen indexing is incomplete even if a stale summary exists.
No breaking changes.
2026-09-20 — Sprint S3 (Market State API)
- **
GET /v1/collections/:address/market/state** — Combined market intelligence (spot floor, reference floor, 1h/24h spot change from observations, 24h coverage). Derived from existing/market,/market/reference, andmarket_observations; no new marketplace providers. - **Docs** — [market-state.md](./market-state.md), curl + agent example (
docs/api/examples/15-collection-market-state.*). - **Dashboard** — Collection page market state strip (floor, 24h change, coverage, providers).
No trading signals, SDK v0.2, billing, or WebSockets in this sprint.
2026-09-20 — Sprint S2.1 (SDK release readiness)
- **
@owlviz/sdk@0.1.0** — npm-ready metadata, changelog, README first-request flow, typings-onlydist/(tests excluded from build). - **OpenAPI** —
GET /v1/monitorsandGET /v1/monitors/{id}withChangeMonitorschema (aligned with SDK). - **Ops** — [sdk-publish.md](../sdk-publish.md) with exact
npm publishsteps when CI has noNPM_TOKEN.
No breaking API changes; no new routes beyond OpenAPI documentation for existing monitor reads.
2026-09-19 — Sprint S2 (Developer Experience)
- **
@owlviz/sdk** — Official TypeScript client inpackages/sdkwrapping v1 HTTP routes (assets, collections, market, monitors list). - **Docs** — Getting started, errors, rate limits, webhooks summary, v1 surface reference, changelog.
- **Examples** — Root
examples/projects (asset inspection, collection market, market history, webhook consumer, agent loop).
No breaking API changes; auth, quotas, metering, and market semantics unchanged.
2026-03 — Sprint S1.1 (production smoke)
- Multi-provider collection floors (Magic Eden + Tensor) with explicit per-provider status.
- Reference floor (
GET …/market/reference) and observation history (GET …/market/history). - Durable market change events and global
GET /v1/market-events. - Self-serve Market Watch and webhooks with plan quotas; HMAC webhook delivery pipeline.
2026-02 — Sprint S1
- Normalized asset resolve, health, inspection, media, snapshots.
- Collection indexing, health aggregates, change monitors (keyed self-serve + admin ops).
- Portal API keys (
ov_live_…), plan-based RPM (Free / Builder / Pro). - OpenAPI 3.1 at
/openapi.json.