惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
L
LangChain Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
量子位
A
About on SuperTechFans
C
Check Point Blog
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
V
Visual Studio Blog
Vercel News
Vercel News
B
Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
U
Unit 42

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Medium API in 2026: Scraping vs Official API vs Zenndra (...
Sebastian Casvean · 2026-05-30 · via DEV Community

Sebastian Casvean

If you've ever tried to pull data from Medium programmatically, you already know the pain.
Medium retired their official API years ago. What's left is a graveyard of Stack Overflow threads, half-working scrapers, and a handful of third-party services with questionable reliability.
This article breaks down your three real options in 2026 — honestly, with code — so you can pick what actually fits your use case.

The Three Options

DIY scraping — build and maintain your own scraper
Medium's official API — limited, but it exists for authenticated flows
Zenndra — a third-party REST API built after Medium killed theirs

Let's go through each one.

Option 1: DIY Scraping
This is where most developers start. You fire up a headless browser, parse the HTML, and call it a day.
The appeal: free, no dependency on a third party, full control.
The reality: Medium's frontend changes constantly. Your scraper will break — not if, when. You'll spend more time maintaining the scraper than building the product you actually care about.
A typical flow looks like this:
bash# You'd need a headless browser or parse the raw HTML

Medium serves most content client-side, so curl alone won't cut it

curl "https://medium.com/@username" \
-H "User-Agent: Mozilla/5.0"

Good luck parsing that response reliably

The HTML you get back is a mess of React-rendered markup with no stable selectors. And if Medium detects scraping patterns, you get rate-limited or blocked entirely.
When to choose this: Almost never, unless you have very specific needs that no API covers and you're prepared to maintain it long-term.

Option 2: Medium's Official API
Medium does have an official API — but it's extremely limited.
What it can do:

Create posts (via OAuth)
Get your own profile info
Publish to publications you're a contributor to

What it cannot do:

Fetch any arbitrary user's articles
Search content
Get follower graphs
Read publications you don't own
Access tags, trending feeds, or article stats

bash# The official API — only works for authenticated write operations
curl "https://api.medium.com/v1/me" \
-H "Authorization: Bearer YOUR_MEDIUM_TOKEN"

Returns YOUR profile only — not anyone else's

If you're building anything read-heavy — a dashboard, a content aggregator, an AI pipeline, a research tool — the official API is essentially useless for you.
When to choose this: Only if you need to publish content to Medium programmatically and nothing else.

Option 3: Zenndra
Zenndra is an unofficial REST API built specifically to fill the gap Medium left. 42 endpoints covering articles, users, publications, tags, feeds, and search — all returning clean, stable JSON.
bash# Fetch any user's profile
curl "https://api.zenndra.com/v1/users/@username" \
-H "Authorization: Bearer YOUR_ZENNDRA_KEY"

Response: 200 OK in ~142ms

{

"username": "username",

"name": "...",

"followers": 4201,

"bio": "..."

}

bash# Get a user's articles
curl "https://api.zenndra.com/v1/user/{user_id}/articles" \
-H "Authorization: Bearer YOUR_ZENNDRA_KEY"
bash# Search articles
curl "https://api.zenndra.com/v1/search/articles?query=machine+learning" \
-H "Authorization: Bearer YOUR_ZENNDRA_KEY"
bash# Trending feed for a tag
curl "https://api.zenndra.com/v1/recommended_feed/python" \
-H "Authorization: Bearer YOUR_ZENNDRA_KEY"
The free tier gets you started with no credit card required. Paid plans start at €3.90 for 1 million requests — which is about as cheap as this category gets.
When to choose this: Any time you need read access to Medium content at scale — dashboards, newsletters, AI/LLM pipelines, research tools, content aggregators.

Side-by-Side Comparison
DIY ScrapingOfficial APIZenndraSetup timeDays / weeksMinutesMinutesRead any user✅ (fragile)❌✅Search content✅ (fragile)❌✅Stable endpoints❌✅✅LatencyUnpredictableFast~142ms P50Maintenance burdenHighNoneNoneCostYour timeFreeFrom €3.90/moRate limitsDependsStrictGenerousProduction-readyRiskyLimited useYes

The Verdict
If you're building anything that needs to read Medium content — just use Zenndra. The scraping path looks attractive until you've rebuilt your parser for the third time after a Medium frontend update.
The official API is fine for publishing workflows, but it's not a real option for read-heavy use cases.
Zenndra has a free tier with a playground where you can test every endpoint before writing a single line of integration code. Worth 5 minutes of your time: zenndra.com

Have a use case this doesn't cover? Drop it in the comments — happy to help.