Medium Profile Scraper avatar

Medium Profile Scraper

Pricing

from $0.015 / result

Go to Apify Store
Medium Profile Scraper

Medium Profile Scraper

Medium profile scraper that returns one 17-field author row with identity, audience counts, social links, books, and up to 25 homepage article summaries from a URL or handle. Empty or suspended profiles produce no Result charge.

Pricing

from $0.015 / result

Rating

0.0

(0)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

11 days ago

Last modified

Share

Medium Profile Scraper is a medium profile scraper that converts one writer URL or handle into a 17-field author record with audience, identity, social, book, and homepage article data. It is built for repeatable author research where a structured row is more useful than copying a profile page by hand.

Apify Users Apify Runs $0.02 / profile 25 homepage articles API + MCP ready

  • One input produces at most one Dataset row, so profile-level billing is predictable.
  • The row contains 17 documented top-level fields, including follower and following counts.
  • Each row can include up to 25 homepage article summaries with claps, responses, dates, tags, lock state, and reading minutes.
  • A profile URL, an @handle, or a bare handle resolves through the same required medium_url field.

The smallest useful run looks up one writer and costs $0.01 for Actor Start plus $0.02 for one saved Result on the FREE tier: $0.03 total. Unknown, suspended, or unreadable profiles do not incur the Result charge.

Why Choose Medium Profile Scraper

Author identity in one row. Receive the stable Medium author ID, canonical username, display name, profile URL, avatar, and bio for matching a writer to an existing lead or research record.

Audience signals without manual transcription. Use follower_count and following_count as integers for sorting, scoring, and monitoring instead of copying abbreviated values from a page.

Cross-platform and book context. Linked Twitter/X and Mastodon usernames, is_book_author, and book_titles help distinguish established writers and connect profiles across research systems.

A bounded activity sample. The articles array includes up to 25 items from the public homepage, with engagement, publication dates, tags, reading minutes, and lock state. It is enough to assess current themes and activity without pretending to be a complete history.

Clean empty outcomes. When Medium confirms that a handle is missing, suspended, or unreadable, the Actor ends without inventing a row and without charging the Result event.

Quick Start Guide

Step 1: Configure

Open the Medium Profile Scraper input form. The required medium_url field is prefilled with https://medium.com/@dhh, a working public example. Replace it with a full profile URL, an @handle, or a bare handle.

Step 2: Run

Click Start. One run resolves one author, gathers the public profile fields and bounded homepage sample, and saves at most one Result row.

Step 3: Collect

Open the default Dataset to inspect the row, or export it as JSON, CSV, Excel, XML, or RSS. Use processed_at to identify when the snapshot was collected and article_count to see how many homepage articles were included.

Input Parameters

Medium Profile Scraper has one required input, medium_url, and it controls which single author is resolved.

ParameterTypeRequiredDescriptionExample
medium_urlstringYesMedium profile URL, @handle, or bare handle; resolves one author and returns at most one Dataset rowhttps://medium.com/@dhh
{
"medium_url": "https://medium.com/@dhh"
}

Medium documents both medium.com/@username profiles and publication-hosted profile variants in its official profile URL guide. This Actor normalizes supported writer references to the canonical Medium identity returned by the source.

Output Data Schema

Each populated run saves one author snapshot with 17 top-level fields; source-dependent values remain null or absent rather than being replaced with zeros or guessed text.

GroupFieldsMeaning
Identityplatform, id, username, name, profile_url, avatar_url, bioSource, stable author identity, canonical profile, stored avatar, and public biography
Connectionstwitter_username, mastodon_usernameSocial usernames linked by the writer
Audiencefollower_count, following_countCurrent integer audience snapshot
Booksis_book_author, book_titlesMedium's book-author flag and credited titles
Activityarticles, article_countUp to 25 homepage article summaries and the count returned
Processingprocessor, processed_atActor reference and UTC retrieval time

The following illustrative JSON is abbreviated to one article; a real row can contain up to 25 article objects.

