# CelesTrak Satellites Orbital Catalog Scraper (`parseforge/celestrak-tle-satellites-scraper`) Actor

Pull fresh CelesTrak orbital element sets for 30,000+ tracked Earth-orbiting objects. Filter by group (active satellites, Starlink, GPS, Galileo, ISS, debris, weather, etc.), search by NORAD ID or name. Returns inclination, eccentricity, mean motion, epoch, and full orbital parameters per object.

- **URL**: https://apify.com/parseforge/celestrak-tle-satellites-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $24.38 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🛰️ CelesTrak Satellites Orbital Catalog Scraper

> 🚀 **Export the live orbital catalog in seconds.** Pull fresh element sets for tens of thousands of tracked Earth-orbiting objects across **47 satellite groups** (Starlink, ISS, GPS, Galileo, OneWeb, Iridium, NOAA, debris fields, and more). No login, no API key, no manual parsing.

> 🕒 **Last updated:** 2026-05-15 · **📊 23 fields** per record · **🛰️ 47 satellite groups** · **🌐 Constellations, GNSS, debris, science, military**

The **CelesTrak Satellites Orbital Catalog Scraper** pulls the official CelesTrak orbital element catalog and returns **23 fields per object**, including NORAD catalog ID, international designator, epoch, inclination, eccentricity, mean motion, B* drag term, plus computed orbital period, semi-major axis, and approximate altitude. The underlying catalog is curated from the U.S. Space Force public space situational awareness feed and has been the reference orbital dataset for satellite operators, hobbyists, and academic researchers since 1985.

The catalog covers **47 curated satellite groups**, including every active object, the major communications constellations (Starlink, OneWeb, Kuiper, Iridium NEXT, Globalstar, Orbcomm), all four GNSS systems (GPS, GLONASS, Galileo, BeiDou), space stations, weather and Earth-resource satellites, CubeSats, debris fields (Cosmos 2251, Iridium 33, Fengyun-1C), and the most-recent 30 days of launches. This Actor exports the lot as CSV, Excel, JSON, or XML. All filters run server-side, so you skip the orbital math too.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Aerospace engineers, satellite operators, ground-station builders, GIS teams, OSINT analysts, astronomy hobbyists, educators | Pass prediction, conjunction screening, ground-track plotting, constellation analytics, telescope scheduling, ham-radio satellite tracking |

---

### 📋 What the CelesTrak Satellites Scraper does

Five filtering workflows in a single run:

- 🛰️ **Group export.** Pick any of 47 curated groups (active, Starlink, GPS, ISS, debris, weather, etc.).
- 🔍 **Name search.** Substring match across object name (e.g. `STARLINK`, `ISS`, `NOAA`).
- 🆔 **Single-object lookup.** Pull one object by NORAD catalog ID or COSPAR international designator.
- 📐 **Inclination filter.** Restrict to a specific orbital plane band (e.g. polar, sun-synchronous, equatorial).
- ⚡ **Computed orbital metrics.** Period in minutes, semi-major axis in km, and approximate altitude above Earth, derived per record.

Each record includes the full mean motion, eccentricity, RAAN, argument of pericenter, mean anomaly, drag term, ephemeris type, and revolution count needed to feed any SGP4 propagator.

> 💡 **Why it matters:** orbital element sets refresh constantly as ground stations track each pass. Building your own pipeline means handling the catalog format, normalizing fields, and re-pulling on a cadence. This Actor delivers a clean per-object record on every run, so your propagator stays fed.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded orbital catalog._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>group</code></td><td>string</td><td><code>"active"</code></td><td>One of 47 curated satellite groups.</td></tr>
<tr><td><code>search</code></td><td>string</td><td><code>""</code></td><td>Case-insensitive substring filter on object name.</td></tr>
<tr><td><code>noradId</code></td><td>integer</td><td><code>null</code></td><td>Pull a single object by NORAD catalog ID (e.g. 25544 = ISS).</td></tr>
<tr><td><code>objectId</code></td><td>string</td><td><code>""</code></td><td>Pull a single object by COSPAR designator (e.g. <code>1998-067A</code>).</td></tr>
<tr><td><code>minInclination</code>, <code>maxInclination</code></td><td>number</td><td><code>null</code></td><td>Inclination band filter, in degrees (0-180).</td></tr>
</tbody>
</table>

