Press Releases API — GlobeNewswire, PR Newswire & Newsrooms
Pricing
from $0.30 / 1,000 press releases
Press Releases API — GlobeNewswire, PR Newswire & Newsrooms
Press releases as data from GlobeNewswire, PR Newswire and any company newsroom RSS or Atom feed: headline, summary, issuer, tickers, ISINs, subjects, dateline, time and URL. Keyword search, company watch, monitor mode. No API key, no browser.
Pricing
from $0.30 / 1,000 press releases
Rating
0.0
(0)
Developer
Insight Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Share
Press releases as a flat table, from the two big open newswires and from any company newsroom feed. One release row per press release: the headline, the teaser, the issuing organisation, the wire, the publish time in UTC, the URL — and, where the wire publishes them, tickers, ISINs, subject tags and the dateline.
Three ways in: a keyword search on GlobeNewswire's and PR Newswire's own search pages; the wires' latest-release feeds, filtered by keyword, company, ticker, subject, language or time window; and any RSS or Atom feed you supply — a company's own newsroom. Set sinceHours and it becomes a monitor.
No API key. No login. No browser. $0.50 per 1,000 releases, and a run that returns nothing costs nothing.
At a glance
Input — this is the Store prefill; paste it and run:
{ "keywords": ["artificial intelligence"], "sources": ["globenewswire", "prnewswire"], "useFeeds": false,"maxResults": 20, "dedupe": true, "maxConcurrency": 3, "maxRunSecs": 240,"proxyConfiguration": { "useApifyProxy": true } }
That is GlobeNewswire's search pages 1–2 and PR Newswire's search page 1 — about three requests and up to forty rows.
Output — one release row per press release. The fields you will use most are title, summary, organisation, wire, publishedAt, url, tickers and subjects (full list under Output reference). A search or feed that could not be read comes back as a free diagnostic row (ok: false, errorType, error) instead of a charge.
Price — $0.50 per 1,000 releases (+ $0.001 per run); diagnostics and empty runs free; no API key, no browser, limited permissions, works over the Apify MCP server and with x402.
From code — client.actor("insight.solutions/press-releases-api").call(run_input={…}) with apify-client, or POST https://api.apify.com/v2/acts/insight.solutions~press-releases-api/run-sync-get-dataset-items.
What you get
A PR Newswire feed row, as the Actor writes it (abridged only where marked):
{"ok": true,"rowType": "release", // "release" | "diagnostic""releaseId": "302891705","title": "Corteva and Inari Reach Settlement Agreement","summary": "Corteva, Inc. (NYSE: CTVA) and Inari, the SEEDesign™ company, announced they have reached a confidential settlement agreement …","organisation": "Corteva Agriscience", // the issuer, as the wire names it"organisationUrl": null,"wire": "PR Newswire","publishedAt": "2026-09-28T16:45:00.000Z","publishedDate": "2026-09-28","url": "https://www.prnewswire.com/news-releases/corteva-and-inari-reach-settlement-agreement-302891705.html","language": "en","tickers": [{ "exchange": "NYSE", "symbol": "CTVA" }],"isins": [],"subjects": ["Contracts", "Legal Issues"],"dateline": { "city": "INDIANAPOLIS", "region": null }, // split out of the summary"imageUrl": "https://mmx.prnewswire.com/media/MS1169031/Corteva-Logo.jpg?id=OA2972733&p=original","matchedKeywords": [],"feedTitle": "All News Releases","rank": 4, // 4th in the wire's own order"foundBy": "feed", // "search" | "feed" | "list""input": "https://www.prnewswire.com/rss/news-releases-list.rss","source": "prnewswire","sourceUrl": "https://www.prnewswire.com/rss/news-releases-list.rss","error": null,"errorType": null,"scrapedAt": "2026-09-28T16:56:00.000Z"}
A GlobeNewswire feed row carries typed market data as well:
{"releaseId": "3370172","title": "Banijay Group: weekly share transactions","summary": null, // the listing said only "Press Release""organisation": "Banijay Group N.V.","tickers": [{ "exchange": "Amsterdam", "symbol": "BNJ" }],"isins": ["NL0015000X07"],"subjects": ["Other News", "European Regulatory News"],"language": "en","publishedAt": "2026-09-28T16:49:00.000Z"}
Every row carries the same columns, so releases and diagnostics export as one rectangular table.
Quick start
Keyword search on both wires. One search per keyword per wire, walked page by page up to maxResults:
{ "keywords": ["artificial intelligence", "acquisition"], "useFeeds": false, "maxResults": 50 }
A company watch, run daily. With no keywords, each company is searched for on both wires, the wires' latest feeds are read too, and everything is kept only if the issuer matches. sinceHours: 24 keeps the last day and stops each search at the first page that is older:
{ "companies": ["Corteva", "MongoDB"], "sinceHours": 24 }
Your own newsroom feeds. Any RSS 2.0 or Atom address, one request each:
{ "feedUrls": ["https://news.microsoft.com/feed/", "https://www.apple.com/newsroom/rss-feed.rss"], "useFeeds": false }
The latest from both wires, filtered. Leave keywords and companies empty and the run reads GlobeNewswire's public-company and earnings feeds, PR Newswire's all-releases and technology feeds, and PR Newswire's latest list behind them:
{ "subjects": ["Earnings"], "languages": ["en"], "sinceHours": 6 }
Input
| Field | Type | Default | What it does |
|---|---|---|---|
keywords | array of strings | [] (prefill: one) | One search per keyword on each selected wire. Also filters feed items: kept when any keyword is in the headline or summary |
companies | array of strings | [] | Keep only releases whose issuer contains one of these (case-insensitive). With no keywords, each company is also searched for on the wires |
sources | multi-select | globenewswire, prnewswire | globenewswire, prnewswire, feeds. feeds is added automatically when feedUrls is set |
useFeeds | boolean | true (prefill: false) | Also read the wires' latest-release feeds; with no keywords, PR Newswire's latest list follows its feed |
feedUrls | array of strings | [] | Any RSS or Atom address. An HTML page instead of a feed gets a free not-a-feed row |
tickers | array of strings | [] | Keep only releases naming one of these symbols. MSFT, $MSFT and NASDAQ:MSFT are the same filter |
subjects | array of strings | [] | Keep only releases with a subject tag containing one of these |
sinceHours | integer | none | Keep only releases from the last N hours; search walks stop at the first page older than that |
languages | array of strings | [] | Two-letter codes. A release with no stated language is dropped when this is set |
maxResults | integer | 100 (prefill: 20) | Release rows per walk — each keyword × wire search, each feed. 0 = no cap, bounded by maxRunSecs |
dedupe | boolean | true | One row, one charge, for a release found by several walks |
maxConcurrency | integer | 3 | Walks in flight; each keeps its own proxy session; 400 ms between pages of one walk |
maxRunSecs | integer | 240 | Whole-run wall-clock budget, 30–3600 |
proxyConfiguration | object | Apify datacenter | Both wires answered the datacenter proxy in testing |
A run needs at least one thing to read: a keyword, a company, a feed address, or useFeeds with a wire selected. The defaults alone qualify — they read the latest releases from both wires.
Output reference
| Column | On which rows | What it is |
|---|---|---|
ok, rowType | all | true + release, or false + diagnostic |
input | all | The keyword or company searched for, or the feed address read |
source | all | globenewswire, prnewswire or feed |
sourceUrl | all | The exact page or feed the row came from |
releaseId | release | The wire's id (GlobeNewswire dc:identifier, PR Newswire's nine digits), or a feed's <guid>/<id> |
title, summary | release | Headline, and the listing's teaser as text — dateline removed, never the release body |
organisation, organisationUrl | release | The issuer, and the wire's page for it where the listing links one |
wire | release | GlobeNewswire, PR Newswire, or your feed's title |
publishedAt, publishedDate | release | UTC instant; UTC date |
url | release | The release itself |
language | release | Two-letter code, where stated |
tickers, isins, subjects | release | {exchange, symbol} list; ISIN list; subject tags |
dateline | release | {city, region} from the dateline |
imageUrl | release | The release image or logo |
matchedKeywords | release | Which of your keywords it matched |
feedTitle | release | The feed's <title>, on feed rows |
rank | release | 1-based position in its walk, in the wire's own order |
foundBy | release | search, feed or list |
error, errorType | diagnostic | What went wrong, and a type to branch on |
scrapedAt | all | When the row was written |
errorType is one of no-results, not-a-feed, blocked, rate-limited, http, timeout, deadline, budget, pagination, upstream-format, invalid-input.
The dataset has three views: Releases, By company and Diagnostics.
What each wire gives you
| Search pages | Latest feeds | Notes | |
|---|---|---|---|
| GlobeNewswire | Headline, teaser, issuer ("Source:") with its link, time | Issuer, tickers (Amsterdam:BNJ), ISINs, subject tags, language, image on some | Ten hits a page. English and French versions of one release share an id |
| PR Newswire | Headline, snippet, issuer ("More news about") with its page, language, image | Issuer, dateline, subject tags, language, image | Search pages are requested 100 at a time. The latest list (behind the feed) has no issuer line — see the FAQ |
| Your feeds | — | Headline, excerpt, author as issuer, categories, language, image | RSS 2.0 and Atom. A wire's own RSS address is read with that wire's fields |
Tickers are also read from the headline and summary wherever a listing names them — (NYSE: CTVA), NASDAQ: INV, Nasdaq “MSFT”, $KOD.
How it works
- Search. GlobeNewswire's
/search/keyword/<kw>and PR Newswire's/search/news/?keyword=…are ordinary server-rendered pages, read with targeted patterns rather than a browser. Each (keyword × wire) is one walk, page by page, untilmaxResultsrows are kept or the wire runs out of pages. - Feeds. Each wire feed and each of your feeds is one request. The wires' feeds hold the latest twenty releases; PR Newswire's latest list continues behind its feed when you have no keywords.
- Filters and dedupe run before anything is written. A release found by a search and again by a feed is one row and one charge, matched on its address and then on headline plus issuer.
- Blocks. A 403, a 429, a timeout, an empty body or a challenge page earns exactly one more attempt from a fresh proxy session. A second refusal ends that walk with one free diagnostic row; the rows it already returned are kept.
What you are never charged for
- Every diagnostic row — a search with no hits, a feed that is not a feed, a block, a timeout, the time or charge budget running out, a pagination dead end, an unreadable address.
- Releases your filters excluded, and duplicates of a release the run already delivered.
- A run that returns nothing. A run whose input was usable but produced no release — no matches, filters that excluded everything, a wire that refused us — finishes SUCCEEDED with zero results, a status message that says so, and free diagnostic rows saying why; nothing is charged, start fee included. A run finishes FAILED only when there was nothing to read at all, or the Actor itself hit an error.
Pricing
| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
| Run started | $0.001 | $0.001 | $0.001 | $0.001 |
| Press release | $0.0005 | $0.0005 | $0.0004 | $0.0003 |
Worked example. A daily company watch that returns 200 releases: 200 × $0.0005 + $0.001 = $0.101.
The start fee is billed only once a release has been delivered. Set ACTOR_MAX_TOTAL_CHARGE_USD and the run stops fetching when the ceiling is in sight, leaves a free budget row, keeps everything already delivered and finishes SUCCEEDED.
Use it from an AI agent, or from code
One JSON object in, one flat array out. The Actor runs with limited permissions, uses pay-per-event pricing and never enters Standby, so it works over the Apify MCP server (mcp.apify.com) and with x402 agentic payments.
curl -X POST "https://api.apify.com/v2/acts/insight.solutions~press-releases-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords":["artificial intelligence"],"useFeeds":false,"maxResults":20}'
# pip install apify-clientfrom apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("insight.solutions/press-releases-api").call(run_input={"companies": ["Corteva"],"sinceHours": 24,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row["rowType"] == "release":print(row["publishedAt"], row["organisation"], row["title"], row["url"])
FAQ
Why is there no release body, and no media contact?
By design. This Actor reads listings — search pages and feeds — not release bodies. The headline, teaser, issuer, tickers, subjects, date and URL are what a listing carries; the body, with its "Media contact" block of names, e-mail addresses and phone numbers, is never fetched. As a second guard, every text column is scrubbed of e-mail addresses, @handles and phone numbers before it is written. url is the address to hand to whatever does fetch the body.
Why do some PR Newswire rows have no organisation?
PR Newswire's search results ("More news about") and its RSS feeds (dc:contributor) both name the issuer. Its latest list, which this Actor reads behind the feed when you have no keywords, does not; there the issuer is taken only when the teaser opens with Name (EXCHANGE: SYMBOL), and is otherwise left null rather than guessed. A newsroom feed that credits a person as author also gets a null organisation — a person's name is never emitted as the issuer.
What time zone are the times in? UTC, always. Both wires print US Eastern time ("12:45 ET"); it is converted with EDT (UTC−4) or EST (UTC−5) depending on the date. PR Newswire's latest list prints today's releases as a time with no date; those are dated today in US Eastern.
Why does the same releaseId appear twice?
GlobeNewswire gives the English and French versions of one release the same id. They are two rows, with different url and language.
Does the company filter need the exact name?
No — any case-insensitive part of it. Corteva matches "Corteva Agriscience" and "Corteva, Inc.". When a listing names no issuer, the headline and summary are matched instead.
Can I watch a newswire this Actor does not search?
If it publishes an RSS or Atom feed, paste the address into feedUrls. The two wires above are the ones searched.
What happens if one search fails? The other walks keep going, the failed one leaves a free diagnostic row, and the run finishes SUCCEEDED. If every walk fails the run still finishes SUCCEEDED, with zero results and a status message pointing at the diagnostics.
Limitations
- Two wires plus the feeds you supply. GlobeNewswire and PR Newswire are searched; anything else is read only through its own feed.
- Listings, not releases. A search snippet is cut from wherever the keyword falls in the release, so it can start mid-sentence; feed teasers are truncated by the wire.
- The listing markup may change. Search and list pages are read with targeted patterns. When a page stops matching, the run files a free
upstream-formatrow naming the pattern that failed, rather than returning wrong data. - GlobeNewswire's page 2 onwards is read at the
load/moreaddress its page 1 links to, with a?page=Nfallback; if neither answers with hits the walk ends with a freepaginationrow — which is also what a short result list looks like. - Subject tags come from feeds. Search-page and list rows have none, so a
subjectsfilter keeps feed rows only. - No historical archive beyond what the wires' own search pages reach.
Sources, terms and attribution
- Everything is read from the wires' public feeds and search pages, as published — the same pages any visitor sees. No login, no cookie, no API key belonging to anyone.
- Press releases are published to be distributed; headlines and teasers belong to their issuers. Indexing, monitoring, analysis and linking are what this is built for; republishing is your call and your responsibility.
- Not affiliated with GlobeNewswire, PR Newswire or any issuer. Names are used only to describe which public pages this Actor reads.
Our other Actors
Every Insight Solutions Actor is pay-per-result with no browser, no login and no API key, and every one of them returns free diagnostic rows instead of billing for failures. Prices are per 1,000 results.
Video, audio & social
- YouTube Transcript API — captions as timed segments, text, SRT or VTT, with language fallback and translation.
- YouTube Comments API — comments and replies with likes, pinned and hearted flags, newest or top sort.
- YouTube Channel API — a channel's videos, Shorts and live streams, plus YouTube search.
- Podcast Search, Episodes & Charts API — Apple Podcasts search, charts and full episode feeds.
- Bluesky Scraper — profiles, posts, followers and follows from the public AT Protocol API.
- Telegram Channel Scraper — posts, views and channel stats from public Telegram channels.
- Substack Scraper — posts with full free text, comments and publication profiles.
- Hacker News API — stories, comments, users, front page and a structured "Who is hiring?" parser from the official HN APIs.
- Discourse Forum API — topics, posts and categories from any Discourse community via its own JSON endpoints, usernames only.
News, documents & the web
- Google News Search, Topics & Real Article URLs — news search and topic feeds with the publisher's real URL decoded.
- Website to Markdown — Content Extractor for LLMs & RAG — any site as clean Markdown, text and heading-aware chunks.
- Internet Archive API — archive.org search, item metadata, files and reviews.
- Wayback Machine Toolkit — archived URL inventories, snapshots and text diffs between dates.
- Website Technology Detector — the tech stack behind any site, with the evidence for each detection.
- Domain Intelligence API — DNS, RDAP registration, TLS certificate and HTTP facts in one row per domain.
- SEO Page Audit — sitemap crawl with on-page checks, structured data and broken-link reports.
- Keyword Suggestions API — Google, YouTube, Bing, Amazon and eBay autocomplete with alphabet and question expansions.
- Website Contact Extractor — emails, phone numbers and social profiles from any list of websites.
- Web Search Results API — Bing and DuckDuckGo organic results with snippets, no key, no browser.
- Company Enrichment API — a domain in, a company profile out: firmographics, contacts, tech stack, DNS and hiring signal.
- Company Dossier API — one company in, twelve sections out: profile, tech, contacts, DNS, open roles, news, SEC filings, federal awards, recalls, YC batch and apps.
- Federal Register API — rules, proposed rules, notices and the Public Inspection desk with dockets, comment deadlines and CFR references.
- Academic Papers Search API — OpenAlex, Crossref, arXiv and PubMed in one row per paper: abstract, citations, open-access PDF, authors and venue.
- RSS & Atom Feed Monitor — any RSS, Atom or JSON feed (or an OPML file) in, only the new items out, with keyword filters and a webhook.
- Website Change Monitor — watch any pages, diff the text between runs, get change rows with added/removed lines, keyword alerts and a webhook.
- Wikipedia & Wikidata API — article text, search, daily pageviews and Wikidata entity facts, any language edition.
Business, finance & jobs
- Congress & Insider Trades API — STOCK Act periodic transaction reports and SEC Form 4 insider trades in one schema.
- Federal Contracts, Grants & Lobbying API — SAM.gov opportunities, USAspending awards, Grants.gov notices and Senate lobbying filings in one schema.
- SEC EDGAR API — filings, XBRL financials and full-text search by ticker or CIK.
- Clinical Trials & FDA API — ClinicalTrials.gov studies plus openFDA recalls, labels, approvals, 510(k)s and adverse-event reports.
- Product & Vehicle Recalls API — CPSC, NHTSA, FDA and USDA recalls, vehicle complaints and ratings, plus a VIN decoder.
- Y Combinator Companies, Batches & Founders — the YC directory with founders and social links, filterable by batch, industry and hiring status.
- Career Site Jobs API — jobs straight from Greenhouse, Lever, Ashby, Workable and 10+ other ATS career sites.
- New Job Postings Monitor — new, closed and changed postings on the career sites you watch.
- Hiring Signals API — Open Roles & Hiring Surge by Company — one row per company per run: open roles, what opened and closed, department and seniority breakdowns, and a hiring-surge flag.
- Remote Jobs API — RemoteOK, Remotive, We Work Remotely, Himalayas, Jobicy and more in one schema, deduplicated.
- Shopify Products API — any Shopify store's catalogue, variants, prices and stock signals.
- Shopify Store Monitor — price drops, sales, restocks, sell-outs and new products on any Shopify store, one row per change.
- Public Tenders API — EU TED, UK Find a Tender and Contracts Finder notices by keyword, CPV code, country, stage and deadline.
- Nonprofit & IRS 990 Lookup API — search US nonprofits and get EIN, NTEE code and multi-year Form 990 financials.
- OpenStreetMap Places API — businesses and points of interest by category and area from OpenStreetMap: name, address, coordinates, website, phone, opening hours.
Apps & games
- App Store & Google Play Reviews API — reviews from both stores with ratings, versions and developer replies.
- App Store Top Charts & App Search API — Apple top charts by country and genre, plus app search and details.
- App Store Keyword Rank Tracker — where any app ranks for any keyword on the App Store and Google Play, with rank changes and ASO suggestions.
- Steam Reviews API — Steam reviews with playtime, helpfulness and game details.
- Steam Game Data API — prices, tags, review scores, live player counts and top charts.