Medium Articles Scraper: Tags, Authors, Publications
Pricing
from $1.00 / 1,000 article scrapeds
Medium Articles Scraper: Tags, Authors, Publications
Latest Medium articles by tag, author, publication (custom domains too) or article URL, with full text and HTML, word count, reading time, tags, image and date, plus date/keyword filters. Official RSS feeds, no login or proxy. $2.00 per 1,000 articles.
Pricing
from $1.00 / 1,000 article scrapeds
Rating
0.0
(0)
Developer
TidyHarvest
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Share
Get the latest Medium articles by tag, author, publication (including custom-domain publications like
pub.towardsai.net) or article URL, with full article text and HTML, word count, reading time, tags,
cover image and publish date. It reads Medium's official RSS feeds only: no login, no cookies, no proxy, no
browser. That makes it fast (a few seconds per run) and cheap: $2.00 per 1,000 articles, and less on higher Apify plans.
What you can do with it
- Monitor topics: pull the newest posts tagged
artificial-intelligence,startuporpythonevery hour and send them to Slack, a spreadsheet or an LLM pipeline. - Track writers and publications: collect every new story from a list of authors or publications, with full text for archiving, newsletters or content research.
- Feed AI and RAG pipelines: clean plain text plus HTML, word count and reading time, ready to chunk and embed.
- Content and SEO research: see which tags and titles competitors publish, and how long their posts are.
Why this one
- Full text for tag results. Medium's tag feeds carry only a snippet. This actor looks each tag result up in its author's or publication's feed and fills in the full text when it is there (other RSS-based Medium actors return the snippet only).
- Article URL lookup for recent posts, date and keyword filters, a member-only flag
(
isFullContent), and a "full text only" switch. Filters run before you are charged. - De-duplicated across your inputs: the same story found via a tag and its author is charged once.
- Fails loudly on bad input or empty results instead of returning an empty "successful" run.
Input
| Field | What it does |
|---|---|
tags | Medium tags (python, machine-learning) or tag URLs. |
usernames | Authors: @ev, ev, https://medium.com/@ev, https://ev.medium.com. |
publications | better-programming, https://medium.com/towards-data-science, or a custom domain (https://aiadvances.org). |
articleUrls | Full article URLs; each is found in its author's/publication's feed (recent posts only). |
maxItems | Hard cap on results (and cost) for the whole run. Default 100. |
maxItemsPerFeed | Optional cap per tag/author/publication. |
publishedAfter / publishedBefore | 2026-10-01, an ISO timestamp, or relative (7 days, 24 hours). |
keywords | Keep only articles whose title, text or tags contain one of these. |
fullContentOnly | Skip member-only stories (feeds give only a snippet for those). |
enrichTagResults | Fill in full text for tag results (default on). |
includeHtml | Include contentHtml (default on). |
Example:
{"tags": ["artificial-intelligence", "python"],"usernames": ["@ev"],"publications": ["better-programming", "https://pub.towardsai.net"],"publishedAfter": "7 days","maxItems": 50}
Output
One item per article:
{"articleId": "0126fa5c6ce8","title": "Making \"Social\" Social Again","url": "https://ev.medium.com/making-social-social-again-0126fa5c6ce8","author": "Ev Williams","authorUsername": "ev","publication": null,"publishedAt": "2024-12-12T17:11:33Z","updatedAt": "2025-05-19T19:09:35.029Z","tags": ["social", "relationships"],"isFullContent": true,"snippet": "Mozi, our new (actually!) social app Announcing Mozi ...","contentText": "Mozi, our new (actually!) social app\nAnnouncing Mozi\n...","contentHtml": "<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*NMXy....jpeg\" />...","wordCount": 1849,"readingTimeMinutes": 8,"imageUrl": "https://cdn-images-1.medium.com/max/1024/1*NMXyOoeQu3L1ZAXqf8QIYw.jpeg","imageCount": 4,"guid": "https://medium.com/p/0126fa5c6ce8","feedType": "user","feedUrl": "https://medium.com/feed/@ev","feedTitle": "Stories by Ev Williams on Medium","source": "user:@ev","scrapedAt": "2026-10-15T23:55:35Z"}
url is the canonical article URL with Medium's ?source=rss tracking removed. For member-only stories
isFullContent is false, contentText/wordCount/readingTimeMinutes are null, and snippet holds Medium's
teaser. Reading time uses Medium's own formula (265 words per minute plus time for images), so it can differ from
Medium's display by about a minute. A SUMMARY record in the key-value store lists each feed, how many posts it held,
how many were returned, and any input that failed.
Pricing
Pay per result: $2.00 per 1,000 articles (article-scraped) on the Free plan, down to $0.50 per 1,000 on
Diamond. No start fee. Filters, de-duplication and caps apply before you are charged. A run that finds nothing fails
instead of returning an empty dataset.
Limits and notes
- Feeds hold only the latest ~10 posts per tag, author or publication. This is not a full-archive or search scraper: to build history, schedule it (hourly or daily) and keep the results. There is no Medium keyword search, because Medium's search pages are behind a bot check and disallowed in robots.txt.
- Member-only (paywalled) stories come with a snippet only; Medium does not put their text in feeds. Use
fullContentOnlyto skip them. - Tag results get full text only if the story is still among its author's/publication's latest ~10 posts.
- Article URLs work only for recent posts (in the author's/publication's feed). Short
medium.com/p/<id>links can't be resolved without opening Medium's article page, which sits behind a Cloudflare challenge that this actor does not try to bypass; use the full URL. - No claps, responses or follower counts: feeds don't include them.
- Public data only, read from the RSS feeds Medium publishes for exactly this purpose (
/feed, allowed by robots.txt). Respect the authors' copyright when you reuse the text.