API reference/History and archive
History and archive
Timeline focused responses and our own recorded changes.
Two endpoints for history focused clients: one returns the merged timeline without the rest of the report, the other returns only what SubnetHistory itself has recorded.
History
endpoint
GET /api/v1/history?q={query}
Runs the same lookup as /lookup but returns a cheaper payload for history focused views: query, timeline, insights, sources and meta only.
Each timeline event:
| Field | Type | Meaning |
|---|---|---|
at | string | ISO 8601 time of the event, or start of the interval. |
until | string or null | End of the interval, for interval events. |
ongoing | boolean | True while the interval is still open. |
category | string | One of registration, allocation, transfer, routing, rir, observed, tag, peeringdb. |
title | string | What happened, in one line. |
detail | string or null | The specifics, when there are any. |
source | string | Where the event came from. Events SubnetHistory detected itself are prefixed subnethistory:. |
data | object | Extra machine readable context for some event types. |
Archive
endpoint
GET /api/v1/archive?q={query}
Returns only SubnetHistory's own records for the resource: change events written when a fetched record differed from its previous snapshot, plus persisted routing observations. This is the part of the history that grows the longer the service runs. Nothing is fetched upstream to answer it.
response
{
"query": { "raw": "8.8.8.0/24", "kind": "prefix", "normalized": "8.8.8.0/24" },
"changeEvents": [
{
"id": 412,
"observedAt": "2026-07-02T11:40:12.000Z",
"provider": "rdap",
"dataset": "network",
"eventType": "changed",
"summary": "registration record changed",
"snapshotId": 9182
}
],
"routingObservations": [
{
"prefix": "8.8.8.0/24",
"originAsn": 15169,
"startedAt": "2026-01-14T00:00:00",
"endedAt": null,
"peersSeeing": 312,
"source": "ripestat"
}
]
}
| Field | Meaning |
|---|---|
changeEvents | Up to 500 most recent detected changes for the resource, newest first. |
changeEvents[].summary | A short description of what moved between snapshots. |
routingObservations | Origin announcements SubnetHistory has persisted for the space, with their visibility windows. |
routingObservations[].peersSeeing | How many full BGP peers saw the announcement. |
A 400 is returned when the query cannot be interpreted.
Last updated 2026-08-09subnethistory.com