API

All endpoints return data drawn from the local archive, falling back to live CelesTrak when the archive is empty.

GET /api/gp

Search OMM records. Returns JSON.

Parameter Description
start-date, start-time Range start (YYYY-MM-DD, HH:MM, UTC). Defaults to "all".
end-date, end-time Range end. Defaults to now.
before, after Days; include the nearest snapshot just outside the range per satellite.
satellite-name Case-insensitive substring of the object name.
norad-nr Exact NORAD catalog ID.
limit Max records to return (default 1000).

Example

GET /api/gp?norad-nr=25544&start-date=2026-01-01&end-date=2026-06-01

Response shape

{
  "source": "archive",
  "count": 128,
  "returned": 128,
  "notes": [],
  "results": [ { "OBJECT_NAME": "ISS (ZARYA)", "NORAD_CAT_ID": 25544, "EPOCH": "...", ... } ]
}
GET /api/download

Same query parameters as /api/gp, plus format=json|csv|tle. Returns a file download of the full result set.

GET /api/download?norad-nr=25544&format=tle
GET/POST /api/ingest

Fetch current OMM from CelesTrak and store new snapshots. Optional groups=active,stations to choose CelesTrak groups, and token=... if SATDB_INGEST_TOKEN is configured. Meant to be called on a schedule.

curl -X POST "http://localhost:3000/api/ingest?groups=active"