Company News API: Why One Vendor Cannot Cover It
Company news comes in two shapes no single company news API does both of well. Here is how to combine entity-resolved and keyword sources on one Monid wallet.

Stop hunting for the one perfect company news API. There isn't one, and the reason is structural: company news arrives in two shapes, and no single vendor does both of them well. One shape is entity-resolved news, where you pass a known company and get articles already classified, sentiment-scored, and tagged with resolved mentions. The other is open-web keyword news, where you pass any phrase and catch anything named anywhere, raw. The winning move is to run both and merge them, which is exactly what one key and one wallet on Monid lets you do.
TL;DR
- No single company news API covers both entity-resolved coverage and open-web keyword coverage well. They miss different things, so combine them.
- Entity-resolved news (Akta
/v1/news) is clean and classified but blind to companies and themes it cannot resolve. - Open-web keyword news (Apify Google News actor) catches everything named but hands you noise, name collisions, and no sentiment.
- Apollo
/news_articles/searchis a third entity-keyed option when you already carry an Apollo organization id. - All three sit on one Monid wallet. Discovering and inspecting are free, and you pay only when a run succeeds, at a fraction of a cent per article. Live rates at monid.ai/tools.
Why can't one company news API cover everything?
The gap is not a quality problem you can shop your way out of. It is a design fork.
An entity-resolved provider starts from a graph of known companies. You hand it a company (a website like https://canva.com or a resolved id), and because it already knows that entity, it can return an AI summary, an event classification, publisher metadata, sentiment, resolved company mentions, geography, industry taxonomies, and a named-entity object. That richness is only possible because the provider constrained the input to things it can resolve. The cost of that constraint is the long tail: a pre-seed startup with no record, a product codename, or a pure theme like a regulatory shift will not resolve, so it will not show up.
A keyword scraper starts from the opposite end. It runs your phrase against the open web and returns whatever matches, which means it misses nothing that got named. The cost there is the inverse: you get a headline, a source, and a date, with no sentiment, no event type, and no entity resolution. You also get collisions, because a company name that doubles as a common word ("Apple", "Square", "Ramp") pulls in articles that have nothing to do with the company.
Neither side is wrong. They are answering different questions. Entity APIs answer "what is happening to the accounts I track," keyword scrapers answer "what got said about this phrase anywhere." A serious company news feed needs both answers.
The two shapes, side by side
| Axis | Akta entity news | Apify Google News | Apollo news |
|---|---|---|---|
| Input | Company (website or resolved uuid), a theme query, or an industry code | Keywords array (supports quotes, -exclude, site:, OR) or a topic | An Apollo organization id |
| Returns | Classified article: AI summary, event type, sentiment, resolved mentions, entities, industry tags | Raw article: headline, source, date, image, optional description | Entity-keyed article list for a known org |
| Best at | Clean monitoring of companies you can resolve, plus theme and industry sweeps | Catching anything named anywhere, including the long tail | News scoped to companies already in your Apollo graph |
| Blind spot | Companies and themes it cannot resolve; non-enterprise lookback is 6 months | No sentiment, no classification, name collisions to dedupe | Only orgs Apollo knows, keyed by its id |
| On Monid | -p akta -e /v1/news | -p apify -e /data_xplorer/google-news-scraper-fast | third provider on the same wallet |
The table makes the thesis concrete: the "blind spot" row never overlaps. Whatever one source drops, another catches.
Set up Monid once
Monid is a pay-per-call data API marketplace that lets you reach hundreds of external data endpoints from one key and one wallet, paying only when a run succeeds. That is why combining three news sources does not mean three signups, three invoices, and three sets of credentials. It means three provider flags on one balance.
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 details in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>
More details in the CLI quickstart.
How do you combine both sources on one wallet?
Reach for the entity API when you have a known account and want it clean. Note the input rule: /v1/news takes a website or a resolved uuid, not a bare name. Resolve a name through Akta /v1/company/search first (that lookup is free), then pass the website or uuid.
# entity-resolved: a tracked company (resolve the bare name to a website or uuid first)
monid run -p akta -e /v1/news \
--query '{"company":"https://canva.com","start_date":"2026-07-01","limit":25}' -w
The same endpoint pivots to a theme. Drop company and pass an open-ended query, which is how you cover a regulatory or market topic that does not map to a single company.
# entity-resolved: an open-ended theme instead of a company
monid run -p akta -e /v1/news --query '{"query":"FDA drug approval","limit":25}' -w
Then reach for the keyword sweep to catch the long tail the entity graph cannot resolve. The Apify Google News actor takes a body via -i, and it honors Google News search operators, so an exact phrase in quotes cuts most of the collision noise before it reaches you.
# open-web keyword sweep, exact phrase, last 7 days
monid run -p apify -e /data_xplorer/google-news-scraper-fast \
-i '{"keywords":["\"Acme Robotics\""],"timeframe":"7d","maxArticles":50,"region_language":"US:en"}' -w
Only monid run bills. monid discover and monid inspect are free, so you can read either endpoint's exact fields and per-result price before spending anything. The -w flag waits inline and prints the result.

The merge logic is the interesting part. Entity results arrive pre-classified, so they drop straight into your feed with sentiment and event type attached. Keyword results arrive raw, so they pass through a dedupe (against the entity set and against themselves) and a lightweight classify step downstream. What you end up with is one feed where your tracked accounts are richly tagged and the long tail is present but marked as unverified.
The honest caveat
This is not a claim that one source is better and you should tolerate the other. They are genuinely different tools with different failure modes, and pretending otherwise leads to a worse feed.
Entity APIs are clean, but they are blind to anything outside what they resolve, which means a company too new or too obscure to have a record simply will not appear no matter how much news exists about it. Keyword scrapers catch everything named, but "everything" includes collisions where a brand name is also an ordinary word, plus reprints and aggregator echoes, and none of it carries sentiment. So the keyword side always needs a dedupe and a classify pass you own. One more limit worth stating plainly: Akta's non-enterprise lookback reaches back 6 months, so if you need older history, that is an enterprise question, not a filter you can flip.
How much does monitoring company news cost?
Both providers bill per result at a fraction of a cent per article (Akta adds a small flat fee per call), and nothing bills until a run succeeds. A daily sweep across a watchlist plus a few keyword phrases lands in single-digit dollars for thousands of articles over a month, driven mostly by how wide you set your keyword nets. Because inspect prints the price before you run and everything draws from one balance, adding the keyword source next to the entity source does not change your billing surface, only your coverage. Live per-endpoint pricing is at monid.ai/tools.
FAQ
Which company news API should I pick, entity or keyword?
Both, for different jobs. Use the entity source (Akta /v1/news) for clean, classified monitoring of accounts you can resolve and for theme sweeps. Use the keyword source (the Apify Google News actor) to catch the long tail and pure phrases the entity graph cannot resolve. On Monid they share one key, so "both" costs you a provider flag, not a second contract.
Why won't the entity endpoint take a plain company name?/v1/news resolves against known entities, so it expects a website or a uuid, not a bare name. Run the free /v1/company/search first to turn a name into a website and uuid, then pass either into the news call. This keeps the resolution unambiguous when two companies share a name.
How do I stop keyword results from returning the wrong company?
Wrap the name in quotes for an exact-phrase match, add -exclude terms for known collisions, and scope with site: or a topic where it helps. Then dedupe and classify the raw results downstream, since the keyword source ships headlines without sentiment or event type by design.
What does a company news pull cost on Monid?
Pay-as-you-go, a fraction of a cent per returned article, with a small flat fee per call on the entity source and nothing billed until a run succeeds. inspect shows the number before you spend, and live rates for every endpoint are at monid.ai/tools.


