Medium Scraper avatar

Medium Scraper

Pricing

from $8.00 / 1,000 articles

Go to Apify Store
Medium Scraper

Medium Scraper

Medium API alternative: scrape articles by tag, author, publication, keyword search or URL. Title, subtitle, author, date, claps, responses, reading time, tags and full text as clean Markdown for AI/RAG. Paywalled stories flagged.

Pricing

from $8.00 / 1,000 articles

Rating

0.0

(0)

Developer

Quelli di Carne Genuina

Quelli di Carne Genuina

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

A fast Medium API alternative. Scrape Medium articles by tag, author (@username), publication, keyword search or article URL and get title, subtitle, author, publish date, claps, responses, reading time, tags and the full article text as clean Markdown, ready for AI agents, RAG pipelines and LLM datasets. Member-only stories are flagged with isPaywalled and return only Medium's public preview: no paywall bypass.

Independent tool, not affiliated with or endorsed by A Medium Corporation. It reads the same public data you see on medium.com.

What you get

One row per article (real result, shortened):

{
"id": "c2d91ecfdf77",
"url": "https://medium.com/data-science/improving-agent-systems-ai-reasoning-c2d91ecfdf77",
"title": "Improving Agent Systems & AI Reasoning",
"subtitle": "DeepSeek-R1, OpenAI o1 & o3, Test-Time Compute Scaling, Model Post-Training and the Transition to Reasoning Language Models (RLMs)",
"author": "Tula Masterman",
"authorUsername": "tula.masterman",
"publication": "TDS Archive",
"publishedAt": "2025-02-02T14:32:00.159Z",
"claps": 166,
"responses": 4,
"readingTimeMinutes": 8.9,
"wordCount": 2200,
"tags": ["aireasoning", "generative-ai-tools", "ai-agent", "llm", "editors-pick"],
"isPaywalled": false,
"markdown": "### DeepSeek-R1, OpenAI o1 & o3, Test-Time Compute Scaling...\n\n![Image by author](https://miro.medium.com/v2/resize:fit:1400/1*oI0lijofursOtYkoEZqtrw.png)\n\n..."
}

Try it in 1 click: the prefilled example runs in seconds. Press Start with the prefilled tag ("artificial-intelligence"): in our test today it returned 30 articles with full text in 4 seconds at 512 MB, for $0.24.

Price: $8 per 1,000 articles ($0.008 each) on every Apify plan, platform usage included, no start fee.

Why this Medium scraper

  • More than RSS: Medium RSS feeds stop at the latest ~10 stories and have no claps, responses or reading time. This actor reads Medium's own public data, so you get hundreds of stories per tag, author or publication, plus keyword search, engagement metrics and reading time.
  • Clean Markdown for AI and RAG: headings, lists, links, bold, code blocks (with language) and images are preserved as Markdown; text gives plain text and html (optional) simple HTML. No navigation, cookie banners or "sign up" clutter.
  • Honest paywall handling: member-only stories are returned with isPaywalled: true and only the public preview Medium shows to logged-out readers.
  • Cheaper: 20% less per article than moving_beacon-owner1/medium-scraper ($0.008 vs $0.01) and no start fee.
  • Drop-in compatible: accepts users, publications, tags, feedUrls, includeHtml, fetchFullArticle, maxItemsPerFeed, maxItems, proxyConfiguration and also returns title, url, author, published, categories, text, word_count, feed, html.
  • Reliable: every request retries through a fresh proxy session; one bad source never fails the run, it is listed in the FAILED record and not billed. Duplicates across sources are removed.