{
"platform": "Medium",
"id": "54bcbf647830",
"username": "dhh",
"name": "DHH",
"profile_url": "https://medium.com/@dhh",
"avatar_url": "https://api.apify.com/v2/key-value-stores/example/records/avatar.jpg",
"bio": "Creator of Ruby on Rails, Founder & CTO at Basecamp.",
"twitter_username": "dhh",
"mastodon_username": null,
"follower_count": 124731,
"following_count": 100,
"is_book_author": false,
"book_titles": [],
"articles": [
{
"id": "56c483d827fc",
"title": "Signal v Noise exits Medium",
"url": "https://medium.com/signal-v-noise/signal-v-noise-exits-medium-56c483d827fc",
"subtitle": "Three years ago we embraced an exciting new publishing platform called Medium.",
"clap_count": 3480,
"response_count": 15,
"reading_minutes": 2.04,
"published_at": "2019-02-11T15:51:56+00:00",
"updated_at": "2019-02-11T15:51:56+00:00",
"tags": ["medium", "blogging"],
"is_locked": false,
"image_url": null
}
],
"article_count": 1,
"processor": "https://apify.com/agentx/medium-profile-scraper",
"processed_at": "2026-08-12T18:00:00+00:00"
}

Integration Examples

Use Actor ID vekA9dO6XJwbOrcbv or the name form agentx/medium-profile-scraper to run the same @dhh lookup from HTTP, SDKs, workflow tools, or MCP.

Actor ID

vekA9dO6XJwbOrcbv

HTTP

