Skip to content
    ↑↓ to choose · Enter to open

    · 14 min read

    PR Newswire Scraper: 24 Data Fields, Up to 1,000 Free Results/Month

    By CrawlerBros Engineering Team

    Each output record from this press release collector delivers 24 structured data fields, including the full body text, dateline location, and specific investor relations contacts when executing exact URL lookups. The scraper handles connection issues automatically by retrying with backoff and falling back to the free Apify datacenter proxy AUTO group to retrieve real-time corporate updates directly from the wire. It is engineered for intelligence analysts, public relations platforms, and automated trading desks that need to ingest high-volume corporate communications instantly. If you need comprehensive coverage of European or niche regional news channels, which are not distributed via this wire, you should look elsewhere.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open PR Newswire Scraper on Apify and run the prefilled example.

    How reliable is PR Newswire Scraper in production?

    Across the last 30 days of public runs on the Apify platform, PR Newswire Scraper recorded 70 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 32 45.7%
    Failed 0 0.0%
    Aborted by the user 38 54.3%
    Timed out 0 0.0%
    Total 70 100.0%

    No run failed or timed out in the last 30 days; the 38 that did not finish were stopped by the people who started them. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.

    What does it cost to run PR Newswire Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.

    The result charge depends entirely on the maxItems parameter and the number of URLs passed to the urls array, as these dictate the final volume written to your dataset. To verify your output structure without spending platform usage, configure your first run with the default example inputs to return 30 results and cap your result charges at just $0.15.

    How do you run PR Newswire Scraper from the API?

    The schema marks 1 of its 10 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for PR Newswire Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~pr-newswire-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","organizationSlug":"microsoft-corporation","urls":[],"searchQuery":"artificial intelligence","category":"business-technology","maxItems":30,"pageSize":"25"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "organizationSlug": "microsoft-corporation",
      "urls": [],
      "searchQuery": "artificial intelligence",
      "category": "business-technology",
      "maxItems": 30,
      "pageSize": "25"
    }
    
    run = client.actor("crawlerbros~pr-newswire-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "organizationSlug": "microsoft-corporation",
      "urls": [],
      "searchQuery": "artificial intelligence",
      "category": "business-technology",
      "maxItems": 30,
      "pageSize": "25"
    }
    
    const run = await client.actor('crawlerbros~pr-newswire-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which PR Newswire Scraper inputs matter, and which can you skip?

    The mode parameter dictates how the Actor fetches data, which can range from free-text keywords to specific corporate newsroom slugs. Beginners should configure searchQuery for broad topics and leave the advanced language and date range filters blank during initial testing.

    • mode (string): What to fetch. Default: "search".
    • organizationSlug (string): PR Newswire's URL slug for the issuing company, e.g. microsoft-corporation for https://www.prnewswire.com/news/microsoft-corporation/. Find the slug by searching the company on prnewswire.com and copying the last path segment of its newsroom URL. Default: "".
    • urls (array): Exact prnewswire.com press-release URLs to fetch full text for. Returns full body text, dateline, and source organization in addition to title/date/summary. Default: [].
    • searchQuery (string): Free-text keyword to search press-release headlines and body text for, e.g. artificial intelligence. Default: "artificial intelligence".
    • category (string): PR Newswire's top-level industry taxonomy. Returns the latest press releases in that industry. Default: "business-technology".
    • language (string): Only keep releases published in this 2-letter language code (e.g. en, fr, de, es). PR Newswire distributes releases in many languages; leave blank to keep all.
    • dateFrom (string): Only keep releases published on/after this date (UTC). Applied client-side against each release's actual publish timestamp - PR Newswire's own search date-range parameters are ignored server-side.
    • dateTo (string): Only keep releases published on/before this date (UTC). Applied client-side against each release's actual publish timestamp - PR Newswire's own search date-range parameters are ignored server-side.
    • maxItems (integer): Hard cap on emitted records. Default: 30.
    • pageSize (string): How many cards PR Newswire returns per page fetch. Higher values mean fewer HTTP requests to reach maxItems. Only applies to mode=search and mode=byOrganization. Default: "25".

    Fixed-choice controls: mode accepts search (Search by keyword), byCategory (Browse by industry category), byOrganization (Browse by company/organization), latest (Latest releases (all industries)), byUrls (Fetch exact press-release URLs); category accepts 16 values (default business-technology), including business-technology (Business Technology), automotive-transportation (Automotive & Transportation), consumer-products-retail (Consumer Products & Retail), consumer-technology (Consumer Technology); pageSize accepts 25 (25 per page), 50 (50 per page), 75 (75 per page), 100 (100 per page).

    What does PR Newswire Scraper return?

    The returned records are designed for text mining and competitive monitoring, delivering the plain-text bodyText, direct URLs, and standardized ISO timestamps. Note that fields like tickerSymbols, mediaContactEmail, and datelineLocation are documented under byUrls mode and will only populate in your dataset when those specific elements are present on the retrieved pages.

    • title
    • url - direct link to the full press release
    • guid - PR Newswire's unique release ID (mode=byCategory, mode=latest)
    • publishedAt - ISO 8601 UTC timestamp
    • summary - plain-text excerpt
    • industries[] - PR Newswire's industry tags for this release (mode=byCategory, mode=latest, mode=byUrls when the page carries the tag module)
    • category - the industry category slug this record was matched against (mode=byCategory only)
    • organization - the company/organization that issued the release (mode=byCategory, mode=latest, mode=search, mode=byOrganization)
    • language - BCP-47 language code (e.g. en-US, ja, de, zh-hant) - all modes except byUrls
    • publisher - always "PR Newswire Association LLC." (mode=byCategory, mode=latest)
    • imageUrl - thumbnail image if the release has one (mode=search, mode=byUrls)
    • searchQuery - the query that produced this record (mode=search)
    • organizationSlug - the company/organization newsroom slug that issued this release; feed it into mode=byOrganization to browse that company's full newsroom (mode=byOrganization, mode=search)
    • updatedAt - ISO 8601 UTC last-modified timestamp (mode=byUrls)
    • description - the lead sentence/dek of the release (mode=byUrls)
    • datelineLocation - the release's dateline city/state, e.g. "SAN MATEO, Calif." (mode=byUrls)
    • sourceOrganization - the company credited as "SOURCE" at the end of the release (mode=byUrls)
    • bodyText - the full plain-text press-release body (mode=byUrls)
    • mediaContactName, mediaContactPhone, mediaContactEmail - the release's own media/investor/press contact, when one is explicitly listed (mode=byUrls). mediaContactPhone is only present when a real phone number (not PR Newswire's own switchboard) appears right alongside that contact.
    • tickerSymbols[] - stock-ticker mentions found in the release body, formatted EXCHANGE:SYMBOL (e.g. NASDAQ:PODD) - covers any publicly traded company named in the text (the issuer itself, or a third party such as a lawsuit defendant), present only on releases that mention one (mode=byUrls)
    • recordType: "pressRelease", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open PR Newswire Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Select your target mode based on your tracking goal: use search to find keyword-specific announcements or byOrganization to pull from a corporate newsroom.
    2. If using byOrganization, visit prnewswire.com, locate your target company's newsroom, and extract the final path segment of their URL to use as your organizationSlug.
    3. Set the maxItems limit to a low value like 5 to verify your target filters before committing to a larger run.
    4. Configure dateFrom and dateTo in YYYY-MM-DD format to apply client-side temporal filtering against each release's actual publish timestamp.
    5. Run the scraper with your initial parameters and check the default output dataset in your Apify console.
    6. Inspect the returned JSON records to confirm key fields such as title, url, and publishedAt are present.
    7. If you require full-text content or media contacts, extract the exact URLs from your initial run and feed them into a second run with mode set to byUrls.

    How do you apply it? Three worked playbooks

    These are PR Newswire Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: PR/comms teams

    Outcome: Monitor competitor press-release cadence by industry or company

    Configure: Set mode to "byOrganization", organizationSlug to "microsoft-corporation", and maxItems to 50.

    Working method: Run the Actor on a weekly schedule using your competitor's slug. Save the resulting dataset to a key-value store, comparing the publishedAt dates from successive runs to identify new announcements.

    Deliverable: A structured JSON list containing titles, URLs, published dates, and summaries of all recent press releases issued by the target company.

    Stop condition: The run returns zero results for a company known to be active, or the newsroom URL slug redirects to a 404 page.

    Use case 2: Investor relations research

    Outcome: Pull a public company's full newsroom history via byOrganization

    Configure: Set mode to "byOrganization", organizationSlug to "microsoft-corporation", and maxItems to 300.

    Working method: Execute a deep scan of the target organization's newsroom. If you need complete bodies rather than summaries, collect all retrieved URLs and pipe them into a second Actor run using mode set to byUrls.

    Deliverable: A comprehensive archival dataset of the company's PR Newswire history, including exact publication timestamps and issuing organization names.

    Stop condition: The pagination loops infinitely on the newsroom page or stops short of the specified maxItems due to client-side date filter exclusions.

    Use case 3: Financial signal extraction

    Outcome: Use tickerSymbols[] from mode=byUrls to flag releases mentioning publicly traded companies

    Configure: Set mode to "byUrls", urls to your list of target press release links, and maxItems to 100.

    Working method: Feed a batch of newly discovered press-release URLs into the Actor. Parse the returned dataset specifically for the tickerSymbols array to identify which stock tickers are referenced in the body text.

    Deliverable: An enriched dataset of full-text press releases mapped to their verified exchange ticker symbols.

    Stop condition: The tickerSymbols array returns completely empty across a known financial news batch, indicating a layout change in the source text parsing.

    What breaks, and how do you design around it?

    • Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    When hitting the limits of the shared global RSS feed in byCategory mode, switch your approach to mode set to search with localized keywords to capture historical data. For large-scale organization crawls that hit pagination thresholds, split your runs by setting specific dateFrom and dateTo windows to keep page depths manageable.

    When should you not use PR Newswire Scraper?

    Do not use this scraper if you require comprehensive press release monitoring across alternative global wire networks, as this Actor is strictly limited to prnewswire.com. If your research targets international corporate announcements or financial disclosures distributed outside of PR Newswire, you should use the GlobeNewswire Press Release Scraper instead. Furthermore, if you need to extract articles from general mainstream publications or track localized media coverage rather than official corporate press releases, the News Source Crawler or the Yahoo News Scraper are much better suited for indexing diverse media outlets and sitemaps.

    What should you check before trusting the output?

    • Confirm that publishedAt is returned as a valid ISO 8601 UTC timestamp rather than an unparsed Eastern Time string.
    • Verify that bodyText and datelineLocation are populated when running in byUrls mode, as these fields are retrieved from the full release pages.
    • Check for the presence of tickerSymbols when extracting financial announcements, ensuring they follow the EXCHANGE:SYMBOL format.
    • Monitor for empty datasets when using byCategory; if zero items return, verify if the current 20-item global firehose contains any releases matching your specific industry tag.

    None of this proves a record is correct. It gives a scheduled PR Newswire Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How much does it cost to scrape 10,000 press releases?

    At the free-plan price of $5.00 per 1,000 results, scraping 10,000 press releases costs $50.00 in result charges. Note that this estimate does not include the standard platform usage charges billed by Apify or the minor run-start fees, though paid plans reduce the per-result price.

    Why does a niche category return so few results on my run?

    The category mode filters PR Newswire's unified, 20-item global RSS firehose feed by the target industry tags. If zero or very few releases are returned, it simply means no articles in that specific industry were published in the most recent batch of 20 global releases.

    Can I obtain the complete body text of the press releases?

    Yes. While search and feed modes return summaries, you can extract the full plain-text body by capturing the target release URLs and running them through the scraper using mode set to byUrls.

    Are the publication dates adjusted for different timezones?

    Yes. The scraper automatically normalizes the displayed Eastern Time from PR Newswire into standard ISO 8601 UTC timestamps, which populate the publishedAt and updatedAt fields in your output.

    How reliable is this Actor for automated daily tracking?

    The scraper is reliable, showing a 0.0% failure rate across 70 runs in the last 30 days. It handles connection issues automatically by retrying with backoff and falling back to the free Apify datacenter proxy AUTO group.

    Where to go next

    When you are ready to run it, open PR Newswire Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the PR Newswire Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    • GlobeNewswire Press Release Scraper: Scrape GlobeNewswire, a leading press-release wire for corporate, financial, and investor news.
    • News Source Crawler: Given a news website URL, discover and extract articles with full metadata with title, authors, publish date, body text, top image, keywords, and summary.
    • Yahoo News Scraper: Scrape Yahoo News articles across categories, trending stories, and keyword search.
    • Yandex News Scraper: Scrape Yandex News stories, article clusters, and trending topics across Russian and CIS markets.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-06.

    • Actor last updated by its maintainers on 2026-08-03.

    • Run outcome figures cover the 30 day public window ending 2026-10-06.

    • PR Newswire Scraper on Apify

    Featured actors

    PR Newswire Scraper

    Scrape PR Newswire - one of the world's largest press-release distribution networks. Search press releases by keyword, or browse the latest releases across 16 industry categories (technology, healthcare, finance, energy, and more) with title, publish date, summary, and source organization.

    Run on Apify ↗