Satellite Operator Intelligence avatar

Satellite Operator Intelligence

Pricing

from $6.50 / 1,000 operators

Go to Apify Store
Satellite Operator Intelligence

Satellite Operator Intelligence

Who owns what in orbit. Every satellite operator with its active fleet, parent company after mergers, country, HQ, orbits and makers. Find new entrants for lead lists, or any satellite's ownership chain. Built on GCAT.

Pricing

from $6.50 / 1,000 operators

Rating

0.0

(0)

Developer

mick_

mick_

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Satellite Operator Intelligence logo

Satellite Operator Intelligence

Who owns what in orbit. Get every satellite operator in the world with its active fleet, parent company (after mergers), country, headquarters, orbits, purposes and satellite makers. Find new entrants whose first satellite just launched, or look up any satellite's full ownership chain.

Built on GCAT, the General Catalog of Artificial Space Objects by Jonathan McDowell (planet4589.org), downloaded fresh on every run. No login, no proxy, no API key.

At a glance
You give itA mode (operators, new entrants or satellites) and optional country, sector, purpose, orbit or maker filters
You getOne row per operator (fleet, parent company, country, HQ, orbits, makers) or per satellite (full ownership chain)
Price$0.005 per run + $0.01 per operator, $0.001 per satellite (Free plan, lower on paid plans)
SpeedAll 16,156 active satellites in about 8 seconds
NeedsNothing: no login, no API key, no proxy

Why this and not a TLE scraper

Orbit data (TLEs, passes) is free everywhere. Ownership is not:

  • CelesTrak records the owner as mostly a country code. All ~10,700 Starlink satellites just say "US".
  • The UCS Satellite Database, the usual source for operators, has paused updates.
  • This actor gives the company, its parent company and the country, and follows mergers: OneWeb satellites roll up to Eutelsat SA, Intelsat to SES S.A., Kuiper to Amazon, and Maxar's satellites to Vantor.

What you get

  • Operators mode: one row per company or agency with active satellites, grouped by parent company (default) or operating unit. Active fleet by orbit and purpose, top programs (constellations), top manufacturers, satellites ever launched, launches in the last 12 months, first and latest launch, headquarters city.
  • New entrants mode: operators whose first satellite ever launched in the last N months. A ready lead list of young space companies that are buying ground stations, components, insurance and launch rides right now.
  • Satellites mode: one row per satellite with NORAD and COSPAR IDs, operator, parent company, owner at launch and whether ownership changed, manufacturer, bus, orbit, perigee, apogee, inclination, launch mass and maneuverability.
  • Filters: country, sector (business, civil, defense, academic), purpose (communications, optical or radar imaging, navigation, signals intelligence...), orbit (LEO, MEO, GEO, HEO), manufacturer, launch date, name search.
  • Coverage: 27,852 payloads ever launched and 16,156 active, from 1957 to the latest catalog update.

Use cases

  • Space suppliers and sales teams: new operators and fast-growing fleets, with HQ city and country, for outbound lists.
  • Competitive intelligence for manufacturers: filter by manufacturer to see a rival's customers and how many of their satellites are flying.
  • Investors and analysts: who is really scaling (launches in the last 12 months), how crowded each orbit is, which makers win contracts.
  • OSINT and journalism: which government, military or company controls a satellite, including the parent behind an operating unit.
  • Market maps: every radar-imaging or direct-to-device operator in one table.

Example inputs

Top operators worldwide, by parent company

{ "mode": "operators", "maxItems": 50 }

Commercial newcomers from the last 12 months (lead list)

{ "mode": "newEntrants", "sectors": ["business"], "newWithinMonths": 12, "maxItems": 200 }

Every radar-imaging operator

{ "mode": "operators", "purposes": ["IMG-R"] }

A manufacturer's customers

{ "mode": "operators", "manufacturers": ["Blue Canyon"], "groupBy": "operator" }

German commercial operators

{ "mode": "operators", "countries": ["Germany"], "sectors": ["business"] }

All active OneWeb satellites with ownership

{ "mode": "satellites", "search": ["OneWeb"], "maxItems": 0 }

Input

FieldWhat it does
modeoperators, newEntrants or satellites. Default operators.
groupByparent (roll subsidiaries into the parent company) or operator (each operating unit).
newWithinMonthsNew entrants: first launch within this many months. Default 24.
searchOperator, parent, program or satellite names. Satellites mode also matches NORAD and COSPAR IDs. Common constellation names work even where GCAT uses another program name (Guowang finds GCAT's HWD).
countriesCountry of the operator or its parent: names (Germany, United States, China) or codes. A foreign company appears when one of its operating units is in that country; use groupBy: operator to see only the local unit.
sectorsbusiness, civil, defense, academic. In the operator modes this is the operator's own sector.
purposesPurpose codes such as COM, IMG, IMG-R, NAV, SIG, MET.
orbitsLEO, MEO, GEO, HEO, Other.
manufacturersSatellite maker names, for example Airbus, Thales, Lanteris, Surrey.
launchedAfterOnly satellites launched on or after this date.
minActiveSatellitesOperator modes: skip operators with fewer active satellites. Default 1.
includeInactiveSatellites mode: include dead, decayed and retired satellites. Default off.
maxItemsStop after this many rows. 0 means no limit. Default 100.

Filters on satellites (purpose, orbit, manufacturer, launch date, country) apply before operators are counted, so "orbits": ["GEO"] gives GEO operators with their GEO fleet.

Output

Real rows from a run on 2026-09-26 (GCAT data of 2026-09-24).

Operator row (lists shortened)

{
"type": "operator",
"name": "Eutelsat SA",
"shortName": "EutelsatSA",
"localName": null,
"country": "France",
"countryCode": "F",
"headquarters": "Paris",
"sector": "business",
"parentCompany": null,
"parentCountry": null,
"subsidiaries": [
{ "name": "Eutelsat One Web (Network Access Associates Ltd.)", "count": 652 },
{ "name": "Eutelsat Americas", "count": 3 }
],
"activeSatellites": 678,
"activeByOrbit": { "LEO": 652, "GEO": 16, "HEO": 8, "MEO": 2 },
"activeByPurpose": { "Communications": 678 },
"topPrograms": [ { "name": "OneWeb", "count": 652 }, { "name": "Eutelsat New", "count": 14 } ],
"topManufacturers": [ { "name": "One Web (Florida)", "count": 646 }, { "name": "Airbus Defense and Space (F) Toulouse", "count": 15 } ],
"satellitesEverLaunched": 713,
"launchedLast12Months": 0,
"firstLaunch": "1984-08-04",
"latestLaunch": "2024-10-20",
"operatorCode": "EUTSA",
"dataUpdated": "2026-09-24",
"source": "Data from J. McDowell, planet4589.org (GCAT, CC-BY-4.0)"
}

Satellite row

{
"type": "satellite",
"name": "OneWeb SL0115",
"noradId": 48042,
"cosparId": "2021-025A",
"launchDate": "2021-03-25",
"active": true,
"operator": "Eutelsat One Web (Network Access Associates Ltd.)",
"operatorCountry": "UK",
"parentCompany": "Eutelsat SA",
"parentCountry": "France",
"ownerAtLaunch": "One Web (Network Access Associates Ltd.)",
"ownerChanged": true,
"ownershipChain": ["Eutelsat One Web (Network Access Associates Ltd.)", "Eutelsat SA"],
"coOwners": [],
"manufacturer": "One Web (Florida)",
"manufacturerCountry": "USA",
"bus": "ARROW",
"program": "OneWeb",
"sector": "business",
"purpose": ["Communications"],
"orbit": "LEO",
"orbitDetail": "LLEO/P",
"orbitEpoch": "2021-03-27",
"perigeeKm": 440.0,
"apogeeKm": 446.0,
"inclinationDeg": 87.4,
"launchMassKg": 148.0,
"maneuverable": true,
"endOfOperations": null,
"dataUpdated": "2026-09-24",
"source": "Data from J. McDowell, planet4589.org (GCAT, CC-BY-4.0)"
}

Pricing

Pay per event:

  • $0.005 per run start
  • $0.01 per operator row (Operators and New entrants modes)
  • $0.001 per satellite row (Satellites mode)

Lower prices apply on higher Apify plans. Apify platform usage is billed separately to your account and is small, almost all of it dataset writes: 100 operators took 4 seconds and about $0.0007; all 16,156 active satellites took 8 seconds and about $0.08.

You getActor cost
Top 50 operatorsabout $0.51
150 new entrantsabout $1.51
1,000 satellitesabout $1.01

Set a Maximum cost per run in the run options and the actor stops cleanly when it reaches it.

Automate it with n8n

Each workflow uses n8n's official Apify node, operation Run actor and get dataset, actor labrat011/satellite-operator-intelligence. Paste the input into Input JSON.

1. Weekly new-operator alert to Slack

Schedule Trigger (Mondays 08:00)
> Apify: Run actor and get dataset { "mode": "newEntrants", "sectors": ["business"], "newWithinMonths": 2 }
> Remove Duplicates (n8n, across executions, on operatorCode)
> Slack: "New operator: {{ $json.name }} ({{ $json.country }}, {{ $json.headquarters }}), first launch {{ $json.firstLaunch }}"

2. Lead list with contacts

Manual Trigger
> Apify: Run actor and get dataset { "mode": "newEntrants", "sectors": ["business"], "newWithinMonths": 24, "maxItems": 0 }
> HTTP Request / search: find each company's website from name + headquarters
> Apify: labrat011/website-contact-finder on those websites (emails, phones, socials)
> Google Sheets or your CRM: one row per company

3. Competitor customer tracker

Schedule Trigger (monthly)
> Apify: Run actor and get dataset { "mode": "operators", "manufacturers": ["Competitor Name"], "groupBy": "operator" }
> Airtable: upsert by operatorCode (activeSatellites, latestLaunch)

4. Constellation growth dashboard

Schedule Trigger (weekly)
> Apify: Run actor and get dataset { "mode": "operators", "search": ["Starlink", "Kuiper", "OneWeb", "Guowang", "Qianfan"] }
> Google Sheets: append activeSatellites and launchedLast12Months with the date

For AI agents

  • Actor: labrat011/satellite-operator-intelligence
  • Smallest input: { "mode": "newEntrants" }
  • One row = one operator (type: "operator") or one satellite (type: "satellite"). Key fields: operators: name, country, headquarters, parentCompany, activeSatellites, firstLaunch; satellites: name, noradId, operator, parentCompany, ownerChanged, orbit.
  • Billing: apify-actor-start once per run, operator per operator row, satellite per satellite row. Cap spend with maxItems or a maximum cost per run.
  • Run it: POST https://api.apify.com/v2/acts/labrat011~satellite-operator-intelligence/run-sync-get-dataset-items with the input as the JSON body, or call it from the Apify MCP server.
  • Done signal: the run's status message reads Saved N operators (GCAT data updated D). or Saved N satellites (GCAT data updated D).

FAQ

Where does the data come from? GCAT by Jonathan McDowell, the most complete public satellite catalog, released under CC-BY-4.0. Every row carries the attribution in source; keep it when you republish the data.

How current is it? The catalog is usually updated weekly. Each row has dataUpdated.

How is "active" decided? From GCAT's active catalog: payloads believed to be operating or still transmitting. For satellites that do not maneuver this is sometimes a judgment call.

Why does a satellite show an owner I did not expect? ownerAtLaunch is the owner recorded at launch; operator and parentCompany are today's entity after renames, sales and mergers. ownerChanged tells you when they differ.

Are perigee, apogee and inclination current? They are the catalog orbit at orbitEpoch, often just after launch, before the satellite raised to its working altitude. For live positions use a TLE source such as CelesTrak; this actor is about who owns what.

Do I need a proxy? No.

Support

Open an issue on the actor's Issues tab with the run ID and it will be looked at.