# Medium Profile Scraper (`agentx/medium-profile-scraper`) Actor

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.

- **URL**: https://apify.com/agentx/medium-profile-scraper.md
- **Developed by:** [AgentX](https://apify.com/agentx) (community)
- **Categories:** News, Social media, Lead generation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.015 / result

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**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](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fagentx~medium-profile-scraper\&query=%24.data.stats.totalUsers\&style=for-the-badge\&label=Apify%20Users\&color=ff9013)](https://apify.com/agentx/medium-profile-scraper) [![Apify Runs](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fagentx~medium-profile-scraper\&query=%24.data.stats.totalRuns\&style=for-the-badge\&label=Apify%20Runs\&color=ff9013)](https://apify.com/agentx/medium-profile-scraper) [![$0.02 / profile](https://img.shields.io/badge/%240.02%20%2F%20profile-4285f4?style=for-the-badge)](https://apify.com/agentx/medium-profile-scraper/pricing) [![25 homepage articles](https://img.shields.io/badge/25%20homepage%20articles-34a853?style=for-the-badge)](https://console.apify.com/actors/agentx~medium-profile-scraper/input) [![API + MCP ready](https://img.shields.io/badge/API%20%2B%20MCP%20ready-fbbc05?style=for-the-badge)](https://apify.com/agentx/medium-profile-scraper/api)

- **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](https://console.apify.com/actors/agentx~medium-profile-scraper/input). 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.

| Parameter | Type | Required | Description | Example |
| --- | --- | --- | --- | --- |
| `medium_url` | string | Yes | Medium profile URL, `@handle`, or bare handle; resolves one author and returns at most one Dataset row | `https://medium.com/@dhh` |

```json
{
  "medium_url": "https://medium.com/@dhh"
}
```

Medium documents both `medium.com/@username` profiles and publication-hosted profile variants in its [official profile URL guide](https://help.medium.com/hc/en-us/articles/115004746707-Your-profile-page-URL). 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.

| Group | Fields | Meaning |
| --- | --- | --- |
| Identity | `platform`, `id`, `username`, `name`, `profile_url`, `avatar_url`, `bio` | Source, stable author identity, canonical profile, stored avatar, and public biography |
| Connections | `twitter_username`, `mastodon_username` | Social usernames linked by the writer |
| Audience | `follower_count`, `following_count` | Current integer audience snapshot |
| Books | `is_book_author`, `book_titles` | Medium's book-author flag and credited titles |
| Activity | `articles`, `article_count` | Up to 25 homepage article summaries and the count returned |
| Processing | `processor`, `processed_at` | Actor reference and UTC retrieval time |

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

```json
{
  "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

```text
vekA9dO6XJwbOrcbv
```

#### HTTP

```bash
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

```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

```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.

| Event | Billing unit | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Actor Start | Run start; one event per GB of memory, minimum one | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 |
| Result | One 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](https://apify.com/agentx/medium-profile-scraper/pricing) 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](https://github.com/Medium/medium-api-docs). 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](https://apify.com/agentx/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](https://apify.com/agentx/medium-profile-scraper/issues) 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.

### Legal and Compliance

**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.

### Related AgentX Actors

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**](https://apify.com/agentx/medium-scraper) — discover articles by keyword when the topic, not a known writer, is the starting point.
- [**Reddit Profile Scraper**](https://apify.com/agentx/reddit-profile-scraper) — add account-level community history and reputation signals to cross-platform people research.
- [**Instagram Creator Scraper**](https://apify.com/agentx/instagram-creator-scraper) — evaluate visual creators using profile and audience data in a complementary channel.

#### Business and Market Intelligence

- **[Google Keyword Trends](https://apify.com/agentx/google-keyword-trends)** — Google Trends keyword interest, compared five at a time
- **[Google Trends Scraper](https://apify.com/agentx/google-trends-scraper)** — Google Trends trending searches
- **[Google Maps Store Scraper](https://apify.com/agentx/google-maps-store-scraper)** — Google Maps business listings
- **[LinkedIn Company Lookup](https://apify.com/agentx/linkedin-company-lookup)** — LinkedIn company records
- **[LinkedIn Profile Lookup](https://apify.com/agentx/linkedin-profile-lookup)** — LinkedIn profile records
- **[Weather Forecast API](https://apify.com/agentx/weather-forecast-api)** — forecast and historical weather data

#### Jobs and Hiring

- **[All Jobs Scraper](https://apify.com/agentx/all-jobs-scraper)** — multi-platform job listings
- **[Bayt Jobs Scraper](https://apify.com/agentx/bayt-jobs-scraper)** — Bayt job listings
- **[Glassdoor Jobs Scraper](https://apify.com/agentx/glassdoor-jobs-scraper)** — Glassdoor job listings
- **[Indeed Jobs Scraper](https://apify.com/agentx/indeed-jobs-scraper)** — Indeed job listings
- **[JobStreet Company Profile](https://apify.com/agentx/jobstreet-company-profile)** — JobStreet employer records
- **[Jooble Jobs Scraper](https://apify.com/agentx/jooble-jobs-scraper)** — Jooble job listings
- **[LinkedIn Jobs Scraper](https://apify.com/agentx/linkedin-jobs-scraper)** — LinkedIn job listings
- **[Naukri Jobs Scraper](https://apify.com/agentx/naukri-jobs-scraper)** — Naukri job listings
- **[Talent Jobs Scraper](https://apify.com/agentx/talent-jobs-scraper)** — Talent.com job listings
- **[ZipRecruiter Jobs Scraper](https://apify.com/agentx/ziprecruiter-jobs-scraper)** — ZipRecruiter job listings

#### Social Media

- **[Instagram Creator Scraper](https://apify.com/agentx/instagram-creator-scraper)** — Instagram creator profiles
- **[Instagram Reels Scraper](https://apify.com/agentx/instagram-reels-scraper)** — Instagram Reels metadata
- **[Instagram Trending Scraper](https://apify.com/agentx/instagram-trending-scraper)** — Instagram trending content
- **[Medium Scraper](https://apify.com/agentx/medium-scraper)** — Medium articles
- **[Reddit Profile Scraper](https://apify.com/agentx/reddit-profile-scraper)** — Reddit user profiles
- **[Reddit Viral Scraper](https://apify.com/agentx/reddit-viral-scraper)** — Reddit viral posts
- **[SubReddit Info Scraper](https://apify.com/agentx/subreddit-info-scraper)** — subreddit metadata
- **[Subreddit Members Scraper](https://apify.com/agentx/subreddit-members-scraper)** — subreddit member lists
- **[Subreddit Posts Scraper](https://apify.com/agentx/subreddit-posts-scraper)** — subreddit post feeds
- **[Telegram Chat Scraper](https://apify.com/agentx/telegram-chat-scraper)** — Telegram chat messages
- **[Telegram Info Scraper](https://apify.com/agentx/telegram-info-scraper)** — Telegram channel metadata
- **[Telegram Member Adder](https://apify.com/agentx/telegram-member-adder)** — Telegram group membership management
- **[Telegram Member Scraper](https://apify.com/agentx/telegram-member-scraper)** — Telegram group members
- **[Telegram Private Group Scraper](https://apify.com/agentx/telegram-private-group-scraper)** — private Telegram group data
- **[TikTok Creator API](https://apify.com/agentx/tiktok-creator-api)** — TikTok creator profiles
- **[TikTok User Lookup](https://apify.com/agentx/tiktok-user-lookup)** — TikTok account records
- **[X Twitter Community API](https://apify.com/agentx/x-twitter-community-api)** — X community data
- **[X Twitter Profile Lookup](https://apify.com/agentx/x-twitter-profile-lookup)** — X profile records
- **[YouTube Creator Email Scraper](https://apify.com/agentx/youtube-creator-email-scraper)** — YouTube creator contact data

#### Video, Transcripts and Downloads

- **[All Video Scraper](https://apify.com/agentx/all-video-scraper)** — multi-platform video metadata
- **[Video Transcript](https://apify.com/agentx/video-transcript)** — multi-platform transcripts
- **[Video Captions Downloader](https://apify.com/agentx/video-captions-downloader)** — caption files
- **[Video to Social Post](https://apify.com/agentx/video-to-social-post)** — video repurposed into social copy
- **[YouTube Transcript](https://apify.com/agentx/youtube-transcript)** — YouTube transcripts
- **[TikTok Transcript](https://apify.com/agentx/tiktok-transcript)** — TikTok transcripts
- **[X Twitter Transcript](https://apify.com/agentx/x-twitter-transcript)** — X video transcripts
- **[Facebook Transcript](https://apify.com/agentx/facebook-transcript)** — Facebook video transcripts
- **[Bilibili Transcript](https://apify.com/agentx/bilibili-transcript)** — Bilibili transcripts
- **[Dailymotion Transcript](https://apify.com/agentx/dailymotion-transcript)** — Dailymotion transcripts
- **[Rutube Transcript](https://apify.com/agentx/rutube-transcript)** — Rutube transcripts
- **[Loom Transcript](https://apify.com/agentx/loom-transcript)** — Loom transcripts
- **[Wistia Transcript](https://apify.com/agentx/wistia-transcript)** — Wistia transcripts
- **[Instagram Reels Downloader](https://apify.com/agentx/instagram-reels-downloader)** — Reels downloads
- **[Kick Clip Downloader](https://apify.com/agentx/kick-clip-downloader)** — Kick clip downloads
- **[Linkedin Video Downloader](https://apify.com/agentx/linkedin-video-downloader)** — LinkedIn video downloads
- **[Pinterest Video Downloader](https://apify.com/agentx/pinterest-video-downloader)** — Pinterest video downloads
- **[Reddit Video Downloader](https://apify.com/agentx/reddit-video-downloader)** — Reddit video downloads
- **[Snapchat Video Downloader](https://apify.com/agentx/snapchat-video-downloader)** — Snapchat video downloads
- **[TED Talk Downloader](https://apify.com/agentx/ted-talk-downloader)** — TED talk downloads
- **[TikTok Live Downloader](https://apify.com/agentx/tiktok-live-downloader)** — TikTok live downloads
- **[Twitch VOD Downloader](https://apify.com/agentx/twitch-vod-downloader)** — Twitch VOD downloads
- **[Zoom Recording Downloader](https://apify.com/agentx/zoom-recording-downloader)** — Zoom recording downloads

#### E-Commerce and Retail

- **[All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper)** — multi-platform product data
- **[AliExpress Product Scraper](https://apify.com/agentx/aliexpress-product-scraper)** — AliExpress products
- **[Amazon Storefront Scraper](https://apify.com/agentx/amazon-storefront-scraper)** — Amazon Brand Store pages
- **[Bol Product Scraper](https://apify.com/agentx/bol-product-scraper)** — Bol.com products
- **[eBay Seller Leads API](https://apify.com/agentx/ebay-seller-leads-api)** — eBay seller records
- **[Hepsiburada Product Scraper](https://apify.com/agentx/hepsiburada-product-scraper)** — Hepsiburada products
- **[Kakaku Product Scraper](https://apify.com/agentx/kakaku-product-scraper)** — Kakaku.com products
- **[Rakuten Product Scraper](https://apify.com/agentx/rakuten-product-scraper)** — Rakuten products

#### Classifieds and Automotive

- **[All Vehicle Scraper](https://apify.com/agentx/all-vehicle-scraper)** — multi-platform vehicle listings
- **[AutoTrader Vehicle Search](https://apify.com/agentx/autotrader-vehicle-search)** — AutoTrader US listings
- **[AutoTrader UK Vehicle Search](https://apify.com/agentx/autotrader-uk-vehicle-search)** — AutoTrader UK listings

#### Real Estate

- **[All Property Scraper](https://apify.com/agentx/all-property-scraper)** — multi-platform property listings
- **[Homes Property Scraper](https://apify.com/agentx/homes-property-scraper)** — Homes.com listings
- **[MagicBricks Property Scraper](https://apify.com/agentx/magicbricks-property-scraper)** — MagicBricks listings
- **[NoBroker Property Scraper](https://apify.com/agentx/nobroker-property-scraper)** — NoBroker listings
- **[Property24 Property Scraper](https://apify.com/agentx/property24-property-scraper)** — Property24 listings
- **[Realtor Property Scraper](https://apify.com/agentx/realtor-property-scraper)** — Realtor.com listings
- **[Zillow Property Scraper](https://apify.com/agentx/zillow-property-scraper)** — Zillow listings

### Support and Community

Ask about Medium author data, profile lookups, or scheduled monitoring in the [AgentX community on Telegram](https://t.me/Apify_Actor); for a reproducible bug, open an [Issue](https://apify.com/agentx/medium-profile-scraper/issues) with the run ID and the exact input.

AgentX is an Arcyton brand — [arcyton.com](https://arcyton.com).

**Last Updated:** August 12, 2026

# Actor input Schema

## `medium_url` (type: `string`):

A Medium author profile URL, @handle, or bare handle. The scraper resolves one author and returns at most one Dataset row.

## Actor input object example

```json
{
  "medium_url": "https://medium.com/@dhh"
}
```

# Actor output Schema

## `results` (type: `string`):

The 17-field author row with optional profile details, nested articles including reading minutes, and KVS-backed images; unavailable source keys are omitted.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "medium_url": "https://medium.com/@dhh"
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentx/medium-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "medium_url": "https://medium.com/@dhh" }

# Run the Actor and wait for it to finish
run = client.actor("agentx/medium-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "medium_url": "https://medium.com/@dhh"
}' |
apify call agentx/medium-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agentx/medium-profile-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vekA9dO6XJwbOrcbv/builds/x4V2vLKb4FcTBfeKT/openapi.json
