PR Newswire Scraper — Press Releases by Company, Topic & Date

NexGenData · @nexgendata

PR Newswire Scraper is a NexGenData tool that returns press releases with headline, date, category and stock tickers from PR Newswire.

About

PR Newswire Press Releases Scraper

PR Newswire Scraper is a NexGenData tool that returns press releases with headline, date, category and stock tickers from PR Newswire.

Monitor PR Newswire press releases for media and PR intelligence. Built for PR, comms, media-monitoring teams and AI agents.

Factual public data — not financial or investment advice.

📊 Sample Output

urltitletime_labelsummaryimage_urlsource
https://www.prnewswire.com/news-releases/bybit-devoile--make-your-mov…Bybit dévoile « Make Your Move », la nouvelle campagne mondiale de la…19:51 ETBybit, la nouvelle plateforme financière à laquelle font confiance pl…https://mmx.prnewswire.com/media/MS1995732/20260924035812EDT_image_1.…prnewswire.com
https://www.prnewswire.com/news-releases/hexclad-raises-the-bar-with-…/C O R R E C T I O N -- HexClad/19:50 ETHexClad, the revolutionary kitchen brand that pioneered the hybrid co…https://mmx.prnewswire.com/media/MS1989204/Unknown-9.jpg?id=OA2951040prnewswire.com
https://www.prnewswire.com/news-releases/metaoptics-ltd-establishes-a…MetaOptics Ltd establishes American Depositary Receipt ("ADR") Progra…19:46 ETMetaOptics Ltd (Catalist: 9MT) ("MetaOptics" or the "Company", and to…prnewswire.com
https://www.prnewswire.com/news-releases/huawei-devoile-six-projets-e…Huawei dévoile six projets énergétiques mondiaux, ouvrant la voie à u…19:41 ETDans le cadre du salon HUAWEI CONNECT 2026, Huawei a organisé le Somm…https://mmx.prnewswire.com/media/MS1995593/20260923232456EDT_image_1.…prnewswire.com
https://www.prnewswire.com/news-releases/sabre-corporation-announces-…Sabre Corporation Announces Results of Previously Announced Cash Tend…19:34 ETSabre Corporation ("Sabre") (Nasdaq: SABR) today announced the result…https://mmx.prnewswire.com/media/MS77207/SABRE-LOGO-V1.jpg?id=OA29708…prnewswire.com

Real rows from a real run (2026-09-24), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.

🔧 Input reference

FieldTypeDefaultWhat it does
keywordstring""Search keyword. Empty = no keyword filter (returns latest releases). Example: 'earnings', 'IPO', 'Microsoft', 'partnership'.
dateFromstring""Earliest publication date (UTC, inclusive). Requires includeFullBody=true to be effective (date filter uses detail-page JSON-LD).
dateTostring""Latest publication date (UTC, inclusive). Requires includeFullBody=true to be effective.
includeFullBodybooleanfalseIf true, follow each release URL to fetch the full body text + JSON-LD metadata (datePublished, dateModified, description, tickers extracted via regex). Adds ~0.4s per release. If…
maxReleasesinteger5Max releases to return (1–2000). Each release is one dataset row. ~25 releases per list page; pagination is automatic.
proxyConfigurationobject{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}Proxy used for retries. The actor fetches each page directly first and, if PR Newswire blocks or times out, retries it on a fresh session from this proxy. Keep RESIDENTIAL: PR Newswire sometimes walls datacenter IPs on paginated requests. Leaving it off means no fallback route.

🧾 JSON sample record

One real record from a real run (emails/phones masked, long text shortened):

{
  "url": "https://www.prnewswire.com/news-releases/bybit-devoile--make-your-move--la-nouvelle-campagne-mondiale-de-la-marque-pour-sa-nouvelle-plateforme-financiere-302889877.html",
  "title": "Bybit dévoile « Make Your Move », la nouvelle campagne mondiale de la marque pour sa nouvelle plateforme financière",
  "time_label": "19:51 ET",
  "summary": "Bybit, la nouvelle plateforme financière à laquelle font confiance plus de 80 millions d'utilisateurs à travers le monde, a annoncé aujourd'hui le...",
  "image_url": "https://mmx.prnewswire.com/media/MS1995732/20260924035812EDT_image_1.jpg?id=OA2969347",
  "date_published": null,
  "date_modified": null,
  "description": null,
  "body_text": null,
  "tickers": [],
  "category": null,
  "country": null,
  "source": "prnewswire.com",
  "truncated": false,
  "truncation_reason": null,
  "pages_fetched": 1
}

⏰ Run this as a daily press-release feed (recommended)

Point it at your keywords, schedule it, and new releases land in your dataset every day. The inputs are keyword and maxReleases (plus optional dateFrom / dateTo and includeFullBody):

{
  "keyword": "Microsoft",
  "maxReleases": 50,
  "includeFullBody": true
}

Daily cron (0 8 * * *) turns this into an always-on newsroom feed — ready for an agent to summarize.

