News Article Extractor: RSS, URLs & Clean Text icon

AI & documents · Live on Apify

News Article Extractor: Clean Text from News Links and Feeds

Paste news links or a news site. You get the article text without menus and ads. Each article comes with its title, author, date and tags.

About $2.10 for 1,000 articles$0.0021 per article + $0.003 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

urlhttps://www.theverge.com/tech/1010990/fujifilm-instax-square-2-analog…
canonicalUrlhttps://www.theverge.com/tech/1010990/fujifilm-instax-square-2-analog…
titleFujifilm’s new square format instant camera adds analog color filters

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: {"url": "https://www.bbc.co.uk/news/articles/cm2d6e62p49do"} in Article URLs. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

News Article Extractor turns news article links, news sites, RSS/Atom feeds and news sitemaps into clean article text with title, author, publish date, language, tags and main image.

  • Article links (articleUrls): it opens each link and returns the article body without menus, ads, bylines, photo captions and newsletter boxes.
  • News sites (siteUrls): give a homepage like https://www.theverge.com. The Actor finds the site's RSS/Atom feed or news sitemap, takes the newest articles and extracts each one. You can also give the feed or sitemap URL directly.

Good for

  • Daily or hourly news monitoring: schedule the Actor with Only new articles and get only articles you have not received before.
  • Building a text dataset from a list of article links for analysis, summaries or RAG.
  • Getting publish dates, authors and tags for a list of article URLs.

Not a good fit

  • Paywalls and logins are not bypassed. For subscriber-only pages you get only the public part (see isAccessibleForFree).
  • Sites that block automated requests (for example some large publishers with bot protection) return a BLOCKED error. The Actor does not use a browser or proxies.
  • Sites without an RSS/Atom feed or a sitemap cannot be used in siteUrls. Use their article links in articleUrls instead.
  • Comments, videos and image galleries are not extracted.

Who uses it

Media analysts

Collect the newest stories from many sites into one table every day.

AI and RAG builders

Get clean article text that is ready for summaries or a vector database.

PR and brand teams

Save dates, authors and tags for a list of articles about your company.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.003Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
Article extracted$0.0021 (from $0.0018 on paid Apify plans)One article delivered to the dataset with clean text and metadata. Duplicates, skipped pages (too short, older than dateFrom, not an article) and articles already returned with 'Only new' are free.
Site scanned$0.002One entry from 'News sites, RSS feeds or sitemaps' that the Actor searched for feeds and sitemaps, charged once per site per run whether or not new articles were found.
Article URL failed$0.0005One entry from 'Article URLs' that the site answered with an error (not found, blocked, timeout, HTTP error) or with a page that is not an article or is shorter than 'Minimum words'. Invalid, private and skipped URLs are free.

Examples

  • One article: about $0.0051.
  • 1,000 articles: about $2.10.
  • Every day 100 articles, for 30 days: about $6.39 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 2,300 articles.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Can I read paywalled news with it?

No. It does not get past paywalls or logins. For subscriber pages you get only the free part.

What if a site has no RSS feed?

Then the site URL will not work. Paste the article links one by one instead.

Why do some sites give an error?

Some big publishers block automated visits. The tool does not use a browser or proxies, so these pages show BLOCKED.

Does it save comments or videos?

No. You get the article text and its details. Comments, videos and photo galleries are left out.

Do I need an API key or login?

No. The Actor reads public pages only.

Does it bypass paywalls?

No. For subscriber-only pages it returns the public part and isAccessibleForFree: false.

How do I get only new articles every day?

Set onlyNew to true and run the Actor on a schedule. Use a different stateKey for each schedule. You are charged only for articles you have not received yet.

Why is publishedAt null?

The page and the feed did not give a publish date. When dateFrom is set, such site articles are skipped.

Details

Step by step on Apify
  1. Open the Input tab.
  2. Keep the prefilled news site https://www.theverge.com in News sites, RSS feeds or sitemaps, or add your own article links to Article URLs.
  3. Keep Max articles from sites at the prefilled 10.
  4. Click Start.
  5. Open the Output tab. The Articles view shows title, author, date and site; Full text shows the article body.
Tips for better results
  • Give a site homepage if you do not know its feed. The tool looks for the RSS feed or news sitemap.
  • Turn on Only new articles and run it on a schedule. You get only stories you have not seen.
  • Split very long link lists into several runs. One run works for up to 10 minutes.
