Medium Author RSS Scraper
Pricing
Pay per event
Medium Author RSS Scraper
Scrape any Medium author's published articles via their RSS feed — title, link, author, body excerpt, published date, tags — export to JSON or CSV. A Medium article scraper that works for any public profile, no login. We retry and pace requests so the feed lands.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
🎯 What this scrapes
Medium publishes an official RSS feed for every author at medium.com/feed/@username. This Actor is a focused medium author scraper: you supply a list of usernames or feed URLs, we fetch each feed, and you get one row per article — title, link, body excerpt (HTML), tags, and published date. It is RSS-only by design: no paywalled HTML, no full-article bypass, no scraping of curated topic pages. That keeps it fast, honest about its scope, and safe from Medium's increasingly aggressive IP-level throttling. For medium articles export in bulk, simply pass a list of usernames and stream the dataset to CSV, JSON, or Excel in one click.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates 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 feed,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when Medium pushes back, we slow down and retry rather than letting you hit the ban wall.
- 🧊 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 or Notion via n8n.
- Translation pipeline — bulk-extract a series of articles for DeepL or an in-house translation workflow.
- Newsletter assembly — combine RSS feeds from 30 authors into one curated weekly digest without hand-rolling RSS parsing.
- Own-archive backfill — mirror your own Medium catalogue into Ghost, Astro, or Hashnode in minutes.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset as feeds are processed.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the Apify API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
usernames | array | yes | ["@medium"] | List of Medium usernames (with or without the @) or full profile / feed URLs. Each becomes one feed fetch. |
maxArticlesPerUser | integer | no | 10 | Medium's per-user RSS feed typically exposes the latest 10. We honour that cap. |
includeContent | boolean | no | true | Medium's RSS includes a content:encoded body — we surface it when true. |
proxyConfiguration | object | no | {"useApifyProxy": true} | Medium throttles cloud IPs. Apify Proxy keeps requests flowing. |
Example input
{"usernames": ["@Medium"],"maxArticlesPerUser": 3,"includeContent": false,"proxyConfiguration": {"useApifyProxy": false}}
📤 Output
Every row is one dataset item. All rows are Pydantic-validated before they reach the dataset.
| Field | Type | Notes |
|---|---|---|
username | string | Medium username (with @ prefix). |
article_id | string | null | Medium-side guid for the article. |
title | string | Article title. |
link | string | Canonical article URL. |
author | string | Author display name. |
content_html | string | null | HTML article body (when includeContent=true). |
categories | array | Tags / categories applied to the article. |
published | string | null | Publish timestamp (ISO-8601). |
scraped_at | string | When this row was recorded (ISO-8601). |
Example output
{"username": "@Medium","article_id": "abc123def456","title": "What's new at Medium","link": "https://medium.com/@Medium/whats-new-1abc","author": "Medium","content_html": null,"categories": ["medium","writing"],"published": "2026-04-15T20:00:00+00:00","scraped_at": "2026-06-01T09:00:00+00:00"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.005 | One-off warm-up charge per run |
result | $0.002 | Per dataset item written |
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 feed is read-only and exposes the latest ~10 articles per author — older articles are not available via this surface. Claps, follower count, reading-time stats, and paywall-gated full article text live in Medium's rendered HTML, not in the RSS feed, and are out of scope for this Actor. If you need scraped paywalled content, this is not the tool — nor should it be.
❓ FAQ
Why only ~10 articles per author?
Medium's per-user RSS surface exposes the latest ~10 published posts. This is a Medium platform constraint, not a bug in this Actor. For historical archive scraping, a dedicated approach targeting Medium's older API surfaces would be needed (different Actor).
Is this a general medium scraper or RSS-specific?
RSS-specific — this Actor reads medium.com/feed/@username only. It does not scrape Medium's rendered HTML pages, curated topic feeds, or publication home pages. Keeping the scope narrow is what keeps it reliable and ToS-respectful.
Why is published sometimes null?
Some Medium accounts (especially publications) emit malformed or missing timestamps in their RSS. We surface null rather than guess.
What about claps count?
Claps are not in the RSS feed — they require a per-article HTML scrape, which is out of scope.
Publications vs. personal profiles?
Both work — pass @publication-slug or a full medium.com/feed/publication-slug URL.
Is there a Medium API alternative in 2026?
Medium deprecated its official API for third-party developers years ago and has not restored it. The per-author RSS feed (medium.com/feed/@username) is the remaining officially supported programmatic surface for reading author content. This Actor wraps it with proxy rotation and retry logic so it works reliably at scale.
💬 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.