Table · gp-current
Current orbital elements
The newest general perturbations (SGP4) element set for every object in Earth orbit that the US Space Force publishes, as CCSDS Orbit Mean-Elements Message fields, with period, semi-major axis, perigee and apogee derived from them. Catalog numbers are full integers, so objects numbered 100000 and up are included.
- Updates
- Hourly
- Coverage
- —
- Current version
- —
- Last published
- —
- Validation
- —
- License
- SpaceTrack Basic SSA Redistribution
- Commercial use
- Allowed
Preview
Use the API
The examples follow the rows picked above. See the docs for versions, caching and errors.
curl
# All rows (.json or .csv)
curl -s "https://api.satellitedata.dev/v1/gp-current/table/all.json"
# The whole table in one file
curl -sO "https://api.satellitedata.dev/v1/gp-current/download/gp-current.csv" Python (polars)
import polars as pl
# All rows
df = pl.read_csv("https://api.satellitedata.dev/v1/gp-current/table/all.csv")
# The whole table
everything = pl.read_parquet("https://api.satellitedata.dev/v1/gp-current/download/gp-current.parquet") JavaScript
const res = await fetch("https://api.satellitedata.dev/v1/gp-current/table/all.json");
if (!res.ok) throw new Error((await res.json()).detail); // errors are problem+json
const { meta, rows } = await res.json();
console.log(meta.rows, rows[0]); Downloads
The whole dataset in one file. Parquet keeps the column types and is much smaller.
- gp-current.csv CSV
- gp-current.parquet Parquet
Schema
Rows are identified by norad_cat_id.
The rows are also split into one file per value of norad_block.
Tables up to 50,000 rows also have a single table/all file.
| Column | Type | Unit | Can be empty | Description |
|---|---|---|---|---|
| norad_cat_id key | integer | — | no | US Space Force catalog number (up to nine digits) |
| norad_block partition | integer | — | no | norad_cat_id rounded down to a multiple of 1000: the partition file holding the object |
| object_name | text | — | no | OBJECT_NAME |
| object_id | text | — | no | OBJECT_ID: international designator (2025-001A), or UNKNOWN |
| epoch | datetime (ISO 8601, UTC) | — | no | EPOCH of the mean elements, UTC |
| mean_motion | number | rev/day | no | Kozai mean motion (SGP4) |
| eccentricity | number | — | no | — |
| inclination | number | deg | no | — |
| ra_of_asc_node | number | deg | no | Right ascension of the ascending node |
| arg_of_pericenter | number | deg | no | — |
| mean_anomaly | number | deg | no | — |
| bstar | number | 1/earth_radii | yes | SGP4 drag term |
| mean_motion_dot | number | rev/day^2 | yes | — |
| mean_motion_ddot | number | rev/day^3 | yes | — |
| ephemeris_type | integer | — | yes | — |
| classification_type | text | — | yes | U for unclassified |
| element_set_no | integer | — | yes | — |
| rev_at_epoch | integer | — | yes | — |
| period_min | number | min | no | 1440 / mean_motion |
| semimajor_axis_km | number | km | no | From mean motion by Kepler's third law with SGP4's WGS-72 constants (mu 398600.8 km^3/s^2); approximate |
| perigee_km | number | km | no | semimajor_axis_km * (1 - e) minus the WGS-72 equatorial radius (6378.135 km); approximate |
| apogee_km | number | km | no | semimajor_axis_km * (1 + e) minus 6378.135 km; approximate |
| center_name | text | — | yes | CENTER_NAME (EARTH) |
| ref_frame | text | — | yes | REF_FRAME (TEME) |
| time_system | text | — | yes | TIME_SYSTEM (UTC) |
| mean_element_theory | text | — | yes | MEAN_ELEMENT_THEORY (SGP4) |
| originator | text | — | yes | ORIGINATOR of the message |
| creation_date | datetime (ISO 8601, UTC) | — | yes | When Space-Track generated the message (UTC) |
Source and license
- Source
- Space-Track.org GP class (current general perturbations element sets)
- Publisher
- USSPACECOM, 18th Space Defense Squadron
- License
- SpaceTrack Basic SSA Redistribution (
LicenseRef-SpaceTrack-Basic-SSA-Redistribution) - Commercial use
- Allowed
Credit the source with this exact text:
Orbital data from Space-Track.org, provided by USSPACECOM (18th Space Defense Squadron).
Checked every 1 day. If the source hasn't changed in 2 days, the status page flags it as stale.
Endpoints
Every URL for this dataset. To pin the current version, put it after the id:
/v1/gp-current@<version>.
The API reference describes each response.
| What | URL |
|---|---|
| Metadata: version, coverage, downloads, validation | /v1/gp-current |
| Versions and monthly snapshots | /v1/gp-current/versions |
| Partitions | /v1/gp-current/locations |
| Rows for one norad_block (JSON) | /v1/gp-current/table/{norad_block}.json |
| Rows for one norad_block (CSV) | /v1/gp-current/table/{norad_block}.csv |
| All rows in one file (tables up to 50,000 rows) | /v1/gp-current/table/all.json |
| Whole dataset (CSV) | /v1/gp-current/download/gp-current.csv |
| Whole dataset (Parquet) | /v1/gp-current/download/gp-current.parquet |