How the keyword works. PR Newswire's own search is used first (it matches the release body too), so a keyword like Microsoft returns releases that mention Microsoft, not only releases issued by Microsoft. Filter on the title / body_text fields downstream when you need issuer-only results. Leave keyword empty for the latest releases across the wire.

Older releases. PR Newswire's own search only reaches back about six months. When it runs out before your maxReleases, the actor tops up with older PR Newswire releases that contain your keyword, newest first. Each one is read from its PR Newswire page and kept only if the keyword is in the release. These rows carry found_via: "older_release_archive"; rows from the search carry "prnewswire_search".

Dates. dateFrom / dateTo filter on the published date from each release page, so they need includeFullBody: true (that is where the date comes from). Without it, a run returns the newest releases regardless of date.

What a blocked source looks like. If PR Newswire refuses the list page, the run retries on fresh IPs and falls back to the wire's RSS feed (latest 20); anything partial is labelled truncated: true with the reason, and a run that delivered nothing fails with "SOURCE BLOCKED".

📊 What you get

Clean JSON, one record per release (full output has 13 fields):

  • body_text — Body text
  • category — reserved; always null (PR Newswire exposes no filterable per-release category)
  • country — reserved; always null (PR Newswire exposes no country filter/field)
  • date_modified — Date modified
  • date_published — Date published
  • description — Description
  • image_url — Image url
  • source — Source
  • summary — Summary
  • tickers — Tickers

🤖 Use with AI agents

Point Claude, the OpenAI Agents SDK, an n8n flow or any MCP-aware client at it and run PR Newswire press-release monitoring on demand.

Sample agent prompt:

Summarize today's PR Newswire releases mentioning a company or sector.

Run it on a schedule

A daily run is the natural cadence for PR Newswire: companies put out releases all day, and a morning run picks up everything since the last one. If you track fast-moving names, such as companies with earnings or deal news due, you can run it several times a day. Each run brings new releases rather than updated old ones. The actor has no built-in new-only mode, so set maxReleases to cover one day's volume for your keyword and compare runs by url to drop releases you already have. Send each run's results onward with a webhook, Google Sheets, Zapier, Make or the Bytewells API.

FAQ

Why use this instead of the official PR Newswire website?

The website is free to read, but it is built for browsing. This actor runs a keyword search, handles pagination, and returns one clean JSON row per release. With includeFullBody on, it also opens each release and adds the full body text, published and modified dates, and stock tickers pulled from the text. It needs no API key, you pay per release, and it runs on a schedule as a daily feed.

What does a typical run cost?

One flat monthly price, with a free trial; there is no per-row charge. Bytewells bills compute separately from your prepaid credit, by memory and run time.

Is PR Newswire data available as JSON?

Yes. Each release comes back as a JSON row with URL, title, time label, summary, image URL and source. Set includeFullBody to true to add body_text, date_published, date_modified, description and tickers. The category and country fields are always empty, because PR Newswire does not expose them per release.

Can I get only press releases issued by a specific company?

Not directly. The keyword uses PR Newswire's own search, which also matches the release body, so Microsoft returns releases that mention Microsoft, not only ones Microsoft issued. Filter on title or body_text afterwards when you need issuer-only results.

Can I filter press releases by date?

Yes, with dateFrom and dateTo, but only when includeFullBody is true, because the published date comes from each release page. Without it, a run returns the newest releases regardless of date.

What happens if PR Newswire blocks the run?

The actor retries on fresh IPs and then falls back to the wire's RSS feed, which holds the latest 20 releases. Partial results are marked truncated: true with the reason. A run that delivers nothing fails with "SOURCE BLOCKED". Keep the default residential proxy, because PR Newswire blocks paginated requests from datacenter IPs.

How it is billed on Bytewells

One flat monthly price for this actor, with a free trial to start. There is no charge per row, per result or per run from us.

Compute is billed separately by Bytewells from your prepaid credit, by memory and run time (per second). If a run uses the platform's proxy, Bytewells adds that traffic to the same run's compute bill.

Run it from the API

Bytewells speaks the same API as Apify, so curl or apify-client work with the Bytewells address and your Bytewells API key.

curl -X POST "https://bytewells.com/api/v2/acts/nexgendata~pr-newswire-press-releases-scraper/runs" \
  -H "Authorization: Bearer YOUR_BYTEWELLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword": "", "issuerOnly": false, "dateFrom": "", "dateTo": "", "includeFullBody": false, "maxReleases": 5, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}}'

# when the run has finished, read its rows:
curl -H "Authorization: Bearer YOUR_BYTEWELLS_API_KEY" \
  "https://bytewells.com/api/v2/actor-runs/RUN_ID/dataset/items"
from apify_client import ApifyClient

client = ApifyClient("YOUR_BYTEWELLS_API_KEY", api_url="https://bytewells.com/api")
run = client.actor("nexgendata/pr-newswire-press-releases-scraper").call(run_input={'keyword': '', 'issuerOnly': False, 'dateFrom': '', 'dateTo': '', 'includeFullBody': False, 'maxReleases': 5, 'proxyConfiguration': {'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL']}})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)

Contact

Questions, a source that changed, or a field you need: [email protected]

More Actors from the same publisher.

View all from @nexgendata