**Example: 50 most recent Starlink satellites.**

```json
{
    "maxItems": 50,
    "group": "starlink"
}
````

**Example: just the International Space Station.**

```json
{
    "noradId": 25544
}
```

> ⚠️ **Good to Know:** orbital element sets are snapshots of state at the epoch timestamp and accuracy degrades over time. For pass prediction more than a few days from epoch, refresh your dataset. The catalog also contains a small number of analyst objects whose identities are intentionally non-public.

***

### 📊 Output

Each object record contains **23 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🛰️ `objectName` | string | `"ISS (ZARYA)"` |
| 🆔 `noradCatId` | number | `25544` |
| 🆔 `objectId` | string | `"1998-067A"` |
| 📅 `launchYear` | number | null | `1998` |
| 🚦 `classification` | string | `"U"` |
| 🕒 `epoch` | ISO 8601 | `"2026-05-14T08:23:11.123Z"` |
| 📐 `inclination` | number | `51.6403` |
| 📐 `eccentricity` | number | `0.0006142` |
| 📐 `raOfAscNode` | number | `123.4567` |
| 📐 `argOfPericenter` | number | `89.0123` |
| 📐 `meanAnomaly` | number | `271.1234` |
| 📐 `meanMotion` | number | `15.49845678` |
| 📐 `meanMotionDot` | number | `0.00012345` |
| 📐 `meanMotionDDot` | number | `0` |
| 📐 `bstar` | number | `0.000234` |
| 🔢 `ephemerisType` | number | `0` |
| 🔢 `elementSetNo` | number | `999` |
| 🔢 `revAtEpoch` | number | `48123` |
| 🕒 `orbitalPeriodMinutes` | number | `92.945` |
| 📏 `semiMajorAxisKm` | number | `6794.123` |
| 📏 `approxAltitudeKm` | number | `415.986` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-15T00:00:00.000Z"` |
| ❌ `error` | string | undefined | (only when a record fails) |

#### 📦 Sample records

<details>
<summary><strong>🛰️ International Space Station (ISS, NORAD 25544)</strong></summary>

