Medium User Articles Scraper avatar

Medium User Articles Scraper

Pricing

Pay per event

Go to Apify Store
Medium User Articles Scraper

Medium User Articles Scraper

Scrape a Medium author's published articles via their RSS feed — title, link, author, claps placeholder, body excerpt, published date, tags. Works for any public Medium profile. No login.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share


🎯 What this scrapes

Medium publishes an RSS feed for every author at medium.com/feed/@username. This Actor takes a list of usernames or feed URLs, fetches each feed, and writes one row per article with title, link, body excerpt (HTML), tags, and published date. Perfect for backfilling an author's catalogue or watching for new posts.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Author monitoring — watch a thought leader and pipe new posts to Slack.
  • Translation pipeline — bulk-extract a series of articles for translation.
  • Newsletter assembly — combine RSS feeds from 20 authors into one curated weekly digest.
  • Backfill — mirror your own Medium catalogue into another CMS.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
usernamesarrayyes['@medium']List of Medium usernames (with or without the @) or full profile / feed URLs. Each becomes one feed fetch.
maxArticlesPerUserintegerno10Medium's per-user RSS feed typically exposes the latest 10. We honour that cap.
includeContentbooleannoTrueMedium's RSS includes a content:encoded body — we surface it when true.
proxyConfigurationobjectno{'useApifyProxy': True}Medium sometimes throttles cloud IPs. Apify Proxy helps.

Example input

{
"usernames": [
"@Medium"
],
"maxArticlesPerUser": 3,
"includeContent": false,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
usernamestringMedium username (with @ prefix).
article_id['string', 'null']Medium-side guid for the article.
titlestringArticle title.
linkstringCanonical article URL.
authorstringAuthor display name.
content_html['string', 'null']HTML article body (when includeContent=true).
categoriesarrayTags / categories applied to the article.
published['string', 'null']Publish timestamp (ISO-8601).
scraped_atstringWhen this row was recorded.

Example output

{
"username": "@Medium",
"title": "What's new at Medium",
"link": "https://medium.com/@Medium/whats-new-1abc",
"author": "Medium",
"categories": [
"medium",
"writing"
],
"published": "2026-04-15T20:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result$0.002Per dataset item

Example: 1 000 results at the rates above ≈ $2.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

Medium's RSS is read-only and caps at 10 articles per author. Claps, follower count, and reading-time stats live in the rendered HTML, not RSS.

❓ FAQ

Why only 10 articles?

Medium's per-user RSS exposes the latest 10. For older articles, use Medium's archive API (separate Actor).

Why is published sometimes empty?

Some Medium accounts (especially publications) emit malformed timestamps. We surface null rather than guess.

What about claps count?

Claps are not in the RSS feed — they'd require a per-article HTML scrape.

Publications vs personal?

Both work — pass @publication or the publication slug if URL-shaped.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.