What you can do with it

  • AI agents and RAG: feed your vector database or LLM with clean Markdown articles on any topic (rag, llm, startups...).
  • Content research and SEO: find the most-clapped stories on a topic, what competitors publish, which tags they use.
  • Author and publication monitoring: track new posts from writers, companies' engineering blogs (Netflix, Airbnb, Uber...) or publications.
  • Datasets: build corpora of articles with dates, tags and engagement for analysis or fine-tuning (respect the authors' rights).

Input

{
"tags": ["artificial-intelligence", "rag"],
"users": ["@dhh"],
"publications": ["towards-data-science"],
"searchQueries": ["rag agents"],
"articleUrls": ["https://medium.com/p/56c483d827fc"],
"feedUrls": ["https://netflixtechblog.com"],
"maxItemsPerFeed": 40,
"maxItems": 5000,
"includeContent": true,
"includeHtml": false
}
FieldWhat it does
tagsMedium tags; newest stories first.
usersUsernames with or without @, or profile URLs (also name.medium.com).
publicationsPublication slugs or URLs, custom domains included.
searchQueriesKeyword search, like the search box on medium.com.
articleUrls / startUrlsArticle URLs; any other Medium URL (profile, tag, publication, search) is recognised too.
feedUrlsExplicit RSS feeds, for example custom-domain blogs; /feed is added if missing. RSS lists ~10 stories.
maxItemsPerFeedMax articles per source (default 30).
maxItemsMax articles in total (default 5000).
includeContentFull text as markdown and text (default on). Off = metadata only.
includeHtmlAlso return html.
maxConcurrency, proxyConfigurationParallelism (1-5) and proxy (Apify datacenter proxy by default).

Output

FieldDescription
id, urlMedium post id and canonical URL.
title, subtitleHeadline and subtitle.
author, authorUsername, authorId, authorUrlWriter.
publication, publicationSlug, publicationUrlPublication, when the story belongs to one.
publishedAt, updatedAtISO dates.
claps, responsesEngagement.
readingTimeMinutes, wordCount, languageAs computed by Medium.
tagsTag slugs.
isPaywalled, contentIsPreview, visibilityMember-only flag; when true, markdown/text hold only the public preview.
imageUrlCover image.
markdown, text, htmlBody as Markdown, plain text, optional HTML.
published, categories, word_count, feedSame values under the field names of moving_beacon-owner1/medium-scraper.
source, scrapedAtWhich input produced the row, and when.

Pricing

Pay per article, platform usage included. Same price on every Apify plan:

EventFreeBronzeSilverGold, Platinum, Diamond
Article (one story with metadata and full public text)$0.008$0.008$0.008$0.008
Run startfreefreefreefree

Examples: 1,000 articles = $8. The latest 30 stories of a tag = $0.24. Set a maximum total charge to cap spending; the actor stops cleanly when it is reached. Failed or not-found articles are not billed.

Migrating from moving_beacon-owner1/medium-scraper

Change the actor ID to lagenuina_agency/medium-scraper; the input works as is.

moving_beacon-owner1/medium-scraperThis actorNotes
usersusersSame. GraphQL instead of RSS: up to maxItemsPerFeed stories, not only the latest ~10.
publicationspublicationsSame; custom domains also accepted.
tagstagsSame; newest stories, beyond the 10 of RSS.
feedUrlsfeedUrlsSame (RSS, ~10 latest stories).
includeHtmlincludeHtmlSame; HTML rebuilt from the article structure.
fetchFullArticle(not needed)The full public text is always included.
maxItemsPerFeed, maxItemssameSame meaning and defaults.
proxyConfigurationproxyConfigurationDefault is Apify datacenter proxy.
(not available)searchQueries, articleUrls, includeContentExtra: keyword search, single articles, metadata-only mode.

Output: title, url, author, published, categories, text, word_count, feed and html keep the same names. Extra fields: subtitle, claps, responses, readingTimeMinutes, markdown, isPaywalled, publication, authorUsername, imageUrl and more (see Output). full_fetch is not returned.

Price per 1,000 articles (public Apify Store prices, checked on 17 October 2026): $10 + a small start fee there, $8 here, on every plan.

Limits / not supported

  • Member-only (paywalled) stories: only the public preview Medium shows to logged-out readers; we never log in or bypass the paywall.
  • Comments (responses) are counted, not scraped. Highlights, follower counts and Medium Partner Program earnings are not returned.
  • feedUrls and tags without an archive use RSS, which lists only the ~10 latest stories.
  • Keyword search follows Medium's own ranking; the number of results depends on Medium.
  • Embedded content (YouTube, Gists, tweets) is returned as a link, not as its content.

Integrations and API

Call it from your code with the official Apify clients:

# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lagenuina_agency/medium-scraper").call(run_input={"tags": ["rag"], "maxItemsPerFeed": 20})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["claps"], item["url"])
// npm i apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('lagenuina_agency/medium-scraper').call({ tags: ['rag'], maxItemsPerFeed: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Ready-to-run examples (Python, JavaScript, n8n workflow): github.com/assa83/medium-scraper-api.

No-code: use the Apify app in n8n, Make or Zapier (action "Run Actor", pick lagenuina_agency/medium-scraper). Results can be pushed to Google Sheets, Slack, webhooks or any S3 bucket via Apify integrations.

Use it from AI agents (MCP, LangChain, CrewAI)

This actor is a ready-made tool for any MCP client (Claude, ChatGPT, Cursor, custom agents) through the Apify MCP server:

{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com/?actors=lagenuina_agency/medium-scraper" }
}
}

Ask things like "Summarise the 10 most recent Medium articles tagged rag", "What did @dhh write on Medium?" or "Find Medium posts about LangGraph agents and list the most clapped". In Python, load articles straight into LangChain with langchain-apify (ApifyDatasetLoader, mapping markdown to page_content and url to metadata) or give CrewAI agents the ApifyActorsTool("lagenuina_agency/medium-scraper").

More tools from Quelli di Carne Genuina

Ad intelligence

Competitor & SEO research

Travel prices

Retail prices

Content & social data

FAQ

Is there an official Medium API? Medium's official API is no longer open to new integrations and never offered reading articles by tag or search. This actor gives you that public data today, with no token from Medium.

How do I get Medium articles as Markdown for an LLM or RAG? Run the actor with includeContent: true (default): every article has a markdown field with headings, lists, links, code blocks and images preserved.

Can I scrape member-only / paywalled Medium articles? No. For member-only stories you get the metadata and the public preview, with isPaywalled: true. We do not bypass Medium's paywall.

How do I get more than 10 posts from a Medium RSS feed? Put the username, publication or tag in users, publications or tags instead of feedUrls and raise maxItemsPerFeed.

Can I get claps and reading time? Yes: claps, responses, readingTimeMinutes and wordCount are in every row.

Does it work with custom domains (e.g. netflixtechblog.com)? Yes, as a publication URL, article URL or feed URL.

Is scraping Medium legal? The actor reads publicly available pages and data. Articles are copyrighted by their authors: you are responsible for how you use the content; check your local laws and Medium's terms.

Something broke? Open an issue on the Issues tab: we answer within 24 hours.