Bing News Monitor — Articles by Keyword, New Since Last Run
Pricing
from $0.80 / 1,000 articles
Bing News Monitor — Articles by Keyword, New Since Last Run
News monitor for any keyword from Bing News: title, publisher, publish time, snippet, image and the publisher link, newest first, in 43 country editions. Run it on a schedule and every article is marked new or already seen since the last run, with the rank change. No login, no API key.
Give it a list of keywords — a company, a product, a person, a topic — and get a clean news list back: title, publisher, publish time, snippet, image and the publisher's own link for each article, newest first, from the public Bing News search page in 43 country editions. A simple news monitor, news scraper and news API in one: $1 per 1,000 articles, no login, no API key.
Run it again — or put it on a schedule — and every article is also marked new or already seen since the last run, with the rank it had last time. Turn on Only articles that are new and you get just what appeared since your last run, and pay only for that.
What you get
One row per article (type: "article"):
| Field | What it is |
|---|---|
keyword, market | the search that found it, and the Bing News edition (for example en-US, ja-JP) |
title, titleTruncated | the headline; titleTruncated is true when Bing itself cut it short ("…" or " ...") |
url, domain | the publisher's page (Bing's tracking marks and utm_ marks removed) and its domain |
publisher | the outlet name as Bing shows it (" on MSN" / " via MSN" labels removed) |
publishedAt, publishedAtPrecision | publish time, ISO 8601 UTC, and how exact it is: minute, hour, day, week, month or year (see Notes: Bing shows "5 hours ago", not a clock time). null when the label cannot be read |
publishedText | the time label exactly as Bing writes it in that edition's language, for example 5 hours ago, Vor 15 Stunden, 1 時間前 or an exact date such as 8/26/2026 |
description | Bing's text excerpt of the article (about 200 characters), plain text, with email addresses and phone numbers removed; a wire-service byline ("By Jane Roe … (Reuters) -") is moved to authors |
authors | the author names from a wire-service byline at the start of the excerpt (empty when there is none) |
imageUrl | Bing's thumbnail of the article image, when the article has one |
rank | position in this run's list, 1 = newest |
isNewSinceLastRun | true if this keyword and market never returned this article before, false if it did, null on the first run |
firstSeenAt | when this Actor first saw the article — compare with publishedAt to see how late Bing listed it |
previousRank, rankChange | the rank in your previous run and how far the article moved (positive = moved up); null when it was not in the previous list |
One free summary row per keyword (type: "summary"): articlesRead, articlesReturned, newSinceLastRun, firstRun, publishersTop (the 10 publishers with the most articles, with counts), newestPublishedAt, oldestPublishedAt, queryUsed, complete, and servedRegion, servedLanguage, marketHonored (which edition Bing really served, and whether it is the one you asked for). Keywords that could not be read give a free type: "error" row with a message.
Use it for
- Brand, competitor and PR monitoring — schedule it every few hours, send the new articles to Slack, Sheets or your CRM
- Content and SEO research — see who covers a topic, which publishers write about it most (
publishersTop) and how fresh the coverage is - News data for dashboards, newsletters and AI agents — a news API with stable fields in 43 languages and countries, no key to manage
- Market and investor watchlists — one keyword per company or ticker,
onlyNewto get only what you have not seen
Input
{ "keywords": ["openai", "\"electric vehicles\"", "site:reuters.com tesla"], "market": "en-US", "freshness": "day", "maxArticlesPerKeyword": 50, "onlyNew": false }
- keywords — one search per line. Put a phrase in "double quotes" to match it exactly, or limit a search to one publisher with
site:reuters.com. - market — the Bing News edition: language and country of the results (
en-US,en-GB,de-DE,ja-JP,pt-BR…). - freshness — any time, past hour, past 24 hours (default), past week or past month. Results are always newest first. For every window longer than an hour the Actor also reads Bing's "past hour" list and adds it (see Notes), so the newest articles are not missing.
- maxArticlesPerKeyword — 1 to 200 (default 50). Bing lists about 190 articles per search at most.
- onlyNew — return only articles not seen before for that keyword and market.
What was seen is remembered per keyword and market in a named key-value store in your Apify account, so the second run of the same Actor already shows what is new. Schedule it (Apify → Schedules), for example every 6 hours with Past 24 hours.
Pricing
$1.00 per 1,000 articles, plus $0.01 per run. Summary rows and error rows are free, and with Only articles that are new you pay only for the new ones. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing.
Notes
- Public data only: what anyone sees on the Bing News search page without signing in. Article text is not downloaded — you get the headline, Bing's excerpt and the link.
- The time is computed, not copied. The page shows how long ago an article came out ("16 minutes ago", "5 hours ago", "3 days ago"), and an exact date only for older ones.
publishedAtis the moment of the read minus that age, so it is as exact as the unit shown: "5 hours ago" means between 5 and 6 hours, andpublishedAtis the newest it can be.publishedAtPrecisiontells you the unit (minutefor seconds and minutes). For an exact date (8/26/2026)publishedAtis that day at 00:00 UTC and the precision isday. The label is read in 20 languages; if it cannot be understood,publishedAtisnullandpublishedTextstill has the label. The same article can show apublishedAtan hour apart in two runs, so identify articles byurl. - The first run for a keyword (and market) has nothing to compare with, so
isNewSinceLastRun,previousRankandrankChangearenulland Only articles that are new returns everything. Changing the market starts a new history. Changing How recent keeps what was already seen, but the first run after the change has nopreviousRank(two different lists are not compared). - The newest articles come from a second list. Bing's "past 24 hours", "past week" and "any time" lists are a selection of about 100 articles that Bing picks by relevance and then sorts by time, and that selection leaves out most of the very newest articles. In my test of 12 keywords, 44 of the 51 articles in Bing's own "past hour" list were missing from its "past 24 hours" list. So for every window except "past hour" the Actor also reads the past-hour list (a few extra requests per keyword), merges it in, and sorts everything by time; if the past-hour list cannot be read you get the main list plus a free
errorrow andcomplete: false. Bing still shows only part of a busy day: the list holds at most about 95 articles for 24 hours or 7 days, so run it every few hours with Only articles that are new instead of asking for a whole day at once. - Bing's list shifts a little from one call to the next, so now and then an article that was published earlier shows up as new.
firstSeenAt(the moment the keyword was read) againstpublishedAttells you which case it is. - Because the list is sorted by time,
rankChangeis mostly zero or negative (older articles slide down as newer ones arrive). It is most useful with Any time. - Bing lists up to about 190 articles for a search with Any time, about 135 for the past 30 days and about 95 for the past 24 hours or 7 days (fewer when a keyword has little news). Asking for more than exists returns what exists;
articlesReadin the summary row says how many that was. - A keyword that is an outlet's own name can return only that outlet. For "Premier League" in
en-GBand "Bundesliga" inde-DE, Bing returned only the official site's own articles (6 and 12 in a week). Add a second word ("Premier League Arsenal" returned a wide mix of publishers) to get the general coverage. imageUrlis empty for about a quarter to a third of the articles — the card has no picture (86 of 307 in my count). It is Bing's small thumbnail, not the original image.- Bing cuts excerpts at about 200 characters, so most
descriptionvalues end in "...". Long headlines are cut in some editions: none of 187 English headlines in my test, but 29 of 40 in the Japanese edition;titleTruncatedtells you when. Syndicated articles on MSN havedomainmsn.comand the original outlet inpublisher. - If more new articles appear between two runs than Max articles per keyword, the oldest of them are not read: run more often, shorten How recent, or raise the limit.
- Search words: quotes make an exact phrase and
site:reuters.comrestricts the publisher (both worked in my tests);ORbetween two terms returned articles for both sides;-wordonly reduces the matches (in my test,tesla -muskstill returned 4 of 30 articles with "musk" in the headline or excerpt, down from 6). A keyword that Bing treats as a topic instead of a search — a category word such as "technology" or "sports", or a place name such as "Malaysia" in theen-MYedition — is read as an exact phrase automatically;queryUsedshows it. - The market is a setting, not a guarantee. Apify runs in the US, and I could only test from a connection in Japan, where the setting won over my own location for all 43 editions: for
teslain the past week,en-GBshared 18 of 25 articles withen-US,en-AU17, whilede-DEandja-JPshared none (13 of the 25de-DEarticles came from.desites; the Japanese edition answered in Japanese). Small editions mix in articles from other languages once the local ones run out, and a general keyword such as "openai" sorted newest-first returns many English or Chinese articles in any edition — use a local keyword for local news. I could not test from Apify's own servers, so every keyword summary row reportsservedRegion,servedLanguageandmarketHonored(falsewhen Bing served another edition than the one you chose, and the run log warns).zh-CNhas no Bing News edition.
To see how search interest in a keyword moves over time next to the news, see Google Trends Scraper.
For AI agents
{"keywords": ["openai"], "freshness": "day", "maxArticlesPerKeyword": 20} returns up to 20 article rows plus one summary row. Rows have type: article, summary or error. To poll for news, call it on a schedule with "onlyNew": true and read only the article rows; isNewSinceLastRun is true for what has not been returned before. Identify an article by url, not by publishedAt, which is computed from an age such as "5 hours ago".