# Spaceflight News Scraper (`parseforge/spaceflight-news-scraper`) Actor

Scrape space and astronomy news articles, blogs, and reports from the Spaceflight News API. Filter by search term, news site, featured status, date range. No API key required.

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

## Pricing

from $29.62 / 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/main/banners/banner-default.jpg?raw=true)

## 🚀 Spaceflight News Scraper

> 🚀 **Export space and astronomy news in seconds.** Pull articles, blogs, and reports from **NASA, SpaceX, ESA, NASASpaceflight, Ars Technica, SpacePolicyOnline** and more, filtered by search term, source, launch, event, or date. No sign-up needed.

> 🕒 **Last updated:** 2026-05-15 · **📊 14+ fields** per article · **📰 20+ trusted news sources** · **🛰️ Articles, blogs, reports** · **📅 Years of historical archive**

The **Spaceflight News Scraper** pulls from the official Spaceflight News aggregator, the largest open catalogue of space and astronomy news. Each record carries the article id, title, full URL, hero image, source name, summary, publication date, author list with social handles, featured flag, and any linked launches or spaceflight events. The aggregator is the canonical "one feed for the entire space industry" used by enthusiasts, journalists, and engineering teams.

Coverage spans **20+ trusted news outlets** (NASA, SpaceX, ESA, NASASpaceflight, Ars Technica, SpaceNews, European Spaceflight, Space Scout, SpacePolicyOnline.com, Spaceflight Now, and more) across **three content types** (articles, blogs, reports), with linked launches and events from the Launch Library 2 catalogue. Filter by source, search term, featured status, launch ID, event ID, or publication date and download as CSV, Excel, JSON, or XML in under three minutes.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Space-tech newsrooms, content aggregators, investor research desks, NewSpace startups, educators, podcasters, hobbyists, AI training-data teams | News-feed apps, mission timeline trackers, sentiment dashboards, launch-coverage roundups, RAG corpora for LLMs |

---

### 📋 What the Spaceflight News Scraper does

Nine filtering inputs combine in a single run:

- 📰 **Content type.** Articles, blogs, reports, or all three at once.
- 🔍 **Search term.** Free-text search across title, summary, and body (e.g. Starship, James Webb, Mars).
- 🏛️ **News site filter.** Restrict to a single source by exact name (NASA, SpaceX, ESA, NASASpaceflight, Ars Technica, SpaceNews and more).
- ⭐ **Featured filter.** Only return featured/highlighted items.
- 🚀 **Launch link.** Find articles linked to a specific Launch Library 2 launch UUID.
- 🎯 **Event link.** Find articles linked to a specific spaceflight event ID.
- 📅 **Date range.** Earliest and latest publication date filters.
- 🔃 **Ordering.** Newest first, oldest first, featured first, or recently updated first.

Each record includes the article id, content type, title, canonical URL, hero image, source name, summary, full author list with optional social handles, featured flag, publication and update timestamps, linked launches with provider names, and linked events.

> 💡 **Why it matters:** the space industry generates dozens of stories every day across 20+ outlets. Aggregating them yourself means writing a parser per source. This Actor delivers a single, canonical, structured feed across every covered source in under three minutes.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded space-news feed._

---

### ⚙️ 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>contentType</code></td><td>string</td><td><code>"articles"</code></td><td>One of <code>articles</code>, <code>blogs</code>, <code>reports</code>, <code>all</code>.</td></tr>
<tr><td><code>search</code></td><td>string</td><td><code>""</code></td><td>Free-text search across title, summary, and body.</td></tr>
<tr><td><code>newsSite</code></td><td>string</td><td><code>""</code></td><td>Source name filter (exact match).</td></tr>
<tr><td><code>isFeatured</code></td><td>boolean</td><td><code>false</code></td><td>When <code>true</code>, returns only featured items.</td></tr>
<tr><td><code>launchId</code></td><td>string</td><td><code>""</code></td><td>Launch Library 2 launch UUID filter.</td></tr>
<tr><td><code>eventId</code></td><td>integer</td><td><code>null</code></td><td>Launch Library 2 event numeric id filter.</td></tr>
<tr><td><code>publishedAfter</code>, <code>publishedBefore</code></td><td>string</td><td><code>null</code></td><td>Publication date range, format <code>YYYY-MM-DD</code>.</td></tr>
<tr><td><code>ordering</code></td><td>string</td><td><code>"-published_at"</code></td><td>Sort order: newest first, oldest first, featured first, recently updated first.</td></tr>
</tbody>
</table>

**Example: 50 newest Starship articles across every source.**

```json
{
    "maxItems": 50,
    "contentType": "articles",
    "search": "Starship",
    "ordering": "-published_at"
}
````

**Example: featured James Webb stories from the past year.**

```json
{
    "maxItems": 100,
    "contentType": "all",
    "search": "James Webb",
    "isFeatured": true,
    "publishedAfter": "2024-01-01"
}
```

> ⚠️ **Good to Know:** the source aggregates from 20+ outlets, each with its own publishing cadence. Some sources publish multiple times a day (NASA, SpaceNews), others weekly. The `news_site` filter requires an exact source-name match.

***

### 📊 Output

Each news record contains 14+ structured fields with full provenance. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🆔 `id` | number | `28471` |
| 📰 `contentType` | string | `"articles"` |
| 📝 `title` | string | `"SpaceX launches Starlink mission..."` |
| 🔗 `url` | string | `"https://..."` |
| 🖼️ `imageUrl` | string | null | `"https://..."` |
| 🏛️ `news_site` | string | `"NASASpaceflight"` |
| 📄 `summary` | string | null | `"SpaceX launched 23 Starlink..."` |
| ✍️ `authors` | array | `[{"name":"Adrian Beil","socials":null}]` |
| ⭐ `featured` | boolean | `true` |
| 📅 `published_at` | ISO 8601 | `"2026-05-14T16:30:00Z"` |
| 📅 `publishedDate` | string | null | `"2026-05-14"` |
| 📅 `updated_at` | ISO 8601 | null | `"2026-05-14T17:00:00Z"` |
| 🚀 `launches` | array | undefined | `[{"launch_id":"abc-...","provider":"Launch Library 2"}]` |
| 🏷️ `launchProviders` | array | undefined | `["Launch Library 2"]` |
| 🎯 `events` | array | undefined | `[{"event_id":1234,"provider":"Launch Library 2"}]` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-15T00:00:00.000Z"` |

#### 📦 Sample record

<details>
<summary><strong>🚀 SpaceX Starship article from NASASpaceflight</strong></summary>

```json
{
    "id": 28471,
    "contentType": "articles",
    "title": "SpaceX launches Starlink Group 8-12 from Cape Canaveral",
    "url": "https://www.nasaspaceflight.com/2026/05/spacex-starlink-8-12/",
    "imageUrl": "https://www.nasaspaceflight.com/wp-content/uploads/2026/05/cover.jpg",
    "news_site": "NASASpaceflight",
    "summary": "SpaceX launched 23 Starlink satellites from Cape Canaveral SLC-40 on Tuesday afternoon, marking the company's 45th launch of the year.",
    "authors": [{"name":"Adrian Beil","socials":null}],
    "featured": false,
    "published_at": "2026-05-14T16:30:00Z",
    "publishedDate": "2026-05-14",
    "updated_at": "2026-05-14T17:00:00Z",
    "launches": [{"launch_id":"abc-123-def-456","provider":"Launch Library 2"}],
    "launchProviders": ["Launch Library 2"],
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 📰 | **20+ trusted sources.** NASA, SpaceX, ESA, NASASpaceflight, Ars Technica, SpaceNews, European Spaceflight, SpacePolicyOnline.com, Spaceflight Now, and more. |
| 🎯 | **Multi-dimensional filtering.** Source, search term, featured status, date range, launch ID, and event ID combine freely. |
| 🚀 | **Launch + event links.** Articles connected to Launch Library 2 launches and events for cross-referencing with mission timelines. |
| ✍️ | **Author metadata.** Full author list with optional social handles per article. |
| ⏰ | **Time-series ready.** ISO 8601 publication and update timestamps plus a derived `publishedDate`. |
| ⚡ | **Fast.** Hundreds of articles in seconds, multi-thousand archive pulls in under a minute. |
| 🚫 | **No authentication.** Public Spaceflight News open feed. No login or registration needed. |

> 📡 The Spaceflight News aggregator is cited by hundreds of space-industry apps, dashboards, and newsletters as the canonical structured feed for the entire industry.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Spaceflight News Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **20+ outlets** | **Live per run** | source, search, featured, date, launch, event | ⚡ 2 min |
| Per-source RSS feeds | Free | One outlet at a time | Real-time | None | 🐢 N parsers |
| Google News for "space" | Free | Mixed | Live | Limited | ⏳ Noisy results |
| Commercial news APIs | $200+/month | Multi-source | Real-time | Many | ⏳ License + onboarding |

Pick this Actor when you need a clean, deduplicated, structured feed across the entire space-industry press in under three minutes.

***

### 🚀 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 Spaceflight News Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a content type, optionally add a search term, source filter, or date range.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your news feed.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

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

***

### 💼 Business use cases

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

#### 📱 Media & Publishing

- Powering space-news mobile apps with one structured feed
- Aggregator websites with filtered topic streams
- Newsletter content sourcing across 20+ outlets
- Podcast research bundles per launch or mission

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

#### 💼 Investor & Industry Research

- Sentiment dashboards on NewSpace IPOs
- Launch-cadence tracking for SpaceX, Blue Origin, Rocket Lab
- Competitive coverage monitoring for Earth-observation startups
- Press-coverage benchmarks for satellite operators

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

#### 🏛️ Policy & Government

- Monitoring SpacePolicyOnline.com for regulatory updates
- ESA and NASA agency briefings tracking
- Export-control news around launch providers
- Civil-space communications and outreach analytics

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

#### 🤖 AI & Data Teams

- RAG corpora for space-domain LLM assistants
- Training data for entity extraction (rockets, agencies, satellites)
- Topic-classification benchmarks across blogs vs reports
- Knowledge graphs linking articles to launches and events

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

***

### 🔌 Automating Spaceflight News 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 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 daily refreshes keep downstream news feeds in sync automatically.

***

### 🌟 Beyond business use cases

Space-news 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

- Media-studies analyses of space-news framing
- Reproducible studies with cited, versioned dataset pulls
- Communication coursework on technical journalism
- Open-data exercises on news aggregation pipelines

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

#### 🎨 Personal and creative

- Personal "today in space" homepage feeds
- Hobbyist tracking of niche missions and rocket families
- Newsletter side projects for space enthusiasts
- Content research for space bloggers and creators

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

#### 🤝 Non-profit and civic

- Educational outreach with curated topic streams
- Civic transparency around government space programs
- Investigative journalism on launch failures and accidents
- Open-source community-news contributions

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

#### 🧪 Experimentation

- Train space-domain ML classifiers
- Validate news-tech product hypotheses with real data
- Prototype agent pipelines that resolve mission references
- Test dashboard concepts with live space-news feeds

</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%20Spaceflight%20News%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%20Spaceflight%20News%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%20Spaceflight%20News%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%20Spaceflight%20News%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 content type, optionally add a search term, source filter, or date range, click Start, and the Actor returns clean structured records across every matching outlet.

#### 📰 Which sources are covered?

20+ trusted space-news outlets including NASA, SpaceX, ESA, NASASpaceflight, Ars Technica, SpaceNews, European Spaceflight, SpacePolicyOnline.com, Spaceflight Now, Space Scout, and more. Use the `newsSite` filter to scope to one outlet, or leave empty for all of them.

#### 📑 What's the difference between articles, blogs, and reports?

Articles are mainstream news stories from major outlets. Blogs are commentary or opinion-style posts. Reports are longer-form analyses or technical write-ups. Set `contentType` to `all` to pull every type in one run.

#### 🚀 What is Launch Library 2?

The open catalogue of launches, events, agencies, and rockets that the news source uses to link articles to specific missions. Use a Launch Library 2 launch UUID in `launchId` to find every article covering a specific launch (e.g. Crew-9, Artemis II).

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

The aggregator updates within minutes of stories being published. Every run of this Actor pulls live data, so your dataset reflects the current state at run time.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval (hourly, daily, weekly) and keep downstream news feeds in sync.

#### 🌍 Are non-English sources supported?

The aggregator focuses on English-language outlets. The `news_site` filter requires the exact source name as published.

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

The aggregator publishes article metadata and summaries under open access. Full article text remains the property of each publishing outlet. Always link back to the original source and respect publisher copyright when republishing summaries or excerpts.

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

Spaceflight News 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) - Self-hosted automation pipelines
- [**Pipedream**](https://docs.apify.com/platform/integrations/pipedream) - Event-driven workflow automation
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe news 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 fresh space-news stories into your product backend, or alert your team in Slack.

***

### 🔗 Recommended Actors

- [**🛰️ NASA Open Data Scraper**](https://apify.com/parseforge/nasa-open-data-scraper) - NASA mission, asset, and APOD data
- [**🚀 Launch Library Scraper**](https://apify.com/parseforge/launch-library-scraper) - Upcoming and historical rocket launches
- [**🛸 OpenSky Flights Scraper**](https://apify.com/parseforge/opensky-flights-scraper) - Live and historical aviation flight data
- [**🌍 NOAA Weather Scraper**](https://apify.com/parseforge/noaa-weather-scraper) - U.S. and global weather data
- [**📰 Hacker News Scraper**](https://apify.com/parseforge/hacker-news-scraper) - Tech news and front-page stories

> 💡 **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 Spaceflight News, NASA, SpaceX, ESA, or any of the news outlets aggregated. All trademarks mentioned are the property of their respective owners. Only publicly available open news metadata is collected.

# Actor input Schema

## `contentType` (type: `string`):

What to fetch: articles, blogs, reports, or all of them.

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

Search across title, summary, and body (e.g. Starship, James Webb, Mars).

## `newsSite` (type: `string`):

Filter by source name (exact match). Examples: NASA, SpaceNews, Arstechnica, ESA, European Spaceflight, NASASpaceflight, Space Scout, SpacePolicyOnline.com, Spaceflight Now. Leave empty for all sources.

## `isFeatured` (type: `boolean`):

Return only featured/highlighted items.

## `launchId` (type: `string`):

Find articles linked to a specific launch (Launch Library 2 UUID). Leave empty for all.

## `eventId` (type: `integer`):

Find articles linked to a specific spaceflight event (Launch Library 2 numeric ID). Leave empty for all.

## `publishedAfter` (type: `string`):

Earliest publication date, format YYYY-MM-DD.

## `publishedBefore` (type: `string`):

Latest publication date, format YYYY-MM-DD.

## `ordering` (type: `string`):

Sort order for results.

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

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

## Actor input object example

```json
{
  "contentType": "articles",
  "isFeatured": false,
  "ordering": "-published_at",
  "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 = {
    "contentType": "articles",
    "ordering": "-published_at",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/spaceflight-news-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 = {
    "contentType": "articles",
    "ordering": "-published_at",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/spaceflight-news-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 '{
  "contentType": "articles",
  "ordering": "-published_at",
  "maxItems": 10
}' |
apify call parseforge/spaceflight-news-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Spaceflight News Scraper",
        "description": "Scrape space and astronomy news articles, blogs, and reports from the Spaceflight News API. Filter by search term, news site, featured status, date range. No API key required.",
        "version": "0.0",
        "x-build-id": "w7qEynlczhOPzlIJL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~spaceflight-news-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-spaceflight-news-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~spaceflight-news-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-spaceflight-news-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~spaceflight-news-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-spaceflight-news-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": {
                    "contentType": {
                        "title": "Content Type",
                        "enum": [
                            "articles",
                            "blogs",
                            "reports",
                            "all"
                        ],
                        "type": "string",
                        "description": "What to fetch: articles, blogs, reports, or all of them.",
                        "default": "articles"
                    },
                    "search": {
                        "title": "Free-text Search",
                        "type": "string",
                        "description": "Search across title, summary, and body (e.g. Starship, James Webb, Mars)."
                    },
                    "newsSite": {
                        "title": "News Site",
                        "type": "string",
                        "description": "Filter by source name (exact match). Examples: NASA, SpaceNews, Arstechnica, ESA, European Spaceflight, NASASpaceflight, Space Scout, SpacePolicyOnline.com, Spaceflight Now. Leave empty for all sources."
                    },
                    "isFeatured": {
                        "title": "Featured Only",
                        "type": "boolean",
                        "description": "Return only featured/highlighted items.",
                        "default": false
                    },
                    "launchId": {
                        "title": "Launch ID",
                        "type": "string",
                        "description": "Find articles linked to a specific launch (Launch Library 2 UUID). Leave empty for all."
                    },
                    "eventId": {
                        "title": "Event ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Find articles linked to a specific spaceflight event (Launch Library 2 numeric ID). Leave empty for all."
                    },
                    "publishedAfter": {
                        "title": "Published After",
                        "type": "string",
                        "description": "Earliest publication date, format YYYY-MM-DD."
                    },
                    "publishedBefore": {
                        "title": "Published Before",
                        "type": "string",
                        "description": "Latest publication date, format YYYY-MM-DD."
                    },
                    "ordering": {
                        "title": "Ordering",
                        "enum": [
                            "-published_at",
                            "published_at",
                            "-featured",
                            "-updated_at"
                        ],
                        "type": "string",
                        "description": "Sort order for results.",
                        "default": "-published_at"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
