API
All endpoints return data drawn from the local archive, falling back to live CelesTrak when the archive is empty.
GET
/api/gpSearch 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/downloadSame 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/ingestFetch 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"