Limits and good to know
  • Up to 500 articleUrls, 50 siteUrls and 500 articles from sites per run
  • A run works for at most 10 minutes and stops with status partial (reason DEADLINE) when time runs out. Split very large lists into several runs
  • Memory is set automatically: 512 MB, or 1 GB when you ask for more than 200 articles
  • Public pages only. Private network addresses and links with passwords are rejected

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. Some values are changed for privacy. In Excel or CSV each field is a column.

one result · JSON
{
  "url": "https://www.theverge.com/tech/1010990/fujifilm-instax-square-2-analog-instant-film-camera-filters",
  "canonicalUrl": "https://www.theverge.com/tech/1010990/fujifilm-instax-square-2-analog-instant-film-camera-filters",
  "title": "Fujifilm’s new square format instant camera adds analog color filters",
  "author": "Staff writer",
  "publishedAt": "2026-10-14T13:43:36.000Z",
  "lang": "en-US",
  "siteName": "The Verge",
  "tags": ["Cameras", "Gadgets", "News", "Tech"],
  "text": "Continuing the analog approach of the Instax Square SQ6 that launched in 2018…",
  "markdown": null,
  "wordCount": 250,
  "isAccessibleForFree": false,
  "discoveredVia": "atom",
  "feedUrl": "https://www.theverge.com/rss/index.xml"
}

Use it from code

Actor ID: cliqtomedia/news-article-extractor. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/news-article-extractor").call(run_input={
    "articleUrls": [
        {
            "url": "https://www.bbc.co.uk/news/articles/cm2d6e62p49do"
        }
    ],
    "siteUrls": [
        {
            "url": "https://www.theverge.com"
        }
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~news-article-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"articleUrls": [{"url": "https://www.bbc.co.uk/news/articles/cm2d6e62p49do"}], "siteUrls": [{"url": "https://www.theverge.com"}]}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/news-article-extractor")
result = tool.invoke({"run_input": {"articleUrls": [{"url": "https://www.bbc.co.uk/news/articles/cm2d6e62p49do"}], "siteUrls": [{"url": "https://www.theverge.com"}]}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (18)
FieldTypeMeaning
urlstringArticle URL after redirects.
canonicalUrlstringCanonical URL declared by the page (link rel=canonical or og:url); falls back to url. Used to drop duplicates.
titlestringHeadline (og:title, then JSON-LD headline, then page title).
authorstringAuthor name(s), comma-separated, from JSON-LD, meta tags or byline. Profile URLs are never returned as names. null when the page does not name an author.
publishedAtstringPublish time, ISO 8601 UTC, from JSON-LD, meta tags, <time> or the feed. null when unknown.
modifiedAtstringLast update time, ISO 8601 UTC. null when the page does not say.
langstringLanguage code from <html lang> or metadata, e.g. en, en-GB.
siteNamestringPublisher or site name.
descriptionstringArticle summary from meta description or the first lines.
tagsarrayKeywords and section tags declared by the publisher (empty when none).
imagestringMain image URL (og:image or JSON-LD image).
textstringArticle body as plain text; paragraphs separated by a blank line. null when outputFormat is markdown.
markdownstringArticle body as Markdown with headings, links and lists. null when outputFormat is text.
wordCountintegerWords in the article body (CJK characters counted individually).
isAccessibleForFreebooleanPublisher paywall flag from JSON-LD: false = page marked as subscriber-only (only the public part is returned), true = free, null = not declared.
discoveredViastringHow the article was found: input (articleUrls), rss, atom or sitemap.
feedUrlstringFeed or sitemap the article was found in. null for articleUrls.
fetchedAtstringWhen the page was fetched, ISO 8601 UTC.
Input settings (8)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Article URLsarticleUrlsarray[{"url": "https://www.bbc.co.uk/news/articles/cm2d6e62p49do"}, {"url": "https://www.bbc…
News sites, RSS feeds or sitemapssiteUrlsarray[{"url": "https://www.theverge.com"}]
Max articles from sitesmaxArticlesinteger10
Only articles published afterdateFromstring
Only new articles (skip ones returned before)onlyNewbooleanfalse
Memory name for 'Only new'stateKeystring"default"
Article body formatoutputFormatstring"text"
Minimum wordsminWordsinteger50

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure