Medium Scraper
Pricing
from $8.00 / 1,000 articles
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
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\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;
textgives plain text andhtml(optional) simple HTML. No navigation, cookie banners or "sign up" clutter. - Honest paywall handling: member-only stories are returned with
isPaywalled: trueand 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,proxyConfigurationand also returnstitle,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
FAILEDrecord 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}
| Field | What it does |
|---|---|
tags | Medium tags; newest stories first. |
users | Usernames with or without @, or profile URLs (also name.medium.com). |
publications | Publication slugs or URLs, custom domains included. |
searchQueries | Keyword search, like the search box on medium.com. |
articleUrls / startUrls | Article URLs; any other Medium URL (profile, tag, publication, search) is recognised too. |
feedUrls | Explicit RSS feeds, for example custom-domain blogs; /feed is added if missing. RSS lists ~10 stories. |
maxItemsPerFeed | Max articles per source (default 30). |
maxItems | Max articles in total (default 5000). |
includeContent | Full text as markdown and text (default on). Off = metadata only. |
includeHtml | Also return html. |
maxConcurrency, proxyConfiguration | Parallelism (1-5) and proxy (Apify datacenter proxy by default). |
Output
| Field | Description |
|---|---|
id, url | Medium post id and canonical URL. |
title, subtitle | Headline and subtitle. |
author, authorUsername, authorId, authorUrl | Writer. |
publication, publicationSlug, publicationUrl | Publication, when the story belongs to one. |
publishedAt, updatedAt | ISO dates. |
claps, responses | Engagement. |
readingTimeMinutes, wordCount, language | As computed by Medium. |
tags | Tag slugs. |
isPaywalled, contentIsPreview, visibility | Member-only flag; when true, markdown/text hold only the public preview. |
imageUrl | Cover image. |
markdown, text, html | Body as Markdown, plain text, optional HTML. |
published, categories, word_count, feed | Same values under the field names of moving_beacon-owner1/medium-scraper. |
source, scrapedAt | Which input produced the row, and when. |
Pricing
Pay per article, platform usage included. Same price on every Apify plan:
| Event | Free | Bronze | Silver | Gold, Platinum, Diamond |
|---|---|---|---|---|
| Article (one story with metadata and full public text) | $0.008 | $0.008 | $0.008 | $0.008 |
| Run start | free | free | free | free |
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-scraper | This actor | Notes |
|---|---|---|
users | users | Same. GraphQL instead of RSS: up to maxItemsPerFeed stories, not only the latest ~10. |
publications | publications | Same; custom domains also accepted. |
tags | tags | Same; newest stories, beyond the 10 of RSS. |
feedUrls | feedUrls | Same (RSS, ~10 latest stories). |
includeHtml | includeHtml | Same; HTML rebuilt from the article structure. |
fetchFullArticle | (not needed) | The full public text is always included. |
maxItemsPerFeed, maxItems | same | Same meaning and defaults. |
proxyConfiguration | proxyConfiguration | Default is Apify datacenter proxy. |
| (not available) | searchQueries, articleUrls, includeContent | Extra: 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.
feedUrlsand 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-clientfrom apify_client import ApifyClientclient = 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-clientimport { 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
- Google Ads Transparency Scraper: every ad a brand or domain runs on Google Search, YouTube, Shopping, Maps and Play.
- Meta Ad Library Scraper: Facebook and Instagram ads by page, keyword or Ad Library URL, with creatives and landing pages.
- TikTok Top Ads Scraper: top-performing TikTok ads from the Creative Center with CTR, likes and MP4 video URLs.
- LinkedIn Ad Library Scraper: B2B ads of any company from the public LinkedIn Ad Library, with targeting and impressions.
Competitor & SEO research
- Similarweb Website Traffic Scraper: monthly visits, ranks, traffic sources and top countries for any list of domains.
- Google Trends Scraper: interest over time, by region, related queries and Trending Now.
- Google Play Store Scraper: app search, details, top charts and reviews from Google Play, any country.
Travel prices
- Google Hotels Scraper: hotel prices and every booking site's rate for any city and dates.
- Google Flights Scraper: fares, airlines, stops, price level and price calendar for any route and date.
Retail prices
- Woolworths AU Product Scraper: Woolworths Australia grocery prices, specials, unit prices and barcodes.
- Coles AU Product Scraper: Coles Australia grocery prices, half-price specials, unit prices and barcodes.
Content & social data
- YouTube Transcript Scraper: transcripts of videos, Shorts, playlists and channels as text, SRT or VTT.
- Likee Scraper: Likee videos, profiles and creator engagement analytics.
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.