Ephemeris API

Retrieve satellite ephemeris by name with JD time step

GET /name-jdstep/

Retrieve the satellite ephemeris over a JD range at a specified time step. The time step is the interval between each ephemeris point, and is specified as a Julian Day (JD) value. .05 JD is approximately 1.2 hours.

Query Parameters:
  • name – (required) – Name of satellite as displayed in CelesTrak TLE files

  • latitude – (required) – Observer Latitude (North is positive) (decimal deg)

  • longitude – (required) – Observer Longitude (East is positive) (decimal deg)

  • elevation – (required) – Observer Elevation above WGS84 ellipsoid in meters (m)

  • site – (optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

  • startjd – (required) – UT1 Julian Start Date

  • stopjd – (required) – UT1 Julian End Date

  • stepjd – (optional) – UT1 time step in Julian Days for ephemeris generation. Default is .05 (1.2 hours).

  • min_altitude – (optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

  • max_altitude – (optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

  • data_source – (optional) – Data source for the TLE data - either ‘celestrak’ or ‘spacetrack’. Leaving it blank returns closest TLE from any source.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/name-jdstep/'
params = {'name': 'STARLINK-1600',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'startjd': 2460000.1,
                'stopjd': 2460000.3,
                'stepjd': 0.1,
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/name-jdstep/?name=STARLINK-1600&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.1&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/name-jdstep/?name=STARLINK-1600&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.1&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details

Retrieve satellite ephemeris by name

GET /name/

Retrieve the ephemeris for specified satellite at a specific Julian Date given its name

Query Parameters:
  • name – (required) – Name of satellite as displayed in CelesTrak TLE files

  • latitude – (required) – Observer Latitude (North is positive) (decimal deg)

  • longitude – (required) – Observer Longitude (East is positive) (decimal deg)

  • elevation – (required) – Observer Elevation above WGS84 ellipsoid in meters (m)

  • site

    (optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

  • julian_date – (required) – UT1 Universal Time Julian Date. An input of 0 will use the TLE epoch.

  • min_altitude – (optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

  • max_altitude – (optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

  • data_source – (optional) – Data source for the TLE data - either ‘celestrak’ or ‘spacetrack’. Leaving it blank returns closest TLE from any source.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/name/'
params = {'name': 'STARLINK-1600',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'julian_date': 2460000.1,
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/name/?name=STARLINK-1600&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/name/?name=STARLINK-1600&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details

Retrieve satellite ephemeris by catalog number with JD time step

GET /catalog-number-jdstep/

Retrieve the satellite ephemeris over a JD range at a specified time step (optional). The time step is the interval between each ephemeris point, and is specified as a Julian Day (JD) value. .05 JD is approximately 1.2 hours. The catalog number is the NORAD ID of the satellite.

Query Parameters:
  • catalog – (required) – Satellite catalog number (NORAD ID)

  • latitude – (required) – Observer Latitude (North is positive) (decimal deg)

  • longitude – (required) – Observer Longitude (East is positive) (decimal deg)

  • elevation – (required) – Observer Elevation above WGS84 ellipsoid in meters (m)

  • site

    (optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

  • startjd – (required) – UT1 Julian Start Date

  • stopjd – (required) – UT1 Julian End Date

  • stepjd – (optional) – UT1 time step in Julian Days for ephemeris generation. Default is .05 (1.2 hours).

  • min_altitude – (optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

  • max_altitude – (optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

  • data_source – (optional) – Data source for the TLE data - either ‘celestrak’ or ‘spacetrack’. Leaving it blank returns closest TLE from any source.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/catalog-number-jdstep/'
params = {'catalog': '25544',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'startjd': 2460000.1,
                'stopjd': 2460000.3,
                'stepjd': 0.1,
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/catalog-number-jdstep/?catalog=25544&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.1&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/catalog-number-jdstep/?catalog=25544&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.1&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details

Retrieve satellite ephemeris by catalog number

GET /catalog-number/

Retrieve the ephemeris for a satellite at a specific Julian Date given its catalog number (NORAD ID)

Query Parameters:
  • catalog – (required) – Satellite catalog number (NORAD ID)

  • latitude – (required) – Observer Latitude (North is positive) (decimal deg)

  • longitude – (required) – Observer Longitude (East is positive) (decimal deg)

  • elevation – (required) – Observer Elevation above WGS84 ellipsoid in meters (m)

  • site

    (optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

  • julian_date – (required) – UT1 Universal Time Julian Date. An input of 0 will use the TLE epoch.

  • min_altitude – (optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

  • max_altitude – (optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

  • data_source – (optional) – Data source for the TLE data - either ‘celestrak’ or ‘spacetrack’. Leaving it blank returns closest TLE from any source.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/catalog-number/'
params = {'catalog': '25544',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'julian_date': 2460000.1,
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/catalog-number/?catalog=25544&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/catalog-number/?catalog=25544&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details

Calculate satellite ephemeris given a TLE with JD time step

GET /tle-jdstep/

Calculate satellite ephemeris with a user-specified TLE over a JD range at a specified time step

query tle:

(required) – Two line element set

query latitude:

(required) – Observer Latitude (North is positive) (decimal deg)

query longitude:

(required) – Observer Longitude (East is positive) (decimal deg)

query elevation:

(required) – Observer Elevation above WGS84 ellipsoid in meters (m)

query site:

(optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

query startjd:

(required) – UT1 Julian Start Date

query stopjd:

(required) – UT1 Julian End Date

query stepjd:

(optional) – UT1 time step in Julian Days for ephemeris generation. Default is .05 (1.2 hours).

query min_altitude:

(optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

query max_altitude:

(optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/tle-jdstep/'
params = {'tle': 'ISS (ZARYA) \n 1 25544U 98067A   23248.54842295  .00012769  00000+0  22936-3 0  9997\n2 25544  51.6416 290.4299 0005730  30.7454 132.9751 15.50238117414255',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'startjd': 2460000.1,
                'stopjd': 2460000.3,
                'stepjd': 0.1
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/tle-jdstep/?tle=ISS%20(ZARYA)%0A1%2025544U%2098067A%20%20%2023248.54842295%20%20.00012769%20%2000000+0%20%2022936-3%200%20%209997%0A2%2025544%20%2051.6416%20290.4299%200005730%20%2030.7454%20132.9751%2015.50238117414255&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.01&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/tle-jdstep/?tle=ISS%20(ZARYA)%0A1%2025544U%2098067A%20%20%2023248.54842295%20%20.00012769%20%2000000+0%20%2022936-3%200%20%209997%0A2%2025544%20%2051.6416%20290.4299%200005730%20%2030.7454%20132.9751%2015.50238117414255&latitude=40.1106&longitude=-88.2073&elevation=222&startjd=2460000.1&stopjd=2460000.3&stepjd=0.01&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details

Calculate satellite ephemeris with a given TLE

GET /tle/

Calculate satellite ephemeris with a user-specified TLE at a specific Julian Date

Query Parameters:
  • tle – (required) – Two line element set

  • latitude – (required) – Observer Latitude (North is positive) (decimal deg)

  • longitude – (required) – Observer Longitude (East is positive) (decimal deg)

  • elevation – (required) – Observer Elevation above WGS84 ellipsoid in meters (m)

  • site

    (optional) – Site name (e.g. ‘greenwich’) - if provided, latitude, longitude, and elevation can’t be used; see astropy site names for a list of valid site names

  • julian_date – (required) – UT1 Universal Time Julian Date. An input of 0 will use the TLE epoch.

  • min_altitude – (optional) – Minimum altitude to return satellite positions (degrees). Default is 0.

  • max_altitude – (optional) – Maximum altitude to return satellite positions (degrees). Default is 90.

Example Request
  • Browser
  • Python
  • Bash
  • Powershell
import requests
import json

url = 'https://satchecker.cps.iau.org/ephemeris/tle/'
params = {'tle': 'ISS (ZARYA) \n 1 25544U 98067A   23248.54842295  .00012769  00000+0  22936-3 0  9997\n2 25544  51.6416 290.4299 0005730  30.7454 132.9751 15.50238117414255',
                'latitude': 40.1106,
                'longitude': -88.2073,
                'elevation': 222,
                'julian_date': 2460000.1,
                'min_altitude': -90}
r = requests.get(url, params=params)
print(json.dumps(r.json(), indent=4))
curl -X GET "https://satchecker.cps.iau.org/ephemeris/tle/?tle=ISS%20(ZARYA)%0A1%2025544U%2098067A%20%20%2023248.54842295%20%20.00012769%20%2000000+0%20%2022936-3%200%20%209997%0A2%2025544%20%2051.6416%20290.4299%200005730%20%2030.7454%20132.9751%2015.50238117414255&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"
curl.exe -X GET "https://satchecker.cps.iau.org/ephemeris/tle/?tle=ISS%20(ZARYA)%0A1%2025544U%2098067A%20%20%2023248.54842295%20%20.00012769%20%2000000+0%20%2022936-3%200%20%209997%0A2%2025544%20%2051.6416%20290.4299%200005730%20%2030.7454%20132.9751%2015.50238117414255&latitude=40.1106&longitude=-88.2073&elevation=222&julian_date=2460000.1&min_altitude=-90" -H "accept: application/json"

Example Response

API Response Details