Bulk Article Extractor: Full Text from a CSV, Sheet or Dataset avatar

Bulk Article Extractor: Full Text from a CSV, Sheet or Dataset

Pricing

from $1.40 / 1,000 articles

Go to Apify Store
Bulk Article Extractor: Full Text from a CSV, Sheet or Dataset

Bulk Article Extractor: Full Text from a CSV, Sheet or Dataset

Returns full text, title, author, date, publisher, image and tags for every article linked in an Apify dataset, CSV, Excel or Google Sheet, keeping your columns. Inputs: datasetId, fileUrl or articleUrls. $0.002 per article extracted; blocked or failed links free. Agent-ready via x402 and MCP.

Pricing

from $1.40 / 1,000 articles

Rating

0.0

(0)

Developer

Adam Pearce

Adam Pearce

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Got a list of news or blog links and need the actual stories? Point this Actor at a Google News scraper's dataset, an RSS export, a CSV or a Google Sheet, and every row comes back with the full article text, headline, author, publish date, publisher, image, tags and word count, next to your own columns.

Most article extractors only take a typed-in list of URLs and hand back a separate table you then have to match up again. This one reads the list you already have, finds the link column on its own, and keeps everything you had.

What you can do with it

  • News monitoring: run a Google News or RSS scraper every morning, feed its dataset in here, and get the full text of every new story about your brand, competitors or market. Turn on Only new links and you pay only for stories you have not seen before.
  • Feed an LLM or a RAG pipeline: choose Markdown output and get clean text with headings, lists and links kept, and no menus, cookie banners or ads.
  • Content research: pull 500 competitor blog posts from a sitemap export into one sheet with titles, authors, dates and word counts.
  • Media lists and PR reports: who wrote what, when, for which outlet, from a list of coverage links.

Example output

One row per link (your own columns, such as headline and source below, are kept):

{
"headline": "tea",
"source": "https://techcrunch.com",
"rowNumber": 1,
"url": "https://techcrunch.com/2026/10/17/embers-new-temperature-controlled-mug-makes-my-nightly-tea-ritual-even-better/",
"extractStatus": "ok",
"title": "Ember's new temperature-controlled mug makes my nightly tea ritual even better",
"author": "Lauren Forristal",
"authors": ["Lauren Forristal"],
"publishedAt": "2026-10-17T15:30:00.000Z",
"siteName": "TechCrunch",
"publisher": "TechCrunch",
"section": "Hardware",
"tags": ["Ember"],
"language": "en-US",
"imageUrl": "https://techcrunch.com/wp-content/uploads/2026/10/Ember_Table-with-Phone-Dark-Black-10oz_030326.png?w=1200",
"wordCount": 660,
"readingTimeMinutes": 3,
"paywalled": false,
"looksLikeArticle": true,
"pageType": "NewsArticle",
"text": "With the nights getting chillier, I've been reaching for a cup of tea more ...",
"statusDetail": null
}

Every row has an extractStatus, so you always know why a link did or did not return a story:

StatusMeaningCharged?
okArticle text returnedYes, once
paywall_previewThe publisher marks it subscriber-only and served only a short preview. The preview is includedNo
too_shortUnder the minimum word count: a video, gallery or app pageNo
blockedThe site's bot protection refused the requestNo
robots_disallowedThe site's robots.txt asks tools not to read this pageNo
http_error, unreachable, timeout, not_html, too_large, invalid_url, no_urlThe link could not be read as a web pageNo
duplicateSame link as an earlier row in this run (tracking tags like utm_source ignored), so it was not fetched againNo
skipped_seenAlready extracted in an earlier run (Only new links)No

How it reads an article

  1. The page is downloaded the way a normal browser would request it. No headless browser, so it is fast and cheap.
  2. The main story is found with Mozilla Readability, the engine behind Firefox Reader View, which strips navigation, footers, related links and ads.
  3. Author, dates, publisher, section, tags and image come from the publisher's own structured data (JSON-LD and Open Graph tags) wherever the page has it, and only then from the visible byline.
  4. paywalled is true only when the publisher itself marks the article as not free. We never guess.

Pricing

Pay per event, no subscription:

EventPrice
Article extracted (ok rows only)$0.002
Residential proxy, per article returned (only if you turn it on)$0.01
CSV or Excel export file (only when the run extracted at least one article)$0.01 per file
Webhook delivered (2xx only)$0.005

Examples: 1,000 articles cost $2. A daily monitor that finds 50 new stories a day costs about $3 a month, because with Only new links on, the stories it already has are skipped for free. Blocked links, paywall previews, duplicates and failed links are never charged.

Input

Give it one of:

  • Dataset: the output of another Actor, picked from the list.
  • File or Google Sheet URL: CSV, TSV, Excel, JSON or JSON Lines. A normal Google Sheets share link works when the sheet is set to "Anyone with the link can view".
  • Article URLs: a plain list, for a quick test.
  • Rows: inline JSON.

The link column is found automatically (url, link, articleUrl and similar, preferring links that have a real path over publisher homepages). Set Article URL field to choose it yourself.

Useful options: Text output (plain, plus Markdown, plus cleaned HTML, or metadata only), Minimum words, Only new links with a memory name per feed, Which rows to keep, CSV or Excel export, a named dataset to build a growing archive, and a webhook for Slack, Zapier, Make or n8n.

Use it from an AI agent

The Actor is pay per event with limited permissions, so AI agents can call it through Apify's MCP server or pay per run through x402. Pass articleUrls (a list of links) or datasetId; read text, title, author and publishedAt from the results, and check extractStatus before using a row.

FAQ

Will it work on every news site? Most news sites, blogs and company newsrooms, yes. A few very large publishers block all automated readers whatever you do; those rows come back blocked and cost nothing. A proxy only helps when a site blocks by address or country, not when it checks the browser itself.

Does it get around paywalls? No. It reads what the publisher serves to a normal visitor. When a subscriber-only article serves just a short preview, you get the preview free, marked paywall_preview.

Is this legal? It reads publicly available pages, one link at a time, at most two at once per site, and honours robots.txt by default. What you do with the text is up to you: the articles belong to their publishers, so check your use (summaries, monitoring, research and internal analysis are the usual ones).

Why is my dataset in a different order? Rows are saved as each site answers, so a slow site does not hold up the rest. Every row carries rowNumber, its position in your input, to sort by.

Can it find the article links for me? No, it reads links you already have. Pair it with a Google News, RSS or sitemap scraper, and with our Dataset Filter & Transform to tidy the results.

If this saved you copying articles out by hand, a short review on the Apify Store helps a lot. Questions or a site that should work and does not? Open an issue on the Issues tab and we will look at it the same day.