# Fanvue Creators Scraper (`automation-lab/fanvue-creator-profiles-scraper`) Actor

Discover Fanvue creators and export public profile metadata, bios, likes, creator flags, pricing labels, profile URLs, and discovery images.

- **URL**: https://apify.com/automation-lab/fanvue-creator-profiles-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.84 / 1,000 creator profile extracteds

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

## Fanvue Creators Scraper

Discover **Fanvue creators** and turn public profile pages into clean, typed records for creator research, outreach-list refreshes, market mapping, and scheduled exports.

The Actor starts from creator handles, public profile URLs, or Fanvue's current public discovery page. It exports public identity, bio, aggregate likes, creator flags, public subscription labels and bundles, profile images, profile URL, and the image used in discovery. It deliberately excludes gated posts and private media.

### What can Fanvue Creators Scraper do?

- Discover creators currently featured on Fanvue's public discovery page.
- Extract one or many supplied creator handles or profile URLs.
- Filter discovered creators by text found in their public handle, display name, or bio.
- Export public pricing labels, discounts, promotions, and creator flags.
- Produce stable JSON, CSV, Excel, XML, RSS, or Parquet through Apify datasets.
- Run on a schedule to refresh a creator research or outreach list.

This is a public-profile research tool, not a downloader. It never requests subscriber-only posts, gated attachments, private media, messages, or account data.

### Who is it for?

#### Creator partnerships teams

Build a shortlist from current discovery profiles, then send the dataset to a CRM or spreadsheet for qualification.

#### Influencer researchers

Compare public positioning, displayed prices, aggregate likes, verification, ambassador status, and AI-creator flags.

#### Agencies and talent scouts

Enrich known handles with consistent profile URLs, bios, images, and subscription labels.

#### Data and automation teams

Schedule repeat runs and consume normalized records through the Apify API, webhooks, integrations, or MCP.

### What data does it extract?

| Field | Meaning |
| --- | --- |
| `handle` | Public Fanvue creator handle |
| `displayName` | Public display name |
| `bio` | Public profile biography |
| `profileUrl` | Canonical public profile URL |
| `avatarUrl` | Public avatar image URL |
| `bannerUrl` | Public banner image URL |
| `discoveryImageUrl` | Image shown on Fanvue discovery, when available |
| `aggregateLikes` | Aggregate public likes displayed by Fanvue |
| `subscriptionPrice` | Raw smallest-unit subscription value |
| `subscriptionDisplayPrice` | Localized public price label |
| `subscriptionBundles` | Public duration, discount, total, and monthly labels |
| `hasPromotion`, `promotionLabel` | Public promotion state and message |
| `isVerified` | Whether Fanvue displays a verified badge |
| `isAiCreator`, `isSfwCreator` | Public creator classification flags |
| `isAmbassador` | Public ambassador flag |
| `followForFreeEnabled` | Whether public free following is enabled |
| `sourceQueries` | Discovery keywords matched to the record |
| `discoveredFrom` | `input` or `fanvue-discovery` |
| `scrapedAt` | UTC extraction timestamp |

Fields can be `null` when Fanvue does not expose a value on that public profile.

### Why use this Actor?

Fanvue pages contain useful profile data in application state rather than a simple table. This Actor handles discovery, detail extraction, normalization, duplicate removal, limits, filtering, and dataset delivery in one run.

It is designed for repeatable public-profile research:

1. provide known creators, enable discovery, or do both;
2. optionally filter current discovery by niche keywords;
3. receive one normalized row per accepted creator;
4. connect the dataset to your downstream workflow.

### Getting started

1. Open the Actor in Apify Console.
2. Keep **Include Fanvue discovery creators** enabled for discovery, or add handles/profile URLs.
3. Add keyword filters only if you want to narrow discovery results.
4. Set **Maximum creator profiles**.
5. Click **Start**.
6. Open the **Dataset** tab to preview or export results.

A small first run is recommended because Fanvue's promoted discovery selection changes over time.

### Input parameters

#### `handles`

An array of Fanvue handles. Both `fabrizioromano` and `@fabrizioromano` are accepted.

#### `profileUrls`

An array of public URLs in the form `https://www.fanvue.com/<handle>`.

#### `queries`

Optional 2–100 character keywords. A discovered record is kept when any keyword occurs in its handle, display name, or public bio. Explicit input profiles are still returned and include matching keywords in `sourceQueries`.

#### `includeDiscovery`

Defaults to `true`. It adds the creators currently promoted by Fanvue's public discovery page. Disable it for an explicit-profile-only run.

#### `maxItems`

The output limit, from 1 to 100. The Actor stops accepting records when it reaches the limit.

### Input examples

Discover up to five current public creators:

```json
{
  "includeDiscovery": true,
  "maxItems": 5
}
```

Extract a known public profile only:

```json
{
  "profileUrls": [{ "url": "https://www.fanvue.com/fabrizioromano" }],
  "includeDiscovery": false,
  "maxItems": 1
}
```

Refresh a keyword-filtered list:

```json
{
  "queries": ["AI"],
  "includeDiscovery": true,
  "maxItems": 10
}
```

### Output example

A current run returns records shaped like this (text shortened):

```json
{
  "handle": "fabrizioromano",
  "displayName": "Fabrizio Romano",
  "bio": "Breaking: I have joined Fanvue...",
  "profileUrl": "https://www.fanvue.com/fabrizioromano",
  "avatarUrl": "https://media.fanvue.com/public/.../images/...",
  "discoveryImageUrl": "https://media.fanvue.com/public/discovery-section/...webp",
  "aggregateLikes": 2174,
  "subscriptionPrice": 1499,
  "subscriptionDisplayPrice": "€12.94",
  "subscriptionBundles": [
    { "durationMonths": 3, "discountPercent": 20, "displayPrice": "€31.06", "monthlyDisplayPrice": "€10.35" }
  ],
  "hasPromotion": true,
  "isVerified": true,
  "isAiCreator": false,
  "isSfwCreator": true,
  "isAmbassador": true,
  "sourceQueries": [],
  "discoveredFrom": "input",
  "scrapedAt": "2025-01-15T12:00:00.000Z"
}
```

Image URLs and displayed prices are source values and may change between runs.

### How much does it cost to scrape Fanvue creator profiles?

The Actor uses pay-per-event pricing:

- **Start:** $0.005 once per run.
- **Creator profile:** tiered pricing; the current BRONZE rate is $0.0264 per saved profile and later tiers are cheaper.

At the BRONZE rate, 10 saved profiles cost about **$0.269** including the start, and 100 profiles cost about **$2.645**. Apify displays the applicable tier before your run. Failed, skipped, hidden, duplicate, and filtered-out profiles do not produce an item charge.

### Scheduling recurring list refreshes

Use an Apify Schedule to run the same input daily, weekly, or monthly. Connect the finished dataset to Google Sheets, Airtable, Make, Zapier, a webhook, or your own database.

For change tracking, store each run's dataset with its `scrapedAt` timestamp and compare by `handle`. That supports workflows such as:

- identify newly promoted creators;
- notice public bio or pricing-label changes;
- refresh profile images and verification flags;
- re-enrich an existing outreach list.

The Actor returns snapshots; it does not create alerts or historical diffs itself.

### Export and integrations

Every successful run writes to the default Apify dataset. You can:

- download JSON, CSV, Excel, XML, RSS, or Parquet;
- send data through webhooks;
- sync rows with Make or Zapier;
- load data into a warehouse;
- call the Actor from JavaScript, Python, cURL, or MCP.

### Use with the Apify API

Replace `YOUR_APIFY_TOKEN` with an Apify API token.

#### cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~fanvue-creator-profiles-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"includeDiscovery":true,"maxItems":5}'
```

#### JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/fanvue-creator-profiles-scraper').call({
  queries: ['AI'],
  includeDiscovery: true,
  maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token="YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/fanvue-creator-profiles-scraper").call(run_input={
    "handles": ["fabrizioromano"],
    "includeDiscovery": False,
    "maxItems": 1,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

### Use with MCP and AI assistants

Add the Actor to Claude Code:

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/fanvue-creator-profiles-scraper"
```

#### Claude Desktop, Cursor, and VS Code setup

Use this MCP configuration in Claude Desktop, Cursor, or VS Code:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/fanvue-creator-profiles-scraper"
    }
  }
}
```

Example prompts:

- “Discover five current Fanvue creators and summarize their public pricing labels.”
- “Extract these Fanvue handles and return verified and AI-creator flags.”
- “Refresh my AI creator research list and export the records as CSV.”

### Reliability and retries

The Actor reads anonymous public Fanvue server-rendered data. Transient network and server errors are retried up to three times with backoff. It detects missing application data instead of silently treating a challenge page as an empty result.

An invalid or unavailable explicit profile fails the run so input mistakes are visible. A volatile discovery candidate that disappears during the run is skipped with a warning.

### Limits and important behavior

- Discovery means Fanvue's **currently promoted public set**, not every creator on Fanvue.
- Keyword filtering applies to that current discovery set; it is not an exhaustive site search.
- Displayed currency depends on Fanvue's anonymous public response and can vary.
- Public fields, prices, flags, promotions, and images can change without notice.
- The Actor does not download media files.
- The Actor does not scrape posts, messages, subscribers, or private analytics.
- Output is capped at 100 records per run.

### Responsible use and legality

Use the Actor only for lawful purposes and public data you are entitled to process. Follow Fanvue's terms, applicable privacy and marketing laws, and your organization's retention rules.

A public profile does not automatically grant permission for unsolicited contact, profiling, redistribution, or sensitive inferences. Avoid collecting more data than your use case requires, respect opt-outs, and apply appropriate security and deletion controls.

### Troubleshooting

#### Why did a handle fail?

Check that it contains only letters, numbers, underscores, dots, or hyphens and that the public profile still exists. Profile URLs must use `fanvue.com/<handle>`.

#### Why did a keyword run return few or no records?

Keywords filter the current public discovery set. Try a broader keyword, remove the filter, or supply known handles directly.

#### Why is a price or image different from an earlier run?

The Actor returns Fanvue's current public value. Creators can change pricing and profile assets, promotions expire, and localized display labels can vary.

#### Why are there no posts in the output?

That is intentional. This Actor is scoped to public creator profile and discovery metadata and excludes gated posts and private media.

### FAQ

#### Does it require a Fanvue account?

No. The shipped workflow uses anonymous public pages.

#### Can it scrape private or subscriber-only content?

No. It intentionally excludes gated posts, private media, messages, and subscriber information.

#### Does it search every Fanvue creator?

No. It discovers the creators Fanvue currently promotes publicly and accepts exact handles/URLs for creators you already know.

#### Can I schedule it?

Yes. Use Apify Schedules and a downstream integration to refresh your list repeatedly.

#### Are filtered-out profiles charged?

No item event is emitted for a profile rejected by discovery keyword filters or public-profile eligibility checks.

### Related Automation Lab actors

- [Cross-platform Influencer Discovery](https://apify.com/automation-lab/cross-platform-influencer-discovery) for public YouTube and Bluesky creator discovery.
- [Link-in-Bio Contact Leads Scraper](https://apify.com/automation-lab/link-in-bio-contact-leads-scraper) for public Linktree and Beacons identity and link enrichment.
- [Patreon Public Creator & Posts Scraper](https://apify.com/automation-lab/patreon-public-creator-content) for public Patreon creator and public-post research.

Use those Actors when the buyer job spans another source. This Actor remains focused on public Fanvue creator profiles.

# Actor input Schema

## `handles` (type: `array`):

Fanvue handles to extract, with or without @.

## `profileUrls` (type: `array`):

Public Fanvue creator profile URLs to extract.

## `queries` (type: `array`):

Keep discovered creators whose public handle, display name, or bio contains any supplied keyword.

## `includeDiscovery` (type: `boolean`):

Add creators currently promoted on Fanvue's public discovery page.

## `maxItems` (type: `integer`):

Maximum number of public creator profile records to save.

## Actor input object example

```json
{
  "handles": [
    "fabrizioromano"
  ],
  "profileUrls": [
    {
      "url": "https://www.fanvue.com/fabrizioromano"
    }
  ],
  "includeDiscovery": true,
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Default dataset containing public creator identity, pricing labels, creator flags, likes, and discovery metadata.

# 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 = {
    "handles": [
        "fabrizioromano"
    ],
    "profileUrls": [
        {
            "url": "https://www.fanvue.com/fabrizioromano"
        }
    ],
    "includeDiscovery": true,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/fanvue-creator-profiles-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 = {
    "handles": ["fabrizioromano"],
    "profileUrls": [{ "url": "https://www.fanvue.com/fabrizioromano" }],
    "includeDiscovery": True,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/fanvue-creator-profiles-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 '{
  "handles": [
    "fabrizioromano"
  ],
  "profileUrls": [
    {
      "url": "https://www.fanvue.com/fabrizioromano"
    }
  ],
  "includeDiscovery": true,
  "maxItems": 10
}' |
apify call automation-lab/fanvue-creator-profiles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/fanvue-creator-profiles-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/rf3QdDpofNaX0Udhr/builds/C7mAq1l71frTxL6xc/openapi.json
