CelesTrak GP Orbital Elements
CelesTrak GP Orbital Elements
CelesTrak publishes General Perturbations orbital element data for Earth-orbiting objects through documented queries in TLE, 2LE, XML, KVN, JSON and CSV formats. Queries select a catalogue number, international designator, name, group, special set or last-update window. Downloads need no account or key.
Coverage
Current GP element sets for active satellites and named groups, plus queries for decaying, first and last available data. Granularity: one orbital element set per tracked object; epochs and update timing vary by object. CelesTrak checks for new GP data once every two hours, while the underlying 18th Space Defense Squadron data may update only two or three times a day. Free history depth: limited first/last and special queries; a complete archive depth is not stated. Delay: Not stated.
Verdict
This is a machine-readable orbital-state signal for satellite tracking, pass prediction, conjunction context and space-activity monitoring. GP elements are model inputs, not precise ephemerides, and can be stale around manoeuvres or newly catalogued objects; retain the epoch and object identifiers. CelesTrak enforces one download per update for some large groups: request only what you need, no more than once every two hours, stop on HTTP errors and cache within your organization.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load CelesTrak station orbital elements into pandas and Parquet. Checked against the provider's documentation on Nov 4, 2026.
Access
- No account or key. Select a documented GROUP and FORMAT.
- Download a group only once per update.
Request
curl 'https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=JSON'Format
JSON array of CCSDS OMM fields including object identifiers, epoch and orbital elements.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""CelesTrak stations GP data -> pandas -> Parquet. No key."""
import requests
import pandas as pd
URL = "https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=JSON"
r = requests.get(URL, timeout=60)
r.raise_for_status()
df = pd.DataFrame(r.json())
df.to_parquet("celestrak_stations_gp.parquet", index=False)
epoch = pd.to_datetime(df["EPOCH"]).max().isoformat()
print(len(df), "station objects; newest epoch", epoch)Run by us on 2026-11-04 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 20 station objects; newest epoch 2026-11-04T08:52:07.404096
Limits
- Download GP data no more than once every two hours.
- Stop on HTTP errors; repeated requests can be blocked.
Quirks
- Epochs vary by object.
- GP elements are model inputs, not position observations.
- Prefer JSON or CSV over legacy fixed-width assumptions.
Terms and attribution
- CelesTrak calls the data freely available but states no reuse licence.
- Follow its usage policy.
Sources
- https://celestrak.org/usage-policy.php: “Only download the data you need, when you are going to use it, and only download data once per update.”
- https://celestrak.org/usage-policy.php: “For GP data, updates are once every 2 hours.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer