Unified data API

One normalized surface over market and on-chain data — with provenance attached, and partial answers that are visibly partial.

An agent that acts on markets or a chain needs data from several providers, each with its own shape, auth, rate limit, and outages. Norien aggregates them behind one surface. The app, the CLI, and the SDKs all read these /api/* endpoints — nothing outside the aggregator reaches a third party.

Provenance on every response

Every response carries sources and degraded. If a provider fails, the request still succeeds with whatever the others returned — a partial answer is labeled partial, never presented as complete.

{
  "data": { "symbol": "USDG", "price": 1.0002, "holders": 31579 },
  "sources": [
    { "provider": "market-data", "status": "ok", "ms": 210 },
    { "provider": "price-feed",  "status": "skipped", "reason": "no platform mapping" }
  ],
  "degraded": false
}

What it covers

GET /api/tokens                GET /api/contracts/:address
GET /api/trending              GET /api/wallets/:address
GET /api/token/:address        GET /api/search
GET /api/projects              GET /api/chain
GET /api/project/:slug         GET /api/providers
NoteFull request and response shapes are in the REST API reference and the live OpenAPI document at api.norien.live/docs.