Medium Articles Scraper
Pricing
from $0.99 / 1,000 articles
Medium Articles Scraper
Extract Medium articles by keyword at scale — no account needed. Returns title, author, publication, clap count, reading time, tags, and direct URLs as structured JSON.
Pricing
from $0.99 / 1,000 articles
Rating
0.0
(0)
Developer
DataCach
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Medium Article Scraper
Extract articles, authors, and publication data from Medium by keyword — no account required. Search Medium at scale and collect rich metadata for every result: title, URL, author, publication, clap count, reading time, tags, and more. Try it directly on the Apify platform without writing a single line of code.
What does Medium Article Scraper do?
The Medium Article Scraper lets you search Medium for articles by keyword and collect structured data for each result. You provide one or more search terms and a result limit; the scraper handles pagination automatically and delivers each article as a clean JSON record ready to export or integrate.
It retrieves data that is publicly visible on Medium's search page — no login, cookies, or API key needed.
Why use Medium Article Scraper?
Medium does not offer a public search API, making it hard to extract content data at scale. This scraper solves that. Common use cases:
- Content research — Find the top-performing articles on any topic to inform your editorial strategy.
- Competitive analysis — Monitor what your competitors or industry leaders are publishing.
- SEO & keyword research — Discover trending titles, subtitles, and tags for any search term.
- Lead generation — Identify authors and publications active in your niche.
- Data journalism — Analyse publishing trends, clap counts, and reading times across topics.
- Training datasets — Collect article metadata for NLP or recommendation models.
Running on the Apify platform gives you scheduling, monitoring, cloud storage, and integrations with 1,500+ tools (Zapier, Make, Google Sheets, etc.) out of the box.
How to use Medium Article Scraper
- Open the Actor on Apify Console and click Try for free.
- In the Input tab, enter your search keywords (e.g.
python,machine learning). - Set Max Results per Keyword — how many articles you want per keyword.
- Click Start and wait a few seconds.
- Go to the Output tab to preview results, or click Export to download as JSON, CSV, or Excel.
You can also run the scraper via the Apify API or schedule it to run automatically on a cron.
Input
Configure the scraper in the Input tab or via JSON:
| Field | Type | Description | Default |
|---|---|---|---|
search_keywords | Array of strings | Keywords to search for on Medium. Each keyword is scraped independently. | ["python", "docker"] |
max_results | Integer | Maximum number of articles to collect per keyword. Total output ≤ keywords × max_results. | 100 |
start_page | Integer | Page number to start scraping from for each keyword. Useful to skip already-collected results or resume from a specific offset. | 1 |
Example input:
{"search_keywords": ["machine learning", "kubernetes", "python"],"max_results": 50,"start_page": 3}
This would return up to 150 articles (50 per keyword), starting from page 3 of each keyword's search results.
Output
Each article is saved as a JSON object in the Apify dataset. You can download the dataset in JSON, CSV, Excel, or XML from the Output tab or via the API.
Example output record:
{"title": "How a Few Great Python Libraries Helped Me Build Faster and Think Bigger","mediumUrl": "https://blog.stackademic.com/how-a-few-great-python-libraries-helped-me-build-faster-and-think-bigger-3e65d5d95a23","visibility": "LOCKED","isPublished": true,"isLocked": true,"clapCount": 34,"readingTime": 5.47,"firstPublishedAt": 1778302377518,"extendedPreviewContent": {"subtitle": "Automation Changed Everything"},"creator": {"name": "Muhummad Zaki","username": "Muhummadzaki"},"collection": {"name": "Stackademic","domain": "blog.stackademic.com","subscriberCount": 83405},"tags": [{ "displayTitle": "Python" },{ "displayTitle": "Data Science" }]}
Data Fields
| Field | Type | Description |
|---|---|---|
title | String | Article title |
mediumUrl | String | Direct URL to the article |
uniqueSlug | String | Unique URL-friendly identifier |
visibility | String | LOCKED (members only) or PUBLIC |
isPublished | Boolean | Whether the post is live |
isLocked | Boolean | Whether the post requires a Medium membership |
isSeries | Boolean | Whether the post belongs to a series |
clapCount | Number | Total claps received |
readingTime | Number | Estimated reading time in minutes |
firstPublishedAt | Number | Unix timestamp (ms) of first publication |
latestPublishedAt | Number | Unix timestamp (ms) of last update |
pinnedAt | Number | Unix timestamp (ms) if pinned, else 0 |
creator | Object | Author details: name, username, imageId |
collection | Object | Publication details: name, domain, description, subscriberCount |
tags | Array | List of tags with display titles |
extendedPreviewContent | Object | Article subtitle and preview flag |
previewImage | Object | Preview image metadata |
postResponses | Object | Number of responses/comments |
Tips and Advanced Options
Large keyword lists
For broad research campaigns, prefer fewer keywords with a higher max_results value over many keywords with a low limit — you'll get more consistent, deeper coverage per topic.
Scheduling recurring runs Use Apify's built-in scheduler to run the scraper daily or weekly and monitor trending articles in your niche over time.
Exporting to Google Sheets / Zapier / Make Connect the dataset directly from the Apify Console Integrations tab — no code required.
Crash recovery If a run is interrupted, restarting it automatically resumes from where it left off rather than starting over, saving both time and compute costs.
FAQ, Disclaimers, and Support
Is scraping Medium legal? This scraper only accesses data that is publicly visible on Medium's search results — the same data any user sees without logging in. It does not bypass paywalls, access member-only content, or collect personal data beyond what Medium displays publicly. Always comply with Medium's Terms of Service and applicable data protection laws in your jurisdiction.
Why are some articles marked isLocked: true?
Medium marks paywalled articles (requiring a membership to read in full) as LOCKED. The scraper collects their metadata but does not access the full article body.
The scraper returned fewer results than expected. Medium's search index does not always return the maximum number of results for every query. Niche keywords may have fewer matching articles in total. Try broader keywords or verify the result count by searching manually on Medium.
Can I scrape a specific publication or author? Not directly — the current version searches by keyword only. Reach out if you need filtering by publication, author, or date range.
Found a bug or need a custom feature? Open an issue in the Issues tab on Apify, or reach out for a custom scraping solution.