# News Article Extractor: Clean Text from News Links and Feeds

> News article extractor for links, RSS feeds and news sitemaps. Get clean article text, title, author, date and tags as JSON or CSV. No login needed.

URL: https://cliqtomedia.com/actors/news-article-extractor/

Category: AI-ready content & documents · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/news-article-extractor?fpr=cliqto

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.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify 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 Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `{&quot;url&quot;: &quot;https://www.bbc.co.uk/news/articles/cm2d6e62p49do&quot;}` in Article URLs. Each start is one run.
3. **Download the results.** When 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.

## 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.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.003 | Charged 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.002 | One 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.0005 | One 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. |

- 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.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/news-article-extractor?fpr=cliqto

## 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.

## Data fields

- `url` (string): Article URL after redirects.
- `canonicalUrl` (string): Canonical URL declared by the page (link rel=canonical or og:url); falls back to url. Used to drop duplicates.
- `title` (string): Headline (og:title, then JSON-LD headline, then page title).
- `author` (string): Author 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.
- `publishedAt` (string): Publish time, ISO 8601 UTC, from JSON-LD, meta tags, <time> or the feed. null when unknown.
- `modifiedAt` (string): Last update time, ISO 8601 UTC. null when the page does not say.
- `lang` (string): Language code from <html lang> or metadata, e.g. en, en-GB.
- `siteName` (string): Publisher or site name.
- `description` (string): Article summary from meta description or the first lines.
- `tags` (array): Keywords and section tags declared by the publisher (empty when none).
- `image` (string): Main image URL (og:image or JSON-LD image).
- `text` (string): Article body as plain text; paragraphs separated by a blank line. null when outputFormat is markdown.
- `markdown` (string): Article body as Markdown with headings, links and lists. null when outputFormat is text.
- `wordCount` (integer): Words in the article body (CJK characters counted individually).
- `isAccessibleForFree` (boolean): Publisher paywall flag from JSON-LD: false = page marked as subscriber-only (only the public part is returned), true = free, null = not declared.
- `discoveredVia` (string): How the article was found: input (articleUrls), rss, atom or sitemap.
- `feedUrl` (string): Feed or sitemap the article was found in. null for articleUrls.
- `fetchedAt` (string): When the page was fetched, ISO 8601 UTC.

## Input settings

- `articleUrls` (array): Direct links to news articles. Each page is fetched and returned as clean text with title, author, publish date, image, tags and language. Every URL in this list is processed (up to 500); maxArticles does not apply here.
- `siteUrls` (array): Homepages (e.g. https://www.theverge.com), RSS/Atom feed URLs or sitemap URLs. For a homepage the Actor finds the site's RSS/Atom feed or news sitemap itself, then extracts the newest articles. Up to 50 sites.
- `maxArticles` (integer): Maximum number of articles to extract from all siteUrls together (newest first, sites are interleaved). Does not limit articleUrls.
- `dateFrom` (string): Skip site articles published before this date. Use an absolute date like 2026-10-01 or a relative one like "7 days". Articles without a publish date are skipped when this is set. Does not filter articleUrls.
- `onlyNew` (boolean): Remember delivered article URLs between runs and skip them next time. Ideal for scheduled runs: you pay only for articles you have not received yet.
- `stateKey` (string): Separate memory for different schedules or projects that use 'Only new'. Letters, digits, - and _ only.
- `outputFormat` (string): Plain text (paragraphs separated by blank lines), Markdown (keeps headings, links and lists) or both.
- `minWords` (integer): Pages with fewer words in the article body (section pages, video pages, short teasers) are skipped and not charged.

## 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

- 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



- 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.

## Sample 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`

```python
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)
```

```bash
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"}]}'
```

```python
# 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)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/): Turn videos, podcasts, PDFs and articles into clean text. Make posts, notes and AI drafts from it.

## Similar tools

- [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/)
- [WordPress Posts & Pages Scraper](https://cliqtomedia.com/actors/wordpress-posts-pages-scraper/)
- [PDF & Image to Text OCR for AI Agents - No Login](https://cliqtomedia.com/actors/pdf-text-ocr/)
- [RAG Web Search: Google Results as Clean Markdown](https://cliqtomedia.com/actors/rag-web-search/)
- [Website Screenshot & PDF Generator: Full Page & Mobile](https://cliqtomedia.com/actors/website-screenshot-pdf/)
- [Website to Markdown for RAG: Crawl & Changed Pages](https://cliqtomedia.com/actors/website-to-markdown/)
