Farsight Feeds

Satellites Catalog

Spacecraft catalog with TLE-based propagation — search, positions, detail, ground track, observer passes.

The satellite suite serves a full spacecraft catalog (60k+ objects), live TLE propagation, and observer-relative pass prediction. Positions are computed in-process using SGP4 over the current TLE set.

Routes

MethodPathPurpose
GET/sat/search?q=&limit=Search by NORAD id, international designator, name, operator, or constellation.
GET/sat/positionsCurrent positions across the active catalog (filtered + capped).
GET/sat/statsCatalog size, TLE coverage, type/regime breakdown, sync status.
GET/sat/{id}Full detail — identity, orbital elements, current position (geodetic/ECI/ECEF), live TLE.
GET/sat/{id}/track?samples=Ground track over one orbital period as a GeoJSON LineString.
GET/sat/{id}/passes?lat=&lon=&alt=&hours=&minElev=Visibility passes over an observer (AOS/LOS/TCA, azimuth, elevation, range).

/sat/positions

Returns a GeoJSON FeatureCollection of currently-propagated positions.

ParamDefaultNotes
type—Object type (payload, debris, rocket-body, …).
regime—Orbital regime (leo, meo, geo, heo).
constellation—Constellation slug.
bbox—Spatial filter.
limit2000Hard max 60000.

Each feature carries properties.noradId, properties.name, properties.regime, properties.altitudeKm, properties.velocityKmS, plus the source-of-truth TLE epoch so consumers can age-out stale propagations.

/sat/{id}

{
  "id": "25544",
  "name": "ISS (ZARYA)",
  "intlDesignator": "1998-067A",
  "regime": "leo",
  "orbital": { "inclinationDeg": 51.64, "eccentricity": 0.00023, "meanMotion": 15.49 },
  "tle": { "line1": "…", "line2": "…", "epoch": "2026-05-27T12:42:11Z" },
  "position": {
    "geodetic": { "lat": 23.7, "lon": -41.2, "altKm": 423.1 },
    "eci":      { "x": 4561.2, "y": -3211.4, "z": 4123.1 },
    "ecef":     { "x": 1234.0, "y": -2310.1, "z": 5870.4 }
  }
}

/sat/{id}/track

Samples one full orbital period (defaults to 120 samples; range 8–512) and returns a GeoJSON LineString — what the 3D and 2D viewers draw for the active selection.

/sat/{id}/passes

For an observer at (lat, lon, alt), returns the next visibility passes:

FieldMeaning
aosAcquisition of signal (rise above minElev).
tcaTime of closest approach (max elevation).
losLoss of signal.
azimuthAosDeg / azimuthLosDegRise/set azimuth.
maxElevationDegPass apex.
rangeKm seriesSlant range at AOS / TCA / LOS.

Defaults: hours=48, range 1–168; minElev=10°.

Catalog & sync

GET /sat/stats returns counts, TLE coverage percentage, age of the most recent sync, and breakdowns by object type and orbital regime — useful for operator dashboards.

Models

3D viewers can fetch satellite glTF/glB assets from GET /farsight/models/{path} (served from SATELLITE_MODELS_DIR).

Status

All endpoints live on the deployed system.

On this page