CelesTrak TLE & Orbital Elements Scraper
Pricing
Pay per event
CelesTrak TLE & Orbital Elements Scraper
Pull live TLE / orbital elements from CelesTrak's GP catalog for any group (Starlink, GPS, weather, active, debris…) in one run. Adds raw TLE lines plus server-computed period, apogee and perigee, and optional object-type, RCS size, country and launch-date enrichment.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape live TLE and orbital elements from the CelesTrak GP catalog. Returns the full OMM element set, raw two-line elements, and server-computed orbital period, apogee, and perigee for any group — Starlink, GPS, weather, active payloads, debris fields — across roughly 30,000 tracked objects.
CelesTrak Scraper Features
- Scrapes any CelesTrak GP group by name. Starlink, GPS, weather, NOAA, GEO, debris clouds — whatever's in the catalog.
- Pulls multiple groups in a single run. Ask for
starlink,gps-ops, andweatherat once instead of three separate jobs. - Returns the raw
tle_line1/tle_line2strings, so you can feed your own SGP4 propagator without reformatting. - Computes orbital period, apogee, and perigee server-side from mean motion and eccentricity — no SGP4 client library required.
- Enriches each object with type, RCS size class, owner country, and launch date via a CelesTrak SATCAT join (69,000+ catalogued objects).
- Pure JSON API. No browser, no proxies, no auth.
- Paces requests under 1 req/sec, the way CelesTrak asks.
Who Uses CelesTrak Orbital Data?
- Satellite-tracking app developers — Feed live elements into a ground-track or pass-prediction UI.
- Collision-avoidance and SDA teams — Pull payloads plus debris fields in one run and screen conjunctions against derived apogee/perigee.
- Amateur radio and antenna operators — Track NOAA, weather, and amateur satellites without hand-copying TLEs off a webpage.
- Researchers and analysts — Build a catalog snapshot with launch dates and owner countries already joined, which is the part nobody enjoys doing by hand.
- 3D visualization builders — Drive a globe or orbit viewer with clean, consistent JSON instead of parsing fixed-width TLE text.
How the CelesTrak Scraper Works
- Pick one or more CelesTrak groups (e.g.
["starlink", "weather"]). - For each group, the actor fetches the GP elements as JSON and, optionally, the matching
FORMAT=tlefeed — then merges the raw lines onto each object by NORAD id. - If SATCAT enrichment is on, it downloads the catalog once per run and joins object type, RCS size, owner country, and launch date.
- Every object gets its orbital period, apogee, and perigee computed from mean motion and eccentricity before it's saved. You get a flat record per object.
Input
{"groups": ["weather", "gps-ops"],"maxItems": 50,"includeTleLines": true,"enrichWithSatcat": true}
| Field | Type | Default | Description |
|---|---|---|---|
groups | array | ["weather"] | One or more CelesTrak GP group names. Common values: active, starlink, gps-ops, weather, noaa, goes, science, geo, stations, last-30-days, cosmos-2251-debris, iridium-33-debris. |
maxItems | integer | 15 | Maximum total objects returned across all groups. Raise it to pull a full group. |
includeTleLines | boolean | true | Fetch the companion FORMAT=tle feed and attach raw tle_line1 / tle_line2. |
enrichWithSatcat | boolean | true | Join CelesTrak's SATCAT (one ~6.6 MB download per run) for object_type, rcs_size, country_code, and launch_date. Turn it off for faster, leaner runs. |
To pull a complete group, raise maxItems (e.g. 7000 for Starlink) — the catalog is open and free.
CelesTrak Scraper Output Fields
{"object_name": "DMSP 5D-3 F16 (USA 172)","object_id": "2003-048A","norad_cat_id": 28054,"object_type": "PAYLOAD","rcs_size": "LARGE","epoch": "2026-05-30T23:18:53.817408","mean_motion": 14.14481119,"eccentricity": 0.00068508,"inclination": 98.9896,"ra_of_asc_node": 174.6853,"arg_of_pericenter": 186.7151,"mean_anomaly": 213.2235,"ephemeris_type": 0,"classification_type": "U","element_set_no": 999,"rev_at_epoch": 16705,"bstar": 0.000050965825,"mean_motion_dot": 5.2e-7,"mean_motion_ddot": 0,"tle_line1": "1 28054U 03048A 26150.97145622 .00000052 00000+0 50966-4 0 9990","tle_line2": "2 28054 98.9896 174.6853 0006850 186.7151 213.2235 14.14481119167053","group": "weather","launch_date": "2003-10-18","country_code": "US","period_min": 101.804,"apogee_km": 849.026,"perigee_km": 839.13}
| Field | Type | Description |
|---|---|---|
object_name | string | Satellite / object name. |
object_id | string | International (COSPAR) designator. |
norad_cat_id | integer | NORAD catalog number. |
object_type | string | PAYLOAD / ROCKET BODY / DEBRIS / UNKNOWN / TBA. From SATCAT; null when enrichment is off. |
rcs_size | string | Radar cross-section class — SMALL / MEDIUM / LARGE. From SATCAT; null when unavailable. |
epoch | string | TLE epoch, ISO 8601 UTC. |
mean_motion | number | Revolutions per day. |
eccentricity | number | Orbital eccentricity (0 = circular). |
inclination | number | Inclination, degrees. |
ra_of_asc_node | number | Right ascension of the ascending node, degrees. |
arg_of_pericenter | number | Argument of pericenter, degrees. |
mean_anomaly | number | Mean anomaly at epoch, degrees. |
ephemeris_type | integer | Ephemeris type (0 for distributed TLEs). |
classification_type | string | U unclassified, C classified, S secret. |
element_set_no | integer | Element set number. |
rev_at_epoch | integer | Revolution number at epoch. |
bstar | number | B* drag term (1/earth radii). |
mean_motion_dot | number | First derivative of mean motion. |
mean_motion_ddot | number | Second derivative of mean motion. |
tle_line1 | string | Raw TLE line 1. Null when includeTleLines is off. |
tle_line2 | string | Raw TLE line 2. Null when includeTleLines is off. |
group | string | CelesTrak group the object came from. |
launch_date | string | Launch date YYYY-MM-DD. From SATCAT; null when enrichment is off. |
country_code | string | Owner / country code, e.g. US, PRC, CIS. From SATCAT. |
period_min | number | Derived orbital period in minutes (1440 / mean_motion). |
apogee_km | number | Derived apogee altitude above Earth's surface, km. |
perigee_km | number | Derived perigee altitude above Earth's surface, km. |
FAQ
How do I scrape TLE data from CelesTrak?
CelesTrak TLE & Orbital Elements Scraper does it for you. Give it a list of group names, and it returns the elements as clean JSON — no need to parse fixed-width two-line text or hit the GP API yourself.
What data can I get from CelesTrak?
The scraper returns the full OMM element set (mean motion, eccentricity, inclination, RAAN, and the rest), the raw TLE lines, and — when SATCAT enrichment is on — object type, RCS size, owner country, and launch date. It also computes orbital period, apogee, and perigee for every object.
Do I need an SGP4 library to get apogee and perigee?
No. The scraper computes period, apogee, and perigee server-side from mean motion and eccentricity, so those numbers are already in the output. If you want full propagation, the raw TLE lines are there to feed your own SGP4.
Can I scrape multiple groups in one run?
Yes. Pass several group names in groups and the actor pulls them all in a single run, tagging each record with its source group. One job instead of one per group.
How much does it cost to run?
CelesTrak TLE & Orbital Elements Scraper bills pay-per-event: a small per-run start fee plus a per-object charge. CelesTrak is free and open, so the only cost is the actor's runtime.
Does it need proxies?
No. It hits the public CelesTrak API directly at a polite sub-1-req/sec pace and caches the SATCAT download once per run.
Need More Features?
Need a different group, an extra computed field, or a historical TLE archive? File an issue or get in touch.
Why Use the CelesTrak Scraper?
- Derived orbital params included — period, apogee, and perigee are computed for you, no client-side SGP4.
- One run, many groups — pull payloads, GPS, weather, and debris together, each record tagged with its group, instead of stitching separate jobs together afterward.
- Enriched and clean — object type, RCS size, owner, and launch date joined from SATCAT, returned as flat JSON with consistent field names.