ParseForge Scrapers

CelesTrak Satellites Orbital Catalog Scraper

parseforge/celestrak-tle-satellites-scraper

BusinessAutomationOther

Scrapes satellite orbital data from CelesTrak by group, NORAD ID, or international designator. Returns each object as a flat row with TLE lines and orbital elements.

Run this scraper See the API call
Total users
3
Monthly active
0
Total runs
113
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

CelesTrak Satellites Orbital Catalog Scraper

Scrape satellite orbital data from CelesTrak by group, NORAD ID, or international designator, up to a million objects per run. Every satellite comes with its TLE lines, orbital elements, and metadata. No login or API key. Export to CSV, JSON, Excel, or XML.

CelesTrak publishes the most current two-line element sets for thousands of satellites, space stations, and debris objects, but pulling that data programmatically means parsing raw GP feeds and handling group-specific URLs. This Actor reads the public CelesTrak catalog directly, lets you pick from 50+ pre-defined groups (Starlink, OneWeb, GPS, weather, debris fields, and more), and returns each object in one fixed schema. You can also fetch every group in a single run for a complete snapshot, or target a single satellite by NORAD ID or COSPAR international designator.

Who uses it What they scrape CelesTrak for
Satellite operators Monitor their own constellations and nearby objects for conjunction analysis.
Space situational awareness analysts Pull the latest orbital elements for debris fields and active payloads.
Amateur astronomers Get TLEs for visual passes and radio tracking of specific satellites.
Researchers and educators Build a complete snapshot of the orbital catalog for population studies.

What it does

This Actor collects satellite orbital data from CelesTrak by group, NORAD ID, or international designator, and returns each object as a flat row with TLE lines and orbital elements.

  • ๐Ÿ›ฐ๏ธ 50+ pre-defined groups: active satellites, Starlink, OneWeb, GPS, weather, debris fields, amateur radio, and more.
  • ๐Ÿ” Single-object lookup: fetch one satellite by NORAD catalog ID (e.g. 25544 for ISS) or COSPAR international designator (e.g. 1998-067A).
  • ๐Ÿ“ฆ Fetch all groups: iterate every available group and merge results into one dataset for a full catalog snapshot.
  • ๐Ÿ“ Orbital filters: narrow results by minimum and maximum inclination in degrees.
  • ๐Ÿ”Ž Name search: filter the fetched group by satellite name substring, case-insensitive (e.g. 'STARLINK', 'NOAA').
  • ๐Ÿ“„ Supplementary catalogue: pass a SUPCAT identifier for operator-specific or mission-specific catalogs.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with CelesTrak data

๐Ÿ›ฐ๏ธ Monitor a constellation.

A satellite operator selects the Starlink group, sets maxItems to 5000, and exports the latest TLEs to feed an internal conjunction assessment tool.

๐Ÿ“ก Track debris fields.

A space situational awareness analyst pulls the Fengyun-1C debris group daily and filters by inclination to identify objects crossing a protected orbital regime.

๐Ÿ”ญ Plan visual observations.

An amateur astronomer fetches the brightest visual group, searches for 'ISS', and uses the TLE to predict the next overhead pass.

๐Ÿ“Š Study the orbital population.

A researcher enables fetchAllGroups, collects every active satellite and debris object, and analyzes inclination distributions across operator nations.

Why choose this scraper

What you get
No API key or registration Reads the public CelesTrak feeds directly with no account setup.
Fixed flat schema Every satellite row has the same fields, ready for analysis or a database.
One run, all groups The fetch-all-groups option builds a complete catalog in a single execution.
Precision targeting Pull exactly one object by NORAD ID or COSPAR designator when you need a single TLE update.

How it compares

This Actor and the CelesTrak TLE & Orbital Elements Scraper both pull data from CelesTrak, but they differ in the fields they return and the filtering they offer.

Feature ParseForge CelesTrak TLE & Orbital Elements Scraper
Pre-defined satellite groups Yes, 50+ groups Yes
Fetch all groups in one run Yes Not listed
Single-object lookup by NORAD ID Yes Not listed
Single-object lookup by international designator Yes Not listed
Inclination range filter Yes Not listed
Satellite name search filter Yes Not listed
Server-computed apogee and perigee Not listed Yes

Configure the run

