# Launch Library 2 — Rocket Launch Tracker (`cynix_dev/launch-library-launches`) Actor

Upcoming, previous, and specific rocket launches from The Space Devs' Launch Library 2 API. Status, NET, rocket, provider, pad, location, mission, and orbit as typed records. No API key.

- **URL**: https://apify.com/cynix_dev/launch-library-launches.md
- **Developed by:** [Cynix Dev](https://apify.com/cynix_dev) (community)
- **Categories:** AI, Developer tools, MCP servers
- **Features:** Limited permissions
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Launch Library 2 — Rocket Launch Tracker

**Rocket launch data** — upcoming, past, or one specific launch — from The Space Devs' Launch Library 2. Status, NET time, launch window, rocket, provider, pad, location, mission and orbit as typed records. No API key.

### What it does

Launch Library 2 is the community-maintained database behind most launch trackers and countdown apps. This Actor queries it and returns flat records, so you can build a schedule feed, a dashboard or a dataset without touching nested JSON.

- **`upcoming`** — the next launches, soonest first.
- **`previous`** — historical launches, with optional free-text search (`falcon`, `starlink`, `ariane`, …).
- **`by_id`** — one launch by its Launch Library UUID.

Each record carries the launch name, current status, the NET (No Earlier Than) time, the window start and end, the rocket and its family, the provider, the pad and location, the mission type and target orbit, plus an image and a webcast URL where available.

### Features

- **Three modes** — upcoming schedule, historical archive, or a single launch by ID.
- **Full launch context** — rocket, family, provider, provider type, pad, location and country.
- **Mission detail** — mission name, mission type and target orbit.
- **Precise timing** — `net` plus `window_start` and `window_end`, all in UTC ISO-8601.
- **Status tracking** — human-readable `status` and a compact `status_abbrev` (`Success`, `Go`, `TBD`, …).
- **Media included** — `image` and `vid_url` for webcast links.
- **Free-text search** across previous launches.
- **No API key required.**

### What people use it for

- Launch calendars — power a website, newsletter or Discord bot with the upcoming schedule.
- Notifications — schedule runs and alert when a launch moves to `Go` or slips.
- Space-industry analysis — count launches by provider, rocket family or orbit over time.
- Content and media — build automated launch previews and recaps.
- Education — give students a clean, real dataset about spaceflight activity.

### Understanding NET and launch windows

**NET** means *No Earlier Than* — the earliest a launch is expected, not a guarantee. `window_start` and `window_end` bound the period in which the launch may occur that day. Slips are routine: weather, range conflicts and technical holds all move the NET, sometimes by weeks. If you build notifications, re-poll and compare `net` against what you stored rather than treating the first value as final.

#### Status values you'll see

`Go` (confirmed for its window) · `TBD` (date not firm) · `TBC` (to be confirmed) · `Launch Successful` · `Launch Failure` · `In Flight` · `Hold`. Use `status_abbrev` for compact UI badges and `status` for prose.

### Input

All fields are optional. `search` applies to `previous` mode; in `by_id` mode put the Launch Library UUID in `search`.

| Field | Type | Default | What it does |
| --- | --- | --- | --- |
| `mode` | string | `upcoming` | Which launches to return. 'by_id' fetches one launch by its Launch Library ID. Options: `upcoming`, `previous`, `by_id`. |
| `limit` | integer | `10` | Maximum number of launches to return. Range 1–100. |
| `search` | string | — | Free-text search within previous launches (e.g. 'falcon'). Ignored in 'upcoming' and 'by_id' modes. For 'by_id', put the Launch Library launch ID here (e.g. 4645). |

#### Input example

```json
{
  "mode": "upcoming",
  "limit": 10
}
```

### Output

One record per launch. Times are UTC ISO-8601. `net` is the current best estimate and moves as a launch is refined or delayed.

Every dataset record contains: `id`, `name`, `status`, `status_abbrev`, `net`, `window_start`, `window_end`, `launch_description`, `rocket_name`, `rocket_family`, `provider_name`, `provider_type`, `mission_name`, `mission_type`, `orbit_name`, `pad_name`, `location_name`, `country_code`, `country_name`, `image`, `vid_url`, `url`.

#### Output example

A real record from a run of this Actor:

```json
{
  "id": "f6958a77-37bb-4559-a108-40ba0ff9e34a",
  "name": "Falcon 9 Block 5 | Starlink Group 17-50",
  "status": "Launch Successful",
  "status_abbrev": "Success",
  "net": "2026-08-19T04:01:07Z",
  "window_start": "2026-08-19T02:00:00Z",
  "window_end": "2026-08-19T06:00:00Z",
  "launch_description": "",
  "rocket_name": "Falcon 9 Block 5",
  "rocket_family": "Falcon",
  "provider_name": "SpaceX",
  "provider_type": "Commercial",
  "mission_name": "Starlink Group 17-50",
  "mission_type": "Communications",
  "orbit_name": "Low Earth Orbit",
  "pad_name": "Space Launch Complex 4E",
  "location_name": "Vandenberg SFB, CA, USA",
  "country_code": "USA",
  "country_name": "USA",
  "image": "https://thespacedevs-prod.nyc3.digitaloceanspaces.com/media/images/falcon2520925_image_20221009234147.png",
  "vid_url": "{'priority': 8, 'source': 'youtube.com', 'publisher': 'The Space Devs', 'title': 'SpaceX Starlink Group 17-50', 'description': 'On Wednesday August 19, 2026 at 04:01 UTC, SpaceX launched the Starlink Group 17-50 mission …",
  "url": "https://ll.thespacedevs.com/2.2.0/launch/f6958a77-37bb-4559-a108-40ba0ff9e34a/"
}
```

Export the dataset as JSON, CSV, Excel, XML or JSONL from the Console, or pull it programmatically through the Apify API and any of the official clients.

### How to use it

1. Click **Try for free** (or **Start** if you already have an Apify account).
2. Fill in the input fields described above — the defaults already produce a working run.
3. Press **Start** and watch the log; results stream into the dataset as they are found.
4. When the run finishes, open the **Output/Storage** tab and export as JSON, CSV or Excel.

Runs can be scheduled (hourly, daily, weekly) and wired into Slack, Google Sheets, Zapier, Make, webhooks or your own backend through Apify integrations. Everything the Console does is also available over the [Apify API](https://docs.apify.com/api/v2).

### FAQ

#### Where does the data come from?

The Space Devs' Launch Library 2, an open, community-maintained spaceflight database used widely by launch trackers. No API key is required for its public tier.

#### How often should I refresh upcoming launches?

Hourly is plenty for a public calendar. In the final days before a launch, every 10–15 minutes catches slips and status changes quickly.

#### Why is `launch_description` sometimes empty?

Descriptions are contributed by volunteers, so coverage is uneven — high-profile missions usually have them, routine rideshares often don't. The structured fields are always populated.

#### Can I search upcoming launches by keyword?

`search` applies to the `previous` archive. For upcoming launches, pull the schedule with a suitable `limit` and filter locally on `provider_name`, `rocket_name` or `mission_name`.

#### Is historical coverage complete?

Modern spaceflight is covered thoroughly; older and Soviet-era launches are less consistent, as with any volunteer-curated archive.

### Other Actors by cynix_dev

| Actor | What it does |
| --- | --- |
| [arXiv Papers Extractor](https://apify.com/cynix_dev/arxiv-papers) | Search arXiv and extract papers as clean typed records: title, abstract, authors, categories, DOI, and direct PDF links. |
| [CoinGecko Markets — Crypto Data API](https://apify.com/cynix_dev/coingecko-markets) | Live cryptocurrency market data from CoinGecko as clean typed JSON: price, market cap, volume, 24h change, ATH/ATL, … |
| [FX Rates & History](https://apify.com/cynix_dev/fx-rates-history) | Latest and historical foreign exchange rates (ECB reference data) as clean, typed dataset records. |
| [USGS Earthquakes — GeoJSON Extractor](https://apify.com/cynix_dev/usgs-earthquakes) | Pull live and historical earthquakes from the USGS FDSN event service as clean typed JSON: magnitude, place, time, lat/lon/depth, … |
| [Open Food Facts Extractor](https://apify.com/cynix_dev/open-food-facts) | Search and extract food-product data from Open Food Facts as clean typed JSON: name, brand, ingredients, allergens, nutrition … |
| [USGS Earthquakes — GeoJSON Extractor](https://apify.com/cynix_dev/usgs-earthquakes) | Pull live and historical earthquakes from the USGS FDSN event service as clean typed JSON: magnitude, place, time, lat/lon/depth, … |
| [arXiv Papers Extractor](https://apify.com/cynix_dev/arxiv-papers) | Search arXiv and extract papers as clean typed records: title, abstract, authors, categories, DOI, and direct PDF links. |

### Legal and responsible use

This Actor collects only publicly available information. You are responsible for how you use the data, including compliance with the target site's Terms of Service, robots directives, copyright, and data protection law such as GDPR and CCPA. Do not use it to gather personal data without a lawful basis.

### Support and feedback

Found a bug, hit a site change, or need an extra field? Open a ticket on the **Issues** tab of this Actor — issues are read and fixed. Feature requests and custom-scraper enquiries are welcome through the same channel.

# Changelog

This Actor's version history is a separate document: https://apify.com/cynix_dev/launch-library-launches/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Which launches to fetch.

## `limit` (type: `integer`):

Max number of launches to return (1-100).

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

For by_id mode, the launch UUID. For previous mode, an optional name fragment.

## Actor input object example

```json
{
  "mode": "upcoming",
  "limit": 10,
  "search": ""
}
```

# Actor output Schema

## `dataset` (type: `string`):

One record per launch: name, status, NET window, rocket, provider, mission, orbit, pad, location, country.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("cynix_dev/launch-library-launches").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("cynix_dev/launch-library-launches").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call cynix_dev/launch-library-launches --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cynix_dev/launch-library-launches"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/o6anX5TeDEmnfl4uK/builds/zJVRhkX4AbTuUZeKW/openapi.json