$curl -X POST "https://api.apify.com/v2/acts/vekA9dO6XJwbOrcbv/run-sync-get-dataset-items?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"medium_url":"https://medium.com/@dhh"}'

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("vekA9dO6XJwbOrcbv").call(
run_input={"medium_url": "https://medium.com/@dhh"}
)
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('vekA9dO6XJwbOrcbv').call({
medium_url: 'https://medium.com/@dhh',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Make.com

Use the Apify Run an Actor module, paste Actor ID vekA9dO6XJwbOrcbv, and map medium_url to https://medium.com/@dhh. Send the first Dataset item to a CRM, Google Sheet, or scoring step.

n8n

Use an HTTP Request node with the synchronous Dataset-items endpoint for Actor ID vekA9dO6XJwbOrcbv, store the Apify token as a credential, and send {"medium_url":"https://medium.com/@dhh"} as JSON.

MCP

Connect an MCP client to Apify's hosted server, discover agentx/medium-profile-scraper, and pass medium_url: https://medium.com/@dhh. The same 17-field Dataset contract is available to an agent without changing the input shape.

Pricing

Medium Profile Scraper costs $0.02 per saved profile Result on the FREE tier, plus a $0.01 Actor Start event, so the smallest successful run costs $0.03.

EventBilling unitFREEBRONZESILVERGOLDPLATINUMDIAMOND
Actor StartRun start; one event per GB of memory, minimum one$0.01000$0.01000$0.01000$0.01000$0.01000$0.01000
ResultOne saved author row$0.02000$0.01800$0.01600$0.01500$0.01500$0.01500

At the default 256 MB memory, Apify bills the minimum one Actor Start event. One successful FREE-tier lookup is $0.01 + $0.02 = $0.03. Ten separate successful lookups on FREE are $0.60 because the Actor accepts one writer per run; paid tiers reduce only the Result component. A missing, suspended, or unreadable profile can finish without a row, so it incurs Actor Start but no Result event. Prices can change; check the live pricing page before a large batch.

Use Cases

  • Author lead enrichment. Join username, profile_url, bio, follower_count, and linked social usernames to a CRM record before outreach.
  • Creator qualification. Compare follower_count, article_count, recent published_at values, claps, and responses to separate active writers from stale profiles.
  • Expert research. Use bio, book_titles, tags, and article titles to assess whether a writer covers the subject required for a report, event, or interview.
  • Cross-platform identity resolution. Carry twitter_username and mastodon_username into social research without guessing accounts from display names.
  • Portfolio monitoring. Schedule one run per tracked handle and compare follower_count, following_count, article_count, and processed_at across snapshots.

Alternatives

Manual profile review is free and appropriate for a single one-off check. It becomes error-prone when audience counts, social handles, book credits, and article engagement must be copied into a repeatable schema.

Medium's official API documentation is archived and no longer supported. An old integration can still be useful for understanding historical publishing workflows, but it is not a current general-purpose profile lookup interface. A browser workflow is preferable when a human needs to read an entire profile visually; a subscription data service may fit a continuous, very high-volume pipeline; this Actor fits on-demand author snapshots billed per saved row.

Choose something else when you need keyword-based article discovery, full article bodies, publication membership, follower lists, or an author's complete post history. Medium Scraper is the topic-first sibling for article discovery.

Limits and Troubleshooting

  • No Dataset row → the handle may be missing, suspended, or unreadable → confirm the spelling and try the canonical https://medium.com/@handle form.
  • Fewer than 25 articles → the public homepage supplied a smaller sample → use article_count as the returned size instead of assuming inactivity.
  • No social username or book title → the profile did not expose that value → treat null or absence as source data, not as a failed run.
  • Audience or engagement values changed → they are live snapshots → compare records using processed_at rather than expecting permanent counts.
  • An avatar or article image is absent → that individual asset could not be stored → keep the rest of the author row and retry only if the image is essential.
  • You need many authors → one run accepts one medium_url loop Actor calls or schedule one task per handle.

For a reproducible defect, open the Issues tab with the run ID, exact medium_url, expected outcome, and the affected field.

Trust and Reliability

  • Documented Dataset contract. The schema defines 17 top-level fields and makes source-dependent values nullable.
  • Output-based billing. The primary charge occurs only when one usable author row is saved.
  • Bounded scope. One writer and at most 25 homepage articles keep the run's output shape understandable before execution.
  • Apify-native storage. Dataset exports and Key-Value Store image URLs use Apify's managed run storage and standard APIs.
  • Source-values-only policy. Missing profile values remain empty; the Actor does not manufacture follower counts, bios, social usernames, or book credits.

Data scope. The Actor processes publicly accessible Medium profile and homepage information. It does not ask for Medium credentials or private account access.

Responsible use. Apply a lawful purpose, collect only what you need, respect applicable privacy and data-protection rules, and honor deletion or correction obligations that apply to your workflow.

Platform terms. Your use of the Actor and exported data remains subject to Apify's terms and Medium's terms. This independent Actor is not affiliated with, endorsed by, or operated by Medium.

Frequently Asked Questions

How do I scrape medium author profile data?

Pass the writer's full Medium profile URL, @handle, or bare handle as medium_url; a populated run returns one 17-field row plus up to 25 homepage article summaries.

Can I get medium follower count and following count as numbers?

Yes. follower_count and following_count are integer fields when Medium exposes them, ready for sorting, filtering, and snapshot comparisons.

Does Medium Profile Scraper return complete article history?

No. The articles array is a bounded public-homepage sample of up to 25 items, not a paginated archive or full-text article collection.

Is there a free Medium profile scraper?

You can inspect a Medium profile manually for free. This Actor is pay per event: a successful FREE-tier test costs $0.03, while a run with no saved profile row does not charge the $0.02 Result event.

Can I schedule runs to monitor Medium authors over time?

Yes. Create an Apify task for each medium_url, schedule it, and compare follower_count, article_count, engagement values, and processed_at across Dataset exports.

Do I need a Medium account or API key?

No. The input schema contains only medium_url; it has no Medium credential, cookie, token, filter, or pagination field.

Why is an avatar or article image null?

The profile or article may not expose an image, or that individual asset may not have been stored. Other author and article fields can still remain usable.

AgentX publishes 77 Actors; the three closest author and Medium tools come first, followed by the complete catalog by category.

Closest to this Actor:

  • Medium Scraper — discover articles by keyword when the topic, not a known writer, is the starting point.
  • Reddit Profile Scraper — add account-level community history and reputation signals to cross-platform people research.
  • Instagram Creator Scraper — evaluate visual creators using profile and audience data in a complementary channel.

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about Medium author data, profile lookups, or scheduled monitoring in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and the exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 12, 2026