Medium API
Medium API
/medium/v1/user1 creditPublic Medium user profile by username.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | required | — | Medium username, with or without the leading @ (the name in medium.com/@<user>). |
/medium/v1/user_id1 creditResolve username to Medium userId.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | required | — | Medium username, with or without the leading @ (the name in medium.com/@<user>). |
/medium/v1/user_articles1 creditPaginated user articles via profile stream API.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | required | — | Medium username, with or without the leading @ (the name in medium.com/@<user>). |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
/medium/v1/user_top_articles1 creditUser articles sorted by clap count from profile references.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | required | — | Medium username, with or without the leading @ (the name in medium.com/@<user>). |
| limit = 25 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
/medium/v1/article1 creditArticle metadata by url or id.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | Full article URL (alternative to id). |
| id | optional | — | Article post id — the 12-char hex at the end of an article URL. Provide id OR url. |
/medium/v1/article_content1 creditArticle plain-text body from bodyModel paragraphs.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | Full article URL (alternative to id). |
| id | optional | — | Article post id — the 12-char hex at the end of an article URL. Provide id OR url. |
/medium/v1/article_html1 creditArticle HTML body from bodyModel paragraphs.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | Full article URL (alternative to id). |
| id | optional | — | Article post id — the 12-char hex at the end of an article URL. Provide id OR url. |
/medium/v1/article_markdown1 creditArticle markdown body from bodyModel paragraphs.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | Full article URL (alternative to id). |
| id | optional | — | Article post id — the 12-char hex at the end of an article URL. Provide id OR url. |
/medium/v1/article_responses1 creditPublic responses/comments for an article.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | Full article URL (alternative to id). |
| id | optional | — | Article post id — the 12-char hex at the end of an article URL. Provide id OR url. |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
/medium/v1/publication1 creditPublication/collection metadata by slug.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| slug | required | — | Publication slug — the path segment in medium.com/<slug> (or its custom-domain handle). |
/medium/v1/publication_id1 creditResolve publication slug to collection id.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| slug | required | — | Publication slug — the path segment in medium.com/<slug> (or its custom-domain handle). |
/medium/v1/publication_articles1 creditPaginated publication articles via collection stream API.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| slug | required | — | Publication slug — the path segment in medium.com/<slug> (or its custom-domain handle). |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
/medium/v1/tag1 creditLatest posts for a tag via public RSS feed.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| tag | required | — | Medium topic tag slug (e.g. python, machine-learning). |
| limit = 10 | optional | 1–25 | Max items to return (1-25). Larger values are clamped to 25. |
/medium/v1/search_users1 creditExact-username user lookup fallback (full fuzzy search is JS-gated on tested DC).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| q | required | — | Search term. |
/medium/v1/search_publications1 creditExact publication slug lookup fallback.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| q | required | — | Search term. |
/medium/v1/followers1 creditPaginated user followers via /_/api/users/<userId>/followers.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | optional | — | Medium username (with/without @). Provide user OR user_id. |
| user_id | optional | — | Medium numeric/hash user id (a profile's user_id). Provide user_id OR user. |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
/medium/v1/following1 creditPaginated user following via /_/api/users/<userId>/following.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| user | optional | — | Medium username (with/without @). Provide user OR user_id. |
| user_id | optional | — | Medium numeric/hash user id (a profile's user_id). Provide user_id OR user. |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
/medium/v1/list1 creditReading list metadata and articles from public list page HTML.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | required | — | Reading-list id — the trailing id in a list URL. |
| url | optional | — | Full reading-list URL (alternative to user + id). |
| user | optional | — | List owner's username (with/without @; also accepted as 'username'). Combine with id, or pass the full url. |
| slug | optional | — | Optional list slug (the human-readable part of a list URL). |
| limit = 25 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
/medium/v1/search_articles1 creditSearch Medium articles by keyword — returns matching articles with title, URL and publication details from medium.com.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| q | required | — | Search term. |
| limit = 10 | optional | 1–50 | Max items to return (1-50). Larger values are clamped to 50. |
| cursor | optional | — | Pagination cursor from a previous response's next_cursor. Omit for page one. |
curl -X POST https://api.reefapi.com/medium/v1/user \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"user":"dhh"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}