Press Release API: Read a Company's Releases and News
Get the press releases and news about any company through an API: resolve the name, pull articles with summaries, sentiment and a press-release flag.

Pull the press releases and news about a company, with the publisher, date and a press-release flag, in one prompt. Paste this into your agent:
Set up https://monid.ai/SKILL.md, and then use Monid to find the latest news and press releases about canva.com, and give me a table with the title, publisher, date, sentiment and whether it is a press release.
One prompt reads a company's coverage. 1 min setup · 8-20 hrs saved.
You want to read what has been published about a company: its own press releases, the coverage they got, the mentions in other people's articles. Searching "press release api" mostly turns up newswires, which are built for sending releases out, not for reading them back. This guide covers the reading side: how to resolve a company, pull its articles, and what the record contains, from runs we made on 2026-10-16. It runs through Monid, the OpenRouter for agent tools: one key, one balance, every tool priced per call.
What is the easiest way to get company press releases through an API?
Monid. Install it once, add a key, and your agent calls a company news endpoint with a website and gets articles back as typed JSON, each one carrying a summary, a sentiment score and a flag that says whether it is a press release.
- Pay per result. The news endpoint bills $0.0005 per article plus a flat fee per run (Verified 2026-10-16 on the company news tools page). Buy calls as you need them: no monthly plan and no minimum top-up. Discovery and inspection are free, and so is the company lookup that comes first.
- One install, every API. The same key and balance call the news endpoint and every other tool on Monid, so the firmographics for the same account are another call, not another vendor.
- Lives inside your agent. Install the CLI, add your key, run the prompt above, and the tool is there whenever your agent needs it, with nothing to keep running. Your agent reads
SKILL.mdand learns the rest, so setup is about a minute.
Our five-article run billed $0.0075 (Verified 2026-10-16).
How do you get press releases and news for a list of companies?
Resolve each name to a website, then call the news endpoint once per company. The endpoint is /v1/news from the provider akta, and one thing about the input matters before you build: a bare company name is not accepted. It takes a website or a company uuid.
| Route | What you get | Cost shape | Fits |
|---|---|---|---|
| Buy a media-monitoring platform seat | Dashboards, alert routing, a UI for a comms team | Subscription | A communications department |
| Build your own from feeds and scraping | Whatever sources you wire up | Your hours | A fixed set of publications |
| Pull a ready-made dataset | A static file of past articles | Purchase | One-off research |
| Monid news endpoint | Articles for a company, a theme or an industry, typed JSON | Pay per result, buy flexibly | Lists of accounts, scheduled pulls, agents |
Monid fits a list because the work is the same call repeated, and you pay for the articles you fetch and nothing between runs.
For agents
Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add -k <your-key> -l main
Inspect, then run one
monid inspect -p akta -e /v1/news
monid run -p akta -e /v1/news --query '{"company":"https://canva.com"}'
Resolve the name first
The lookup that turns a name into a website is free. We ran it on canva and got 25 candidates back, ranked with the right one first: Canva, website http://www.canva.com, category "Graphic Design Software", uuid 00000l1. Further down came Canvas Prime, GoCanvas, Canvas LMS and BELLA+CANVAS, so the name alone would have merged half a dozen unrelated companies.
monid run -p akta -e /v1/company/search --query '{"query":"canva"}'
Take the website of the candidate whose product category matches the company you mean, and pass it as company. The website-from-name guide covers the resolution step on its own, for names that are harder than this one.
Loop it over your list
Put one website per line in websites.txt, and write one file per company:
mkdir -p out
while read -r d; do
monid run -p akta -e /v1/news --query "{\"company\":\"$d\",\"limit\":10,\"full_text\":false}" -w > "out/${d#https://}.json"
done < websites.txt
Setting full_text to false drops the article body from each record, which keeps the response small when you only need the metadata.
Or hand the whole job to an agent
Give this to your agent![]()
Set up https://monid.ai/SKILL.md, and then use Monid to for every company on this list, resolve its website, pull its ten latest articles, drop the ones that are not press releases, and give me one table with company, title, publisher, date and sentiment.Can you scrape press releases yourself with Python?
Yes, and for one publication it is an afternoon. You fetch the page with requests, parse the headline, date and body out of the HTML, and store them. The newsroom pages of most companies are simple enough that a handful of selectors does it.
The cost arrives when the list grows. Every site has its own markup, so each source is its own parser. Pages that render in the browser reveal little in the first response, and any redesign breaks a selector without telling you. Then you have what scraping alone does not give you: matching an article to the right company, telling a company's own announcement from coverage of it, and removing the same story when five outlets run it. The scraping news articles guide walks through the build and where it stops being worth it.
The Monid route is the choice for anything you will run more than once. The sourcing and tagging are maintained for you, the output is typed JSON instead of HTML you parse, and an article costs $0.0005 plus the run's flat fee (Verified 2026-10-16). When you do need the text of one specific page, a scrape endpoint such as context.dev /web/scrape/markdown turns a URL into Markdown for $0.002533 a page (Verified 2026-10-16) on the same key.
What does a press release record look like, and what can you build with it?
A news record is one article with the analysis already attached. We ran company=https://canva.com with a limit of 5 on 2026-10-16: the company had 522 matching articles in total, and each of the five came back with 27 fields.
The record
The basics are id, title, url, publisher, published_date, author, word_count, original_language and full_text. On top of those:
ai_summaryis a written summary of the article. If your pipeline was going to send every article to a model for summarising, that step is already in the record.sentimentandsentiment_scorearrive as a label and a number, for exampleNeutralwith0.6184on a review of seven ad generators.is_press_release,is_opinionandis_breakingare three booleans that sort an article into kinds, next to anarticle_typeobject with a code and a label such asreview,explaineroracademic.company_mentionslists every company the article names, each with a uuid, a website and anis_primaryflag.industries,tags,iptc_codes,iab_categories,naics_codes,sic_codesput the article into several taxonomies at once.entitieslists people, locations, products and events named in the text.newsworthiness_scoreandgroup_idrank the article's weight and tie it to an event group.
Not every field is filled. naics_codes was empty on three of the five records, industries was empty on the Korean-language Naver article, and some authors came back as an empty string. Treat every list as possibly empty.
What you can build
A launch and announcement log. Filter a company's articles to is_press_release true and sort by published_date. That is the company's own announcements as a timeline, the thing most people mean by "press release API". The scheduled version is the company news watcher.
A coverage report. Keep the articles where the company is the primary subject, group them by publisher, and count by week. The call for that is the primary_company parameter, covered below.
A trigger feed for sales. The query parameter takes a theme instead of a company, so "FDA drug approval" or a commodity move is a valid input. The multi-source argument for company news explains why a theme feed and a company feed together beat either alone.
What goes wrong when you pull company news at scale?
Four things, all visible in our four runs, and each has a rule and a line of code.
A mention is not the subject
company= matches any mention, and the count shows how much that widens the result. For canva.com it returned 522 articles; primary_company= returned 255. Of the five articles in the company= run, the Recraft listicle and the Solutions Review commentary both named Canva with is_primary false, and the commentary was about assessment in the age of AI.
Use primary_company when you want coverage of the company, and company when you want every place it surfaces:
monid run -p akta -e /v1/news --query '{"primary_company":"https://canva.com","limit":10,"full_text":false}'
The two parameters cannot be combined in one call.
The press-release flag is a classifier, not a wire label
is_press_release was true on four of the five articles in the company= run, and the four were not alike: a Canva and Meta connector announcement, a signed commentary on assessment, an interview with a Canva community manager, and a Korean-language newspaper explainer that was also flagged is_opinion and is_breaking. A Printify guide that appeared on EIN Presswire, in a pr_news URL, was also flagged true in the primary_company run.
So the flag narrows the list, it does not finish the job. Combine it with article_type, is_opinion and the publisher before you call something a company's own announcement:
def is_own_release(a):
return a["is_press_release"] and not a["is_opinion"] and a["article_type"]["code"] == "explainer"
A record can contradict itself
The FDA drug approval query returned a MarketScreener item titled "US FDA approves Roivant-Priovant's skin disease drug". Its ai_summary read "No content on the titled drug approval is present; the body is a company profile with ratings and stock data". The same record carried sentiment Positive with a score of 1, is_breaking true and a newsworthiness_score of 0.8471.
The sentiment and significance fields are computed per article, and a scraped page that lost its text still gets numbers. Check word_count and read the ai_summary before you let a score reach a report. A rule that drops records whose summary starts with "No content" costs one line.
Theme queries do not come back newest first
The company= runs came back in descending order of published_date. The query run did not: its three articles were dated 2026-08-10, 2026-08-27 and 2026-09-01. Sort on published_date yourself, and use start_date and end_date to bound the window; the input schema notes that non-enterprise plans are limited to a 6-month lookback. For paging, limit goes to 100 and offset moves through the rest.
Which endpoint should I use for which job?
| Job | Endpoint | Takes | Billing shape |
|---|---|---|---|
| News about a known company | akta /v1/news | Website or company uuid | Per result plus flat fee |
| Coverage where the company is the subject | akta /v1/news | primary_company | Per result plus flat fee |
| News on a theme or commodity | akta /v1/news | Open-ended query | Per result plus flat fee |
| Resolve a name first, free | akta /v1/company/search | Name or website | Free |
| News about companies in Apollo | apollo /news_articles/search | Organization ids | Per call |
| Read one article's page yourself | context.dev /web/scrape/markdown | URL | Per call |
Prices from monid inspect, Verified 2026-10-16: $0.0005 per result plus a flat fee for akta /v1/news, $0.026 per call for apollo /news_articles/search, and $0.002533 per call for context.dev /web/scrape/markdown.
The shape to plan around: the news endpoint bills per result plus a flat fee per run, so a daily watch across many companies is many small runs, each paying the fee. Fewer, larger runs per company cost less than many tiny ones. Which route fits a company list best, a dataset or a call per account, is the fork in dataset versus API for B2B data.
When is another route a better fit?
You want to publish a release. This reads articles; it does not place them. If the job is getting your announcement out, a newswire such as PR Newswire or Business Wire is the product, and reading it back afterwards is what this guide is for.
You need a stream. The news endpoint is a request and response search. A trading desk that wants a push feed of releases the moment they land needs a real-time feed, not a search you poll.
The consumer is a communications team. A media-monitoring platform ships dashboards, share-of-voice reports and alert routing for people who will never write a query. We ship an endpoint, so if the reader is a department and not a pipeline, buy the platform.
You need a complete archive of one publication. A feed covers what it covers, and a single trade title that matters to your industry is worth checking for by running a query on its name before you build on it.
And the disclosure: we resell this endpoint. The most useful thing in this post is the habit of reading the flags and the summary together before you trust a score, and that costs nothing whoever you buy the data from.
Conclusion
The quickest way to read the press releases and news about a company is one call per company through Monid: resolve the name for free, then pay $0.0005 per article plus a flat fee per run (Verified 2026-10-16), with one key for this and every other tool, about a minute to set up and ready inside your agent whenever you need it. Scraping newsrooms yourself works for one publication and costs hours of parsers and upkeep once the list grows.
Two things matter more than the endpoint you pick. A mention is not coverage: use primary_company for coverage and filter is_primary when you read mentions. And a flag is not a fact: is_press_release was true on an interview and a commentary, and a record with no article text still carried a sentiment score of 1.
How we estimated the time saved: resolving names to sites, building the fetch and removing duplicate stories is roughly 4 to 8 hours, and adding a summary, sentiment and tagging pass is another 4 to 12 hours. That is 8 to 20 hours. The 1 minute is the install, key and first call once you already have a Monid key.
Free next step: run monid inspect -p akta -e /v1/news, resolve one company with the free lookup, then pull five articles for about $0.0075 (Verified 2026-10-16) and read the flags against the text. Start at monid.ai.
FAQ
Is there an API to read a company's press releases?
Yes. The news endpoint on Monid takes a company website and returns its articles, each with an is_press_release flag, a summary and a sentiment score. It reads published articles; it does not publish releases.
Is there a free company news API?
The company lookup is free, and so are discovery and inspection. The news call itself bills $0.0005 per result plus a flat fee per run (Verified 2026-10-16), with no monthly plan and no minimum top-up. Five articles cost $0.0075 in our run (Verified 2026-10-16).
Why do I have to resolve the company name first?
The endpoint takes a website or a company uuid and rejects a bare name. A name is ambiguous: our lookup for canva returned 25 candidates, including Canvas LMS and BELLA+CANVAS. The lookup is free, so resolving first costs nothing.
How do I get only the company's own announcements?
Use primary_company and filter on is_press_release, then check is_opinion and article_type. The flag alone was true on a commentary and an interview in our run, so it narrows the list without finishing the job.
Can I search news by topic instead of by company?
Yes. The query parameter takes a theme such as "FDA drug approval", and our run returned 16,004 matching articles. Results are not in date order, so sort on published_date and bound the window with start_date and end_date.
Published August 2026.