```json
{
    "objectName": "ISS (ZARYA)",
    "noradCatId": 25544,
    "objectId": "1998-067A",
    "launchYear": 1998,
    "classification": "U",
    "epoch": "2026-05-14T08:23:11.123Z",
    "inclination": 51.6403,
    "eccentricity": 0.0006142,
    "raOfAscNode": 123.4567,
    "argOfPericenter": 89.0123,
    "meanAnomaly": 271.1234,
    "meanMotion": 15.49845678,
    "meanMotionDot": 0.00012345,
    "meanMotionDDot": 0,
    "bstar": 0.000234,
    "ephemerisType": 0,
    "elementSetNo": 999,
    "revAtEpoch": 48123,
    "orbitalPeriodMinutes": 92.945,
    "semiMajorAxisKm": 6794.123,
    "approxAltitudeKm": 415.986,
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

<details>
<summary><strong>📡 Starlink low-Earth-orbit broadband satellite</strong></summary>

```json
{
    "objectName": "STARLINK-30123",
    "noradCatId": 58234,
    "objectId": "2024-019AB",
    "launchYear": 2024,
    "classification": "U",
    "epoch": "2026-05-14T05:11:43.987Z",
    "inclination": 53.1612,
    "eccentricity": 0.0001523,
    "raOfAscNode": 217.4321,
    "argOfPericenter": 75.0021,
    "meanAnomaly": 285.4101,
    "meanMotion": 15.06392145,
    "meanMotionDot": 0.00009823,
    "meanMotionDDot": 0,
    "bstar": 0.0001145,
    "ephemerisType": 0,
    "elementSetNo": 1240,
    "revAtEpoch": 8421,
    "orbitalPeriodMinutes": 95.591,
    "semiMajorAxisKm": 6921.456,
    "approxAltitudeKm": 543.319,
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🧭 GPS BIIR-2 navigation satellite (NORAD 24876)</strong></summary>

```json
{
    "objectName": "GPS BIIR-2 (PRN 13)",
    "noradCatId": 24876,
    "objectId": "1997-035A",
    "launchYear": 1997,
    "classification": "U",
    "epoch": "2026-05-14T12:45:32.000Z",
    "inclination": 55.6612,
    "eccentricity": 0.0073412,
    "raOfAscNode": 318.4567,
    "argOfPericenter": 51.0023,
    "meanAnomaly": 308.6712,
    "meanMotion": 2.00565412,
    "meanMotionDot": -0.00000012,
    "meanMotionDDot": 0,
    "bstar": 0,
    "ephemerisType": 0,
    "elementSetNo": 502,
    "revAtEpoch": 21540,
    "orbitalPeriodMinutes": 718.045,
    "semiMajorAxisKm": 26561.876,
    "approxAltitudeKm": 20183.739,
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🛰️ | **47 curated groups.** From every active object down to a single debris field, all selectable from a dropdown. |
| 🆔 | **Two ways to fetch a single object.** NORAD catalog ID or COSPAR international designator, no group lookup needed. |
| 📐 | **Server-side inclination filter.** Slice the catalog into LEO polar, sun-synchronous, GTO, GEO, or any custom band. |
| ⚡ | **Computed orbital metrics.** Period, semi-major axis, and approximate altitude precomputed per record so you can sort by altitude without touching SGP4. |
| 🔁 | **Always fresh.** Every run pulls the latest element set, so your propagator works from current state. |
| 🚫 | **No authentication.** Works on the public CelesTrak feed. No login, no API key, no quota wall. |
| 📦 | **Clean structured output.** Field names, units, and types match standard space surveillance conventions. |

> 📊 The orbital catalog is the foundation of every pass prediction, conjunction screen, and ground-track plot in modern spaceflight operations.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ CelesTrak Satellites Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **47 groups, 30,000+ objects** | **Live per run** | group, NORAD ID, name, inclination | ⚡ 2 min |
| Official Space-Track catalog | Free | Full SSC | Live | Many | 🐢 Account approval + heavy parsing |
| Third-party paid feeds | $500+/month | High-precision | Streaming | Many | ⏳ Hours |
| Static catalog dumps | Free | Subset | Stale | None | 🕒 Variable |

Pick this Actor when you want quick, filtered, propagator-ready records without managing accounts or parsers.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the CelesTrak Satellites Orbital Catalog Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a group (or look up a single object by NORAD ID), narrow with name search or inclination filters, and set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📡 Satellite operators and ground stations

- Refresh tracking files before every pass
- Schedule downlinks against current state
- Detect epoch staleness across constellations
- Compare own-fleet inclination drift over time

</td>
<td width="50%" valign="top">

#### 🧭 Conjunction analysis and SSA

- Feed propagator with current LEO traffic
- Filter to a target altitude band for screening
- Track debris-field migration after fragmentation events
- Build proximity dashboards for executive review

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📊 Constellation analytics

- Count active Starlink, OneWeb, Kuiper, Iridium NEXT objects
- Compare orbital plane spreads across providers
- Trend altitude band fill over months
- Build investor-ready slides on LEO occupation

</td>
<td width="50%" valign="top">

#### 🛰️ Earth-observation and science

- Pull every active weather, GOES, and Earth-resource satellite
- Build sun-synchronous overpass schedules
- Map science satellites by altitude and inclination
- Cross-reference geodetic and SARSAT objects

</td>
</tr>
</table>

***

### 🔌 Automating CelesTrak Satellites Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Hourly or twice-daily refreshes keep your propagator state in sync with the public catalog automatically.

***

### 🌟 Beyond business use cases

Orbital data powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Reproducible orbital studies with cited dataset pulls
- Coursework on Keplerian elements and SGP4 propagation
- Long-term debris-evolution analysis
- Cross-constellation comparative studies

</td>
<td width="50%">

#### 🎨 Personal and creative

- Backyard satellite-spotting apps and pass predictors
- ISS-overhead notification bots for hobbyists
- Real-time globe visualizations and screensavers
- Astrophotography session planners

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Open SSA dashboards for transparency
- Investigative journalism on orbital congestion
- Education programs at planetariums and museums
- SatNOGS community ground-station scheduling

</td>
<td width="50%">

#### 🧪 Experimentation

- Train ML models on orbital-state time series
- Prototype collision-avoidance heuristics
- Build agent pipelines that resolve NORAD IDs
- Validate visualization concepts with live data

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20CelesTrak%20Satellites%20Orbital%20Catalog%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20CelesTrak%20Satellites%20Orbital%20Catalog%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20CelesTrak%20Satellites%20Orbital%20Catalog%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20CelesTrak%20Satellites%20Orbital%20Catalog%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick a group (or a single NORAD ID), set optional name and inclination filters, and the Actor pulls the live element set, computes period, semi-major axis, and altitude per object, and emits one clean record per satellite. No setup, no parser engineering.

#### 📏 How accurate are the elements?

Element sets are state snapshots at the epoch timestamp. Accuracy is high near epoch and degrades over hours to days depending on object altitude and drag. For pass prediction more than 48 hours out, refresh your dataset.

#### 🔁 How often is the catalog refreshed?

The official catalog updates continuously as ground stations track each pass. Every Actor run pulls the latest available state.

#### 🛰️ Which satellite groups are supported?

All 47 curated groups, including active satellites, space stations, every major broadband and narrowband constellation (Starlink, OneWeb, Kuiper, Iridium, Iridium NEXT, Globalstar, Orbcomm, Swarm), all four GNSS systems, weather, GOES, Earth resources, science, geodetic, engineering, education, military, radar, CubeSats, and three named debris fields.

#### 🆔 Can I pull just one satellite?

Yes. Set `noradId` to a numeric catalog ID (e.g. `25544` for the ISS), or set `objectId` to a COSPAR international designator (e.g. `1998-067A`). Both bypass the group filter.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to refresh the catalog on any cron interval (hourly, twice-daily, daily) and keep downstream propagators in sync.

#### ⚖️ Is this data legal to use?

The catalog is published as an open data feed for the international space community. Review the downstream terms of your specific use case, but raw orbital element sets are public information.

#### 💼 Can I use this data commercially?

Yes. The underlying orbital data is public. You are responsible for complying with any downstream regulatory or export-control requirements that may apply to specific objects.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.

#### 🔁 What happens if a run fails or gets interrupted?

Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.

#### 🛬 What if I need raw line-1/line-2 strings instead?

This Actor returns parsed and computed records. For raw two-line element strings, reach out via the contact form below to request a companion variant.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

CelesTrak Satellites Orbital Catalog Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**n8n**](https://docs.apify.com/platform/integrations/n8n) - Drop runs into self-hosted workflows
- [**Pipedream**](https://docs.apify.com/platform/integrations/pipedream) - Trigger event-driven pipelines
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe orbital data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push the catalog into your propagator, or alert your team in Slack when a constellation's pending count crosses a threshold.

***

### 🔗 Recommended Actors

- [**🌍 EONET Natural Events Scraper**](https://apify.com/parseforge/eonet-natural-events-scraper) - NASA's open natural-event tracker
- [**🚀 Launch Library 2 Rocket Launches Scraper**](https://apify.com/parseforge/ll-spacedevs-launch-scraper) - Upcoming and historical orbital launches
- [**🌌 NASA Astronomy Picture of the Day Scraper**](https://apify.com/parseforge/apod-nasa-images-scraper) - Daily astronomy archive back to 1995
- [**✈️ OurAirports Scraper**](https://apify.com/parseforge/ourairports-scraper) - 85,000+ airports, heliports, and airfields
- [**🌦️ NOAA Weather Scraper**](https://apify.com/parseforge/noaa-weather-scraper) - Live U.S. weather observations and forecasts

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CelesTrak, Dr. T.S. Kelso, the U.S. Space Force, or any of its data contributors. All trademarks mentioned are the property of their respective owners. Only publicly available open orbital data is collected.

# Actor input Schema

## `group` (type: `string`):

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).

## `fetchAllGroups` (type: `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.

## `supcat` (type: `string`):

Optional supplementary catalogue identifier (e.g. specific operator or mission catalog) supported by the upstream catalogue.

## `search` (type: `string`):

Filter results by object name (case-insensitive substring, e.g. 'STARLINK', 'ISS', 'NOAA'). Filter is applied after fetching the chosen group.

## `noradId` (type: `integer`):

Return only the object with this NORAD catalog ID (e.g. 25544 = ISS). Takes precedence over Group and International Designator.

## `objectId` (type: `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.

## `minInclination` (type: `number`):

Only include objects with orbital inclination greater than or equal to this value.

## `maxInclination` (type: `number`):

Only include objects with orbital inclination less than or equal to this value.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "group": "active",
  "fetchAllGroups": false,
  "supcat": "",
  "search": "",
  "objectId": "",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/celestrak-tle-satellites-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/celestrak-tle-satellites-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/celestrak-tle-satellites-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/celestrak-tle-satellites-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CelesTrak Satellites Orbital Catalog Scraper",
        "description": "Pull fresh CelesTrak orbital element sets for 30,000+ tracked Earth-orbiting objects. Filter by group (active satellites, Starlink, GPS, Galileo, ISS, debris, weather, etc.), search by NORAD ID or name. Returns inclination, eccentricity, mean motion, epoch, and full orbital parameters per object.",
        "version": "0.0",
        "x-build-id": "3SB3x0NgQnMwMIup3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~celestrak-tle-satellites-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-celestrak-tle-satellites-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~celestrak-tle-satellites-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-celestrak-tle-satellites-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~celestrak-tle-satellites-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-celestrak-tle-satellites-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "group": {
                        "title": "Satellite Group",
                        "enum": [
                            "active",
                            "stations",
                            "visual",
                            "analyst",
                            "weather",
                            "noaa",
                            "goes",
                            "resource",
                            "sarsat",
                            "dmc",
                            "tdrss",
                            "argos",
                            "planet",
                            "spire",
                            "geo",
                            "intelsat",
                            "ses",
                            "eutelsat",
                            "iridium",
                            "iridium-NEXT",
                            "starlink",
                            "oneweb",
                            "kuiper",
                            "qianfan",
                            "hulianwang",
                            "orbcomm",
                            "globalstar",
                            "swarm",
                            "amateur",
                            "x-comm",
                            "other-comm",
                            "satnogs",
                            "gnss",
                            "gps-ops",
                            "glo-ops",
                            "galileo",
                            "beidou",
                            "sbas",
                            "nnss",
                            "musson",
                            "science",
                            "geodetic",
                            "engineering",
                            "education",
                            "military",
                            "radar",
                            "cubesat",
                            "other",
                            "last-30-days",
                            "cosmos-2251-debris",
                            "iridium-33-debris",
                            "fengyun-1c-debris"
                        ],
                        "type": "string",
                        "description": "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).",
                        "default": "active"
                    },
                    "fetchAllGroups": {
                        "title": "Fetch All Groups",
                        "type": "boolean",
                        "description": "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.",
                        "default": false
                    },
                    "supcat": {
                        "title": "Supplementary Catalogue (SUPCAT)",
                        "type": "string",
                        "description": "Optional supplementary catalogue identifier (e.g. specific operator or mission catalog) supported by the upstream catalogue.",
                        "default": ""
                    },
                    "search": {
                        "title": "Name Search",
                        "type": "string",
                        "description": "Filter results by object name (case-insensitive substring, e.g. 'STARLINK', 'ISS', 'NOAA'). Filter is applied after fetching the chosen group.",
                        "default": ""
                    },
                    "noradId": {
                        "title": "NORAD Catalog ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Return only the object with this NORAD catalog ID (e.g. 25544 = ISS). Takes precedence over Group and International Designator."
                    },
                    "objectId": {
                        "title": "International Designator",
                        "type": "string",
                        "description": "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.",
                        "default": ""
                    },
                    "minInclination": {
                        "title": "Minimum Inclination (degrees)",
                        "minimum": 0,
                        "maximum": 180,
                        "type": "number",
                        "description": "Only include objects with orbital inclination greater than or equal to this value."
                    },
                    "maxInclination": {
                        "title": "Maximum Inclination (degrees)",
                        "minimum": 0,
                        "maximum": 180,
                        "type": "number",
                        "description": "Only include objects with orbital inclination less than or equal to this value."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