Drive the Actor from a satellite group, NORAD ID, or international designator, and filters run after the group is fetched so only matching objects reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10
}

A larger pull:

{
  "maxItems": 200
}

Pricing

Pay-per-result: $0.0325 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.25
1,000 results $32.50
10,000 results $325.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the CelesTrak Satellites Orbital Catalog Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to CelesTrak through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/celestrak-tle-satellites-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your search filter or inclination range is not too restrictive. If you set both a NORAD ID and a group, the NORAD ID takes precedence and the group is ignored. Try removing filters and running with only a group selected.

Why does my run time out?

Fetching all groups with a high maxItems can take a while. Increase the run timeout in your Actor settings, or reduce maxItems and run multiple smaller fetches.

Why do I get fewer results than expected?

The maxItems setting caps the total output. If you set it to 100 but the group has 5000 objects, only the first 100 are returned. Raise maxItems or remove the limit.

Why is my NORAD ID lookup returning the wrong satellite?

Verify the NORAD catalog ID. The ISS is 25544. If you also set a group or search filter, the NORAD ID overrides them, so the group selection does not matter.

What does 'supplementary catalogue not found' mean?

The SUPCAT value you entered is not recognized by the CelesTrak feed for the selected group. Check the CelesTrak documentation for valid SUPCAT identifiers, or leave the field blank.

FAQ

Question Answer
What is a TLE? A two-line element set is a standard format that encodes a satellite's orbital state at a specific epoch. It lets you predict the satellite's position with reasonable accuracy for a few days.
How often does CelesTrak update the data? CelesTrak refreshes its GP feeds multiple times per day as new element sets are published by the U.S. Space Force. This Actor pulls the latest available data on each run.
Can I get TLEs for a single satellite? Yes. Set the NORAD Catalog ID (e.g. 25544 for the ISS) or the International Designator (e.g. 1998-067A) and the Actor returns only that object.
What groups are available? Over 50 groups: active satellites, space stations, visual objects, weather, navigation constellations (GPS, GLONASS, Galileo, BeiDou), communications (Starlink, OneWeb, Iridium), debris fields, amateur radio, CubeSats, and more.
How do I get every satellite in one run? Enable the 'Fetch All Groups' checkbox. The Actor iterates every available group and merges the results into a single dataset.
Can I filter by orbital inclination? Yes. Set a minimum inclination, a maximum inclination, or both, and only objects whose inclination falls within that range are kept.
What is a SUPCAT? A supplementary catalogue identifier that some CelesTrak feeds support for operator-specific or mission-specific sub-catalogs. Leave it blank unless you need a particular sub-catalog.
Does this Actor need an API key? No. It reads the public CelesTrak GP data feeds directly. No registration, no API key, no OAuth.
What export formats are supported? You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform.
How many satellites can I scrape in one run? You can set maxItems up to 1,000,000. The active group alone contains tens of thousands of objects, and fetchAllGroups can return even more.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by CelesTrak. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
group string (52 options) Pre-defined satellite group to retrieve. 'active' returns every active object. Specialized groups narrow to constellations, missions, or debris fields. Mutually exclusive with NORAD ID and International Designator (those take precedence). active
fetchAllGroups boolean Iterate every available satellite group sequentially and merge results into one dataset. Overrides the single-group selection above. Useful for a complete catalogue snapshot in a single run. false
supcat string Optional supplementary catalogue identifier (e.g. specific operator or mission catalog) supported by the upstream catalogue. not set
search string Filter results by object name (case-insensitive substring, e.g. 'STARLINK', 'ISS', 'NOAA'). Filter is applied after fetching the chosen group. not set
noradId integer Return only the object with this NORAD catalog ID (e.g. 25544 = ISS). Takes precedence over Group and International Designator. not set
objectId string Return only the object with this COSPAR international designator (e.g. '1998-067A' = ISS). Takes precedence over Group when set, but yields to NORAD Catalog ID if both are provided. not set
minInclination number Only include objects with orbital inclination greater than or equal to this value. not set
maxInclination number Only include objects with orbital inclination less than or equal to this value. not set
maxItems integer How many satellites to collect per run. 10

Pricing

from $24.38 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02438 to $0.0325

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~celestrak-tle-satellites-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run CelesTrak Satellites Orbital Catalog Scraper on Apify All scrapers