API
Everything on the site is available as JSON. No key needed. Responses include source and fetched_at so provenance travels with the data.
Base URL: https://icpwatch.com/api/v1. Please cache on your side and keep it under one request per second. CORS is open for GET.
| Endpoint | Returns |
|---|---|
GET /lifeline/summary | Headline counts and last collection time. |
GET /lifeline/canisters?state=risk|frozen|archive | Watched canisters with cycles, burn, runway, status, confidence. |
GET /canister/:id | One canister with projections and open incidents. |
GET /canister/:id/readings?range=7d | Cycle balance time series. |
GET /tokens | Token list with market data and the Lifeline health badge. |
GET /token/:id | Token, market, pools, and its canister group. |
GET /token/:id/prices?range=30d | Price series (OHLC where available). |
GET /pools | Pools across DEXs ranked by 24h volume. |
GET /incidents | Recent incidents, open and resolved. |
GET /network/summary | Headline network metrics. |
GET /subnets | Subnets with burn, size, and throughput. |
GET /proposals?status=open | NNS proposals. |
GET /search?q= | Resolve any id, symbol, or name. |
GET /portfolio/:principal | Balances across every tracked ledger for a principal. |
Ranges: 24h, 7d, 30d, 90d, 1y. Timestamps are unix seconds. Cycles are integers.