Table · launches

Launch log

Every launch in GCAT's launch list, one row per launch since 1942: orbital and deep-space launches with their international designation, plus missiles, sounding rockets and other suborbital flights. Each row has the date and time at the precision GCAT knows it, the vehicle, launch site, agency and outcome.

Updates
Daily
Coverage
—
Current version
—
Last published
—
Validation
—
License
CC BY 4.0
Commercial use
Allowed

Preview

Loading the preview…

Use the API

The examples follow the rows picked above. See the docs for versions, caching and errors.

curl

# All rows (.json or .csv)
curl -s "https://api.satellitedata.dev/v1/launches/table/all.json"

# The whole table in one file
curl -sO "https://api.satellitedata.dev/v1/launches/download/launches.csv"

Python (polars)

import polars as pl

# All rows
df = pl.read_csv("https://api.satellitedata.dev/v1/launches/table/all.csv")

# The whole table
everything = pl.read_parquet("https://api.satellitedata.dev/v1/launches/download/launches.parquet")

JavaScript

const res = await fetch("https://api.satellitedata.dev/v1/launches/table/all.json");
if (!res.ok) throw new Error((await res.json()).detail); // errors are problem+json
const { meta, rows } = await res.json();
console.log(meta.rows, rows[0]);

Downloads

The whole dataset in one file. Parquet keeps the column types and is much smaller.

Schema

Rows are identified by launch_tag. The rows are also split into one file per value of launch_class. Tables up to 50,000 rows also have a single table/all file.

Column Type Unit Can be empty Description
launch_tag key text — no COSPAR designation for orbital launches (1998-067; Harvard style before 1963, 1957 ALP), GCAT's own yyyy-Xnnn tag for others (1942-A01, 1957-F01 failed orbital)
launch_class partition text — no LaunchCode category: orbital, deep-space, missile, lofted-missile, near-orbital, test-rocket, atmospheric, suborbital, high-altitude-sounding, reentry-test, off-earth (from another world), crewed-suborbital, not-a-launch (GCAT placeholder entries)
launch_date date (YYYY-MM-DD) — yes UTC date of first motion; null when GCAT knows it less precisely than a day, or gives a day after its own file date (a typo, e.g. 2026-M02 dated 2027 Jan 3); see launch_date_text
launch_time datetime (ISO 8601, UTC) — yes UTC time at exactly the precision GCAT gives (to the minute, second or millisecond); null when it is less precise or uncertain
launch_date_text text — yes The date exactly as GCAT writes it, in its Vague Date format ('1957 Oct 4 1928:34', '1944 Jan', '1971?')
launch_date_precision text — yes Precision of launch_date_text: millisecond, second, minute, hour, day, month, quarter, year, ...; '(uncertain)' when it ends in ?, which widens it by one unit each way. Null if GCAT's text is not a valid vague date
launch_jd number JD no GCAT's Julian Date (UTC) of launch, for sorting; nominal when the date is vague
lv_type text — yes Launch vehicle type
lv_variant text — yes —
flight_id text — yes Serial number or mission number of this flight
flight text — yes —
mission text — yes —
flight_code text — yes —
platform text — yes Mobile launch platform (ship, submarine, aircraft), if any
launch_site text — yes GCAT launch site code
launch_pad text — yes —
ascent_site text — yes Where the rocket actually ignited, when different (air launches: the drop zone)
ascent_pad text — yes —
apogee_km number km yes Highest altitude of a suborbital flight, or apogee of the initial orbit
apogee_estimated true / false — yes GCAT marks the apogee with ? (a guess from the vehicle's capability)
orbital_payload_t number t no Payload mass delivered to orbit (0 when nothing reached orbit); GCAT generates it from its payload tables and asks users to treat it with caution
agency text — no GCAT org code of the launch service provider
agency_name text — yes —
launch_code text — no GCAT LaunchCode: category letter plus outcome (OS, OF, MS, OS80, ...)
outcome text — yes success (propulsive success; the payload may still have failed), failure, unknown, pad-explosion or pad-abort. Null for not-a-launch entries
success_percent integer — yes GCAT's partial-success score for reliability statistics (OS80 -> 80); null for plain S or F
category text — yes For orbital launches GCAT's launch profile code (Sat LEO O); for others the kind of flight (Meteo, Aeron, Test, Weapon)

Source and license

Source
General Catalog of Artificial Space Objects (GCAT), launch list
Publisher
Jonathan C. McDowell
License
Creative Commons Attribution 4.0 (CC-BY-4.0)
Commercial use
Allowed

Credit the source with this exact text:

data from GCAT (J. McDowell, planet4589.org/space/gcat)

Checked every 1 day. If the source hasn't changed in 14 days, the status page flags it as stale.

Endpoints

Every URL for this dataset. To pin the current version, put it after the id: /v1/launches@<version>. The API reference describes each response.

What URL
Metadata: version, coverage, downloads, validation /v1/launches
Versions and monthly snapshots /v1/launches/versions
Partitions /v1/launches/locations
Rows for one launch_class (JSON) /v1/launches/table/{launch_class}.json
Rows for one launch_class (CSV) /v1/launches/table/{launch_class}.csv
All rows in one file (tables up to 50,000 rows) /v1/launches/table/all.json
Whole dataset (CSV) /v1/launches/download/launches.csv
Whole dataset (Parquet) /v1/launches/download/launches.parquet