# PR Newswire Press Release Scraper (`parseforge/pr-newswire-scraper`) Actor

Scrape PR Newswire press releases by keyword, company, industry, or date range. Returns headline, date, full text, and optional media. Export to CSV, JSON, Excel, or XML.

- **URL**: https://apify.com/parseforge/pr-newswire-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, News, Lead generation
- **Stats:** 86 total users, 5 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $18.00 / 1,000 records

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### PR Newswire Press Release Scraper

**Scrape press releases from PR Newswire by keyword, company, industry, or date range, up to a million per run.** Every release comes with its headline, date, full body text, and optional media attachments. No login or API key. Export to CSV, JSON, Excel, or XML.

PR Newswire's own search and archive tools are limited and don't let you export structured data at scale. This scraper reads the public press release feeds directly, filtered by keyword, company name, industry, or date range, and returns each match in one fixed schema. Turn press releases into a sales-ready company database with optional Apollo.io enrichment.

| Who uses it | What they scrape PR Newswire for |
|---|---|
| PR and communications professionals | Monitor competitor press releases and industry announcements in real time. |
| Market researchers | Track product launches, partnerships, and funding news across sectors. |
| Sales and business development teams | Build targeted prospect lists from companies issuing press releases in your niche. |
| Journalists and analysts | Gather press release data for trend reports and news coverage. |

### What it does

This Actor collects press releases from PR Newswire by keyword, company, industry, or date range, and returns each one as a flat row with headline, date, full text, and optional media.

- 🔍 **Keyword search:** Find press releases containing specific terms like "artificial intelligence" or "merger."
- 📅 **Date range filter:** Limit results to a custom start and end date in YYYY-MM-DD format.
- 🏢 **Company or industry filter:** Narrow by issuing company name or industry category.
- 📄 **Full text extraction:** Optionally pull the complete body text of each release.
- 🖼️ **Media attachments:** Optionally extract images, videos, and documents linked in the release.
- ✨ **Company enrichment:** Toggle on to add company profile data (size, funding, industry, decision makers) via Apollo.io.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with PR Newswire data

**📈 Track industry trends.**

A market researcher runs the scraper with a keyword like "renewable energy" and a date range to spot emerging themes and company moves.

**🏢 Build a prospect list.**

A sales team filters by industry "Technology" and company name to collect press releases from target accounts, then enriches them with Apollo.io for outreach.

**📰 Monitor competitors.**

A PR professional sets the scraper to run daily with a competitor's company name to catch every new press release as it publishes.

**📊 Analyze funding rounds.**

An analyst searches for "funding" or "Series A" across a date range to map investment activity in a sector.

### Why choose this scraper

|  | What you get |
|---|---|
| **Structured data** | Every press release is returned as a clean row with headline, date, full text, and metadata. |
| **No API key needed** | Scrape directly from the public PR Newswire site without registration or rate limits. |
| **Scalable** | Collect up to 1 million press releases in a single run, with pagination handled automatically. |
| **Optional enrichment** | Add company profiles from Apollo.io to turn releases into a sales-ready database. |

### How it compares

No other Store actor targets PR Newswire the same way, so the honest comparison is with the alternatives teams actually weigh.

| | PR Newswire Press Release Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When PR Newswire changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from keyword, company name, industry, or date range, alone or together, and filters run as each press release is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.02 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.00 |
| 1,000 results | $20.00 |
| 10,000 results | $200.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [PR Newswire Press Release Scraper](https://apify.com/parseforge/pr-newswire-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to PR Newswire through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/pr-newswire-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your keyword, company name, or industry filter is spelled correctly. Try a broader search or remove filters to see if any results exist.

**The scraper is returning fewer results than expected.**

PR Newswire may have limited results for very narrow filters. Increase the maxItems value or broaden your search criteria.

**The full text is missing from some releases.**

Ensure includeFullText is set to true. Some older or archived releases may have truncated text on the source page.

**Apollo.io enrichment is not working.**

Verify that you have authorized the Apollo.io connector in the enrichment settings. Check that the company name in the press release matches a known Apollo.io profile.

### FAQ

| Question | Answer |
|---|---|
| Do I need a PR Newswire account or API key? | No. The scraper reads public press release pages directly, so no login or API key is required. |
| Can I scrape press releases from a specific date range? | Yes. Use the dateFrom and dateTo fields in YYYY-MM-DD format to limit results to a custom period. |
| What does the Apollo.io enrichment add? | When enabled, it adds the issuing company's profile including size, funding, industry, and decision makers. Results are cached per unique company to minimize API calls. |
| How many press releases can I scrape? | Free users are limited to 10 items. Paid users can scrape up to 1,000,000 press releases per run. |
| Can I get the full text of each press release? | Yes. By default the full text is included. You can disable it in the input settings to speed up runs. |
| What export formats are supported? | You can export the dataset as CSV, JSON, Excel, or XML from the Apify platform. |
| Does the scraper handle pagination automatically? | Yes. It follows pagination links on PR Newswire until it reaches your maxItems limit or the end of results. |
| Can I filter by industry or company name? | Yes. Use the industry and companyName fields to narrow results to a specific sector or organization. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by PR Newswire Association LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

Free users: Limited to 100. Paid users: Optional, max 1,000,000

## `keyword` (type: `string`):

Keyword to search for in press releases. This is the main search parameter for finding relevant press releases.

## `dateFrom` (type: `string`):

Start date for press releases in YYYY-MM-DD format (optional).

## `dateTo` (type: `string`):

End date for press releases in YYYY-MM-DD format (optional).

## `industry` (type: `string`):

Filter by specific industry (optional).

## `companyName` (type: `string`):

Filter by specific company name (optional).

## `includeFullText` (type: `boolean`):

Whether to extract the full text content of each press release (may increase processing time).

## `includeMedia` (type: `boolean`):

Whether to extract media attachments like images, videos, and documents.

## `enrichOutput` (type: `boolean`):

Toggle on to add the issuing company's profile (size, funding, industry, decision makers) to every press release using Apollo.io. Default off — results cached per unique company so 100 releases from the same company = 1 API call.

## `enrichConnector` (type: `string`):

Pick the Apollo.io connector. Click '+' to authorize if you haven't yet.

## `mcpProxyUrlOverride` (type: `string`):

Diagnostic only. Bypasses Apify's MCP proxy. Leave empty for normal use.

## `mcpTokenOverride` (type: `string`):

Diagnostic only. Used with URL override. Leave empty for normal use.

## Actor input object example

```json
{
  "maxItems": 10,
  "keyword": "artificial intelligence",
  "dateFrom": "2024-01-01",
  "dateTo": "2024-12-31",
  "industry": "Technology",
  "companyName": "Microsoft Corporation",
  "includeFullText": true,
  "includeMedia": false,
  "enrichOutput": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview view of press releases with key fields displayed in a table format

## `pressReleases` (type: `string`):

Complete dataset with all scraped press release data including content, company information, contact details, publication metadata, multimedia assets, and related releases

# 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 = {
    "maxItems": 10,
    "keyword": "technology"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/pr-newswire-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 = {
    "maxItems": 10,
    "keyword": "technology",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/pr-newswire-scraper").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 '{
  "maxItems": 10,
  "keyword": "technology"
}' |
apify call parseforge/pr-newswire-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/pr-newswire-scraper"
        }
    }
}
```

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/F1Nn5Ai31ViQC89vL/builds/PDHtku7p10VS6O9hZ/openapi.json
