Find the article, then actually read it
The News Article API extracts a clean article from any news URL as clean JSON.
2 active endpoints, on 1 and 2 credit tiers.
- POST/news-article/v1/extract
- POST/news-article/v1/news_search
What News Articles endpoints does ReefAPI ship?
2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
News Articles API
2 of 2 endpoints, ready to run
Headlines matching a query with the source, the publication time and the link, filterable by language and country, or read from a feed you name.
{ "ok": true, "meta": { "api": "news-article", "endpoint": "news_search", "mode": "live", "latency_ms": 725.7, "record_count": 10, "cache_hit": false, "completeness_pct": 100 }, "data": { "results": [ { "title": "Amazon service Bezos once called 'artificial artificial intelligence' is shutting down - CNBC", "url": "https://news.google.com/rss/articles/CBMiqAFBVV95cUxNeTRIUDBYQWZnU3dTSGNmb012T2VvcDYxOHhleFhhZmY0NUZJaEhJMlZFRTIyZzQ2d1JrS0ZLd3F5LTkwVXQyaElOWVhxRTdPZVhsT1BlOUFWekNranBlRWRGM0t2YnFvMjI2ZnphV2pzUFNXeWFWcmZMN1hFTkJoekFqNGZiQzNmWWRtSnF4UkJ3VG1Vek05VlM2WW51OVJJeFVwZkU4VW7SAa4BQVVfeXFMTnZiS2ZVSnIxeHozVFRvb2NVVFFPSFhtWjcwczVVMWxjV1h0dktFbHZsSUZrSWlNQmRBaHFtaXNMWGFyMDZKYUhSZTdsNVBpaUdqaGxPb05TeGJSdmRmRTRFYktBRjRKVUc2dHZiZ2FqWXRfZWJlb3RibzdtaHk1SXdFLUQ5SkZlVElTbUlGZUIzNk5lUElhbDRud0RPZlBlZy13S1BHVkV5eVItWk9R?oc=5", "source": "CNBC", "published": "2026-08-26T00:34:00+00:00", "lang": "en", "date": "2026-08-26T00:34:00+00:00" }, { "title": "TIME Reveals the 2026 TIME100 AI List of the World’s Most Influential People in Artificial Intelligence - Time Magazine", "url": "https://news.google.com/rss/articles/CBMi1wFBVV95cUxOeUg5OE1hZExocUtuYVlkbmN0a2NrWmNQaW5GY0NQN0tRamFjWmx2UTBGeTRydGp5c3FHeVdRTlNaYi00clplLTZrZDlHamE3bXpBOWE4MldraHZrbVBMMjN1X1ZTLVR0YV9LVllMcldob1I5UDRzZzRPdWhpMTRGaDJrV3Z4eWFVWEJoZ3pQbTFneUFHa3ZEX1RTOUUyRG1hTHFubEVQVl85TEhRWGI2c0FFakl1VVNaV1o2c0JHaHQ1MDc4ZEZwazBMWUpqWms3MGZIdTJQZw?oc=5", "source": "Time Magazine", "published": "2026-08-27T12:30:00+00:00", "lang": "en", "date": "2026-08-27T12:30:00+00:00" }, { "title": "The Fed confronts a powerful new economic force - The Washington Post", "url": "https://news.google.com/rss/articles/CBMitwFBVV95cUxPcTd5UUJ2NXhhSmlMMXQ4c2tPdk5TNW5nTURrdWVCaDV6SlJpWWt2LUNSeDJpT1Q3OEtjdU1xV2ZOZnRRemtZRElucXNDdXQ5bVVQNFNkOUZwOTBEMC1hS1NSTFotQW9XaTFpY0k5QUtETkZndUpscDQwbm1qR2lYMFJyOU1oVzdfUFVuV05NaFBqczdIbHlWVUd6dndaeFg4OGFKampkWDBzSTJsejEzVkJYY2NzaXM?oc=5", "source": "The Washington Post", "published": "2026-08-29T13:32:50+00:00", "lang": "en", "date": "2026-08-29T13:32:50+00:00" } ], "count": 10 } }
How the News Articles API works
News Articles is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 184 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
A monitoring pipeline in two calls
Every news-monitoring product is the same two steps: find what was published, then read it. Doing the second step well is where the work is, because news sites are the most aggressively cluttered pages on the web.
{"query": "your brand", "lang": "en"}Headlines with source and publication time. Run it on a schedule and diff against what you have already seen.
{"url": "…"}Then the article body for anything new — clean text with navigation, related-article rails, newsletter prompts and consent banners stripped.
Two calls per article, and the second one produces text a model can summarise or classify without first learning to ignore a cookie banner.
curl -X POST https://api.reefapi.com/news-article/v1/news_search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"artificial intelligence","limit":10}'{
"ok": true,
"data": { … },
"meta": {
"api": "news-article",
"endpoint": "news_search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What each news_search source gives you, and what lands in the url field
news_search speaks to four different backends behind one schema, and the differences that bite live in two fields: what `url` points at, and what `source` is named after. Google News hands back its own redirect links unless you ask for them to be resolved. The rows below are from live calls made in one sitting.
| source | Requires | What `url` holds | What `source` is named after |
|---|---|---|---|
| query | A news.google.com/rss/articles/CBMi... redirect, unless resolve=true | The publisher's display name: "The New York Times", "CNBC" | |
| bing | query | The publisher URL directly | The hostname: "msn.com" |
| gdelt | query | The publisher URL directly | The hostname: "tickerreport.com", "e24.no" |
| rss | rss_url; query is ignored | The link from the feed, tracking params included | The feed's hostname: "bbc.co.uk" |
| all | query | Mixed, depending on which source contributed the row | Mixed; meta.sources reports the per-source counts |
published and date are ISO 8601 with an explicit offset ("2026-08-26T11:06:51+00:00"), while extract's article.date is a bare calendar date ("2005-09-17") with no time at all. limit is 1-100 and is clamped rather than rejected. An unknown source is rejected outright: source="yahoo" returned INVALID_PARAM with detail.allowed listing the five valid values.
What search returns and what extraction can promise
Measured on searches and article extraction.
Both fields are what a monitoring product is actually built on: deduplicating by source and ordering by publication time. Neither has to be inferred from the headline.
Headlines from a news aggregator come back as the aggregator's own long redirect link rather than the publisher's URL. That is how the aggregator publishes them. Extraction follows the redirect, so the two-step flow works — but do not expect the search row's URL to be a clean, storable publisher link.
Navigation, related-article rails, newsletter prompts and consent banners are removed, leaving the article. Markdown preserves headings and links, which matters when the destination is a retrieval index rather than a screen.
Author and publication date are read from what the publisher declares rather than guessed from the text. Where a publisher declares nothing, the field is absent rather than estimated.
Where an article's text is not served to an anonymous reader, extraction returns what was served, which may be a summary. This reads what is published, and it does not defeat a subscription.
What people build with News Articles
The jobs this data is most often used for.
endpoints
credits per call
RAG pipelines call extract to turn a news URL into clean text for an LLM.
Media-monitoring tools use news_search then extract to track coverage of a topic.
Reader apps use extract to strip a page down to its article body.
What News Articles data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 184 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/news-article/v1/news_search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"artificial intelligence","limit":10}'import requests
r = requests.post(
"https://api.reefapi.com/news-article/v1/news_search",
headers={"x-api-key": REEF_KEY},
json={
"query": "artificial intelligence",
"limit": 10
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up News Articles.
Get a free key →Does extract return the whole article body or a summary?▾
The whole body. A measured extract on the Wikipedia "Web scraping" page returned article.text at 26,559 characters with word_count 4242 and reading_time_min 19, plus a separate short `excerpt` for previews. By default you also get content_markdown, which was 43,882 characters for the same page because it preserves the inline links. Set include_markdown=false and the content_markdown key is dropped from the response entirely rather than returned as null.
What happens on a paywalled article?▾
You get a clean failure, not a stub. A live extract against a WSJ article returned ok:false with error code UPSTREAM_HTTP and the message ending "http 401", after three attempts recorded in meta.requests. A dead URL behaves the same way with code NOT_FOUND and "http 404". In both cases every article field is absent rather than half-filled, so an ok:true response means real extracted text and not a login wall rendered as prose.
How reliable are the author and date fields?▾
They come from the page's own metadata, so they are as good as the publisher's markup and no better. Across measured calls an AP News page filled both author and top_image, a BBC section page returned author null and top_image null, and Wikipedia returned author "Contributors to Wikimedia projects". Section and index pages are the worst case, because the date you get back is whatever the template stamped rather than an article date. Treat both fields as optional and check for null.
Why do my Google News results have news.google.com URLs instead of the publisher's?▾
That is what the Google News RSS feed publishes, and the API returns it untouched by default. Pass resolve=true and the URLs are followed to the real publisher pages: a measured "nvidia earnings" search came back with investors.com, cnbc.com and bloomberg.com links, meta.resolved 3, and meta.requests climbing from 1 to 7. It costs extra upstream requests and time, so leave it off if you only need headlines. Passing a Google News link to extract resolves it too, and reports the original in meta.resolved_from.
Does lang actually filter the results?▾
For google it selects the edition, but for gdelt it behaves more like a hint. A measured gdelt search for "nvidia" with the default lang=en returned a Norwegian result from e24.no tagged lang "no" alongside the English ones. Every result carries its own lang field, so filter on that yourself if your pipeline is language-sensitive rather than trusting the request parameter to have done it.
Is site_name the publication or the domain?▾
Whichever the page declares, which means it is not consistent across publishers. Measured values in one sitting: "AP News", "bbc.com" and "Wikimedia Foundation, Inc." - a brand name, a bare hostname and a legal entity. It reads og:site_name where present and falls back to the host. If you need a stable publisher key, derive it from article.canonical rather than from site_name.
Does the render parameter do anything?▾
No. It is accepted for compatibility, but this build ships without a browser, so meta.rendered comes back false regardless of what you pass, including render="force". Every measured extract reported meta.stop_reason "bare". Recon found that rendering recovered close to nothing on real news pages, which is why it was left out. A JavaScript-only page will return thin text rather than silently pretending it rendered.
What does source=rss expect, and does query still apply?▾
It expects rss_url and ignores query. A measured call with rss_url pointing at the BBC news feed returned results in the same unified schema, with meta.query null and source set to "bbc.co.uk". Omitting query for a source that needs one is rejected up front: source=google with no query returned MISSING_PARAM with the message "`query` is required for source='google'".
What is the News Articles API?▾
News Articles API is a ReefAPI endpoint group for extract clean article text from any news url. It returns live JSON through POST requests under /news-article/v1.
Is the News Articles API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. News Articles calls use the same shared credit balance as every other ReefAPI engine.
Do I need a News Articles login or account?▾
No login to News Articles is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the News Articles data?▾
The page example is captured from a live extract call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the News Articles API use?▾
News Articles actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call News Articles from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call news-article actions with the same key, credit pool and JSON envelope used by normal REST requests.
25 Media, Film & Knowledge APIs on the same key
One key, one credit pool, one response envelope. If you are pulling News Articles, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 183 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-08-30.