CelesTrak TLE & Orbital Elements Scraper avatar

CelesTrak TLE & Orbital Elements Scraper

Pricing

Pay per event

Go to Apify Store
CelesTrak TLE & Orbital Elements Scraper

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

BowTiedRaccoon

Maintained by Community

Actor 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, and weather at once instead of three separate jobs.
  • Returns the raw tle_line1 / tle_line2 strings, 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

  1. Pick one or more CelesTrak groups (e.g. ["starlink", "weather"]).
  2. For each group, the actor fetches the GP elements as JSON and, optionally, the matching FORMAT=tle feed — then merges the raw lines onto each object by NORAD id.
  3. If SATCAT enrichment is on, it downloads the catalog once per run and joins object type, RCS size, owner country, and launch date.
  4. 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
}
FieldTypeDefaultDescription
groupsarray["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.
maxItemsinteger15Maximum total objects returned across all groups. Raise it to pull a full group.
includeTleLinesbooleantrueFetch the companion FORMAT=tle feed and attach raw tle_line1 / tle_line2.
enrichWithSatcatbooleantrueJoin 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
}
FieldTypeDescription
object_namestringSatellite / object name.
object_idstringInternational (COSPAR) designator.
norad_cat_idintegerNORAD catalog number.
object_typestringPAYLOAD / ROCKET BODY / DEBRIS / UNKNOWN / TBA. From SATCAT; null when enrichment is off.
rcs_sizestringRadar cross-section class — SMALL / MEDIUM / LARGE. From SATCAT; null when unavailable.
epochstringTLE epoch, ISO 8601 UTC.
mean_motionnumberRevolutions per day.
eccentricitynumberOrbital eccentricity (0 = circular).
inclinationnumberInclination, degrees.
ra_of_asc_nodenumberRight ascension of the ascending node, degrees.
arg_of_pericenternumberArgument of pericenter, degrees.
mean_anomalynumberMean anomaly at epoch, degrees.
ephemeris_typeintegerEphemeris type (0 for distributed TLEs).
classification_typestringU unclassified, C classified, S secret.
element_set_nointegerElement set number.
rev_at_epochintegerRevolution number at epoch.
bstarnumberB* drag term (1/earth radii).
mean_motion_dotnumberFirst derivative of mean motion.
mean_motion_ddotnumberSecond derivative of mean motion.
tle_line1stringRaw TLE line 1. Null when includeTleLines is off.
tle_line2stringRaw TLE line 2. Null when includeTleLines is off.
groupstringCelesTrak group the object came from.
launch_datestringLaunch date YYYY-MM-DD. From SATCAT; null when enrichment is off.
country_codestringOwner / country code, e.g. US, PRC, CIS. From SATCAT.
period_minnumberDerived orbital period in minutes (1440 / mean_motion).
apogee_kmnumberDerived apogee altitude above Earth's surface, km.
perigee_kmnumberDerived 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.