# Space Launch Library — Global Launch Aggregator (`jungle_synthesizer/space-devs-launch-library-aggregator-scraper`) Actor

Scrapes upcoming and historical rocket launches from The Space Devs Launch Library 2 API — 600+ scheduled and 7,500+ past missions across SpaceX, ULA, Rocket Lab, ISRO, JAXA, ESA, Roscosmos, Blue Origin, and more. Includes status, rocket, orbit, pad coordinates, hold/fail reasons, and video links.

- **URL**: https://apify.com/jungle\_synthesizer/space-devs-launch-library-aggregator-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** News, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Space Launch Library — Global Launch Aggregator

Scrape upcoming and historical rocket launch data from [The Space Devs Launch Library 2 API](https://ll.thespacedevs.com/2.2.0/). Covers 600+ upcoming and 7,500+ historical launches across SpaceX, Rocket Lab, ULA, ISRO, JAXA, ESA, Roscosmos, Blue Origin, Relativity, and dozens more providers. Each record includes launch status, rocket family, mission type and orbit, pad coordinates, weather probability, hold and fail reasons, program tags, and video links.

### Features

- Fetch upcoming launches, historical launches, or both in a single run
- All 8+ major launch providers covered — SpaceX, ULA, Rocket Lab, ISRO, JAXA, ESA, Roscosmos, Blue Origin, and more
- Rich per-launch data: status, rocket family and variant, mission type, target orbit, pad coordinates, weather probability
- Hold reasons, fail reasons, and hashtags included for research and tracking
- Program tags (Artemis, Starlink, Commercial Crew) returned as a pipe-separated list
- Video and info URL lists for each mission
- Optional API key input to increase rate limits from 15 to 30+ requests per hour
- No proxy required — the Space Devs API is public and not geo-restricted
- Pay-per-event pricing at roughly $0.001 per record

### Who Uses Space Launch Data and Why?

- **Aviation and space insurers** — track active missions, pad counts, and historical success rates by provider and vehicle
- **News and media teams** — pull the next scheduled launches for upcoming-event articles and social posts
- **Space industry analysts** — analyze launch cadence, provider market share, mission type distribution, and orbital slot demand
- **Hobbyists and enthusiasts** — build custom launch calendars, countdown apps, or Discord bots
- **Satellite operators and integrators** — monitor competitor launch windows and identify available rideshare vehicles
- **Academic researchers** — build longitudinal datasets of global launch activity for policy and technology studies

### How It Works

1. You choose a mode: `upcoming` (scheduled future launches), `previous` (historical launches), or `all` (both).
2. The actor queries The Space Devs Launch Library 2 REST API in pages of 100 launches.
3. Each launch record is flattened from nested JSON into a clean output row with all fields at the top level.
4. Output is saved to the Apify dataset — available as JSON, CSV, or XLSX from the Apify console.

Rate limiting: the free API tier allows 15 requests per hour. The actor respects this with a 4.2-second delay between pages. Provide an optional Space Devs API key to increase your allowance.

### Input

#### Basic: Get the next upcoming launches

```json
{
  "mode": "upcoming",
  "maxItems": 100
}
````

#### Historical launches from any provider

```json
{
  "mode": "previous",
  "maxItems": 500
}
```

#### Both upcoming and historical in one run

```json
{
  "mode": "all",
  "maxItems": 200
}
```

#### With an optional API key (higher rate limit)

```json
{
  "mode": "upcoming",
  "maxItems": 0,
  "apiKey": "your-space-devs-api-key-here"
}
```

#### Input Parameters

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| mode | string | `upcoming` | Which launches to fetch: `upcoming`, `previous`, or `all`. |
| maxItems | integer | `10` | Maximum number of launch records to return. Set to `0` for all launches in the selected mode. |
| apiKey | string | `""` | Optional Space Devs API key. Unauthenticated requests are limited to 15 req/hr; a key raises this to 30/hr or more depending on your tier. |
| proxyConfiguration | object | `{ useApifyProxy: false }` | Proxy settings. The Space Devs API is public and does not require a proxy. |

### Output Fields

| Field | Type | Description |
|-------|------|-------------|
| id | string | Unique launch ID from The Space Devs |
| name | string | Launch name, e.g. "Falcon 9 Block 5 | Starlink Group 10-53" |
| slug | string | URL-safe slug identifier |
| status\_name | string | Launch status: "Go for Launch", "TBD", "Launch Successful", "Launch Failure", etc. |
| net | string | No Earlier Than launch time (ISO 8601) |
| window\_start | string | Launch window start (ISO 8601) |
| window\_end | string | Launch window end (ISO 8601) |
| launch\_service\_provider\_name | string | Launch provider name, e.g. "SpaceX", "Rocket Lab USA" |
| launch\_service\_provider\_type | string | Provider type: "Commercial" or "Government" |
| rocket\_full\_name | string | Full rocket configuration name, e.g. "Falcon 9 Block 5" |
| rocket\_family | string | Rocket family, e.g. "Falcon", "Atlas", "Electron" |
| rocket\_variant | string | Rocket variant, e.g. "Block 5", "551" |
| mission\_name | string | Mission name |
| mission\_description | string | Mission description |
| mission\_type | string | Mission type, e.g. "Communications", "Earth Science", "Astrophysics" |
| mission\_orbit\_name | string | Target orbit: "LEO", "GTO", "SSO", "Heliocentric", etc. |
| pad\_name | string | Launch pad name, e.g. "Space Launch Complex 40" |
| pad\_location\_name | string | Launch site location, e.g. "Cape Canaveral SFS, FL, USA" |
| pad\_latitude | number | Launch pad latitude |
| pad\_longitude | number | Launch pad longitude |
| pad\_total\_launch\_count | integer | Total launches ever conducted from this pad |
| probability | integer | Launch probability as a percentage (weather and clearance combined, 0-100) |
| weather\_concerns | string | Active weather rules flagged at launch time, if any |
| holdreason | string | Reason for launch hold, if applicable |
| failreason | string | Reason for launch failure, if applicable |
| hashtag | string | Mission social media hashtag, if available |
| webcast\_live | boolean | Whether a live webcast stream was available |
| image\_url | string | Mission or rocket image URL |
| infographic\_url | string | Infographic image URL, if available |
| program\_names | string | Space programs this launch belongs to (pipe-separated), e.g. "Starlink|Commercial Crew" |
| vidurls | string | Video stream URLs (pipe-separated) |
| infourls | string | Mission information URLs (pipe-separated) |
| last\_updated | string | When the launch record was last updated (ISO 8601) |

### Example Output

```json
{
  "id": "ff0a6a32-6513-4e85-9fd8-a2d022add74d",
  "name": "Atlas V 551 | Amazon Leo (LA-07)",
  "slug": "atlas-v-551-amazon-leo-la-07",
  "status_name": "Launch Successful",
  "net": "2026-05-29T23:53:00Z",
  "window_start": "2026-05-29T23:33:30Z",
  "window_end": "2026-05-30T00:02:30Z",
  "launch_service_provider_name": "United Launch Alliance",
  "launch_service_provider_type": "Commercial",
  "rocket_full_name": "Atlas V 551",
  "rocket_family": "Atlas",
  "rocket_variant": "551",
  "mission_name": "Amazon Leo (LA-07)",
  "mission_description": "Amazon Leo is a mega constellation of satellites in Low Earth Orbit...",
  "mission_type": "Communications",
  "mission_orbit_name": "Low Earth Orbit",
  "pad_name": "Space Launch Complex 41",
  "pad_location_name": "Cape Canaveral SFS, FL, USA",
  "pad_latitude": 28.58341025,
  "pad_longitude": -80.58303644,
  "pad_total_launch_count": 124,
  "probability": 45,
  "weather_concerns": "Cumulus Cloud Rule, Anvil Cloud Rules, Surface Electric Fields Rule",
  "holdreason": null,
  "failreason": null,
  "hashtag": null,
  "webcast_live": false,
  "image_url": "https://thespacedevs-prod.nyc3.digitaloceanspaces.com/media/images/atlas2520v2520551_image_20190224012316.jpeg",
  "infographic_url": null,
  "program_names": "Amazon Leo",
  "vidurls": null,
  "infourls": null,
  "last_updated": "2026-05-30T00:53:04Z"
}
```

### Data Source

Launch data comes from [The Space Devs Launch Library 2](https://thespacedevs.com/llapi) — an open, community-maintained database of rocket launches. The API is free to use with a rate limit of 15 requests per hour for unauthenticated clients. Register at [thespacedevs.com](https://thespacedevs.com/) for an API key to increase this limit.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

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

Maximum number of launch records to return. Use 0 for all.

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

Which launches to fetch: 'upcoming' (next scheduled), 'previous' (historical), or 'all' (both).

## `apiKey` (type: `string`):

Optional Space Devs API key. Unauthenticated requests are limited to 15 req/hr; with a key you get 30/hr or more depending on your tier.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10,
  "mode": "upcoming"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "mode": "upcoming",
    "apiKey": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/space-devs-launch-library-aggregator-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "mode": "upcoming",
    "apiKey": "",
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/space-devs-launch-library-aggregator-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10,
  "mode": "upcoming",
  "apiKey": ""
}' |
apify call jungle_synthesizer/space-devs-launch-library-aggregator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/space-devs-launch-library-aggregator-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Space Launch Library — Global Launch Aggregator",
        "description": "Scrapes upcoming and historical rocket launches from The Space Devs Launch Library 2 API — 600+ scheduled and 7,500+ past missions across SpaceX, ULA, Rocket Lab, ISRO, JAXA, ESA, Roscosmos, Blue Origin, and more. Includes status, rocket, orbit, pad coordinates, hold/fail reasons, and video links.",
        "version": "0.1",
        "x-build-id": "uTifBJxFi6O4f4aoG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~space-devs-launch-library-aggregator-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-space-devs-launch-library-aggregator-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/jungle_synthesizer~space-devs-launch-library-aggregator-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-space-devs-launch-library-aggregator-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/jungle_synthesizer~space-devs-launch-library-aggregator-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-space-devs-launch-library-aggregator-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",
                "required": [
                    "maxItems"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of launch records to return. Use 0 for all."
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "upcoming",
                            "previous",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which launches to fetch: 'upcoming' (next scheduled), 'previous' (historical), or 'all' (both)."
                    },
                    "apiKey": {
                        "title": "API Key (Optional)",
                        "type": "string",
                        "description": "Optional Space Devs API key. Unauthenticated requests are limited to 15 req/hr; with a key you get 30/hr or more depending on your tier."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
