Medium Scraper: Articles, Full Text, Authors & Publications
Pricing
from $3.00 / 1,000 articles
Medium Scraper: Articles, Full Text, Authors & Publications
Scrape Medium articles from tags, authors, publications (custom domains too), search or URLs: claps, clappers, responses, word count, reading time, language, author followers and bio, publication followers, and the full text as Markdown. Date and clap filters. No login, $3 per 1,000.
Pricing
from $3.00 / 1,000 articles
Rating
0.0
(0)
Developer
Spyridon Pikoulas
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Medium Scraper
Get Medium articles, with their stats, their author's and publication's audience, and optionally their full text, from any of five sources:
- Tags: every article in a tag, newest first, as far back as you ask; its most-read of all time; or its most-read of a given month or year.
- Authors: everything a writer has published.
- Publications: a publication's articles, including ones on custom domains such as
betterprogramming.pub. - Search: the same results as Medium's own search.
- Article URLs: specific articles.
For each article you get the title, subtitle, URL and canonical URL, publish and update dates, claps and the number of readers who clapped, responses, reading time, word count, language, tags, whether it is member-only, the cover image, the author's followers, bio and X handle, the publication's followers and, if you ask for it, the text as Markdown (links, images and code blocks kept) and as plain text.
Filter by publish date (a date, or "1 day", "6 months"), minimum claps, language, or free articles only. Newest-first sources stop reading at the date you give, so a daily run on a busy tag reads only what is new.
It reads Medium's own data API, so it needs no browser and no login, and it is fast: 800 articles with full text in under two minutes. It costs $3 per 1,000 articles, full text included.
What people use it for
- Content research: find the most-clapped articles in a tag, month by month, and what length and angle they take.
- Monitoring: a daily run on a set of tags, authors or publications with Published after
set to
1 day. - AI and RAG datasets: article text by topic, in one language, free articles only.
- Writer discovery: the writers who publish on your topic, with their follower counts.
How to scrape Medium
- Click Try for free; Apify's free plan covers a first run.
- Fill in one or more of Tags, Authors, Publications, Search queries and Article URLs, set Max articles per source, and turn on Include full text if you need the body.
- Click Start, then download the results as JSON, CSV, Excel or HTML, or read them through the API.
An input with more options:
{"tags": ["python", "artificial-intelligence"],"authors": ["@karpathy"],"publications": ["towards-data-science"],"maxArticlesPerSource": 500,"maxItems": 2000,"publishedAfter": "30 days","minClaps": 10,"language": "en","includeContent": true}
Output
{"id": "a64152b37c35","title": "Software 2.0","subtitle": "I sometimes see people refer to neural networks as just “another tool in your machine learning toolbox”…","url": "https://karpathy.medium.com/software-2-0-a64152b37c35","canonicalUrl": "https://karpathy.medium.com/software-2-0-a64152b37c35","author": "Andrej Karpathy","authorUsername": "karpathy","authorUrl": "https://medium.com/@karpathy","authorFollowers": 62198,"authorFollowing": 183,"authorBio": "I like to train deep neural nets on large datasets.","authorTwitter": "karpathy","authorIsMember": false,"publication": null,"publicationFollowers": null,"publishedAt": "2017-11-11T22:18:53.751000+00:00","updatedAt": "2017-11-11T22:18:53.751000+00:00","readingTimeMinutes": 8.8,"wordCount": 2146,"claps": 61025,"clappers": 8889,"responses": 194,"memberOnly": false,"visibility": "PUBLIC","language": "en","tags": ["machine-learning", "artificial-intelligence", "programming"],"imageUrl": "https://miro.medium.com/v2/resize:fit:1200/1*CHcu2L0NmAZwCpQgmS1ByA.jpeg","source": "url:https://medium.com/@karpathy/software-2-0-a64152b37c35","contentMarkdown": "## Software 2.0I sometimes see people refer to neural networks…","contentText": "Software 2.0I sometimes see people refer to neural networks…","contentIsPreview": false}
Each article appears once per run, even when several sources list it.
Use it as an API
One call runs it and returns the results as JSON (for runs under 5 minutes; longer ones start a run and read its dataset). Apify's Python and JavaScript clients, and its Make, Zapier and n8n integrations, work the same way.
$curl -X POST "https://api.apify.com/v2/acts/pikoulas~medium-articles-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d '{"tags": ["python"], "maxArticlesPerSource": 10}'
AI agents can call it as a tool through Apify's MCP server: https://mcp.apify.com?tools=pikoulas/medium-articles-scraper.
How much does it cost to scrape Medium?
You pay $0.003 per article, which is $3 per 1,000, full text included. Articles the filters leave out cost nothing. Runs that go through Apify's residential proxy also pay its traffic, $0.0012 per 100 KB. There are no monthly fees.
Good to know
- Medium keeps about 18 articles in any "most read" list, so a tag's all-time or monthly top stops there. The newest-first order goes back as far as you ask.
- For member-only articles, Medium serves only the preview part of the text without a paid
login.
contentIsPreviewtells you when that is the case; Leave out member-only articles keeps them out. - Max articles in total caps the whole run exactly, across every source.
- If Medium starts refusing requests on a very large run, turn on Apify Proxy in the input.
FAQ
Is it legal to scrape Medium?
It collects only what Medium shows publicly, without logging in. Medium's terms prohibit this, and your use of it is your own responsibility. Personal data is also protected by laws such as the GDPR and the CCPA. If you're unsure, ask a lawyer; Apify's Is web scraping legal? is a good start.
Something missing or not working?
Open an issue on the Issues tab with the input you used, or ask there for a field you need.