# Fanvue Creators Scraper (`maximedupre/fanvue-creators`) Actor

Find public Fanvue creators from Fanvue's current public discovery set or look up known handles and profile URLs. Get identity, bios, subscription plans, promotions, content counts, flags, image links, and profile links in one dataset. No Fanvue login is needed.

- **URL**: https://apify.com/maximedupre/fanvue-creators.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.50 / 1,000 creator profiles

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

### 🔎 Find Fanvue creator profiles

For creator researchers, talent teams, marketers, and analysts, this Actor finds public Fanvue creator profiles and returns identity, bios, subscription plans, promotions, public counts, status flags, image links, and source details in a structured dataset. Use it to build a shortlist, compare public profiles, or check a known profile without opening each page by hand. It uses public Fanvue pages and does not need a Fanvue login.

- Use **[Fanvue Creator Discovery](https://apify.com/maximedupre/fanvue-creators/examples/fanvue-creator-discovery)** to collect creators from Fanvue's current public discovery set.
- Use **[Fanvue Creator Search](https://apify.com/maximedupre/fanvue-creators/examples/fanvue-creator-search)** to filter that discovery set by one keyword in a handle, display name, or bio.
- Use **[Fanvue Profile Lookup](https://apify.com/maximedupre/fanvue-creators/examples/fanvue-profile-lookup)** to read a known public creator profile by handle.
- Use **[Fanvue Profile URL Scraper](https://apify.com/maximedupre/fanvue-creators/examples/fanvue-profile-url-scraper)** to read a public profile from its full URL.
- Use **[Fanvue Public Profiles](https://apify.com/maximedupre/fanvue-creators/examples/fanvue-public-profiles)** to build a public creator profile list with plans, promotions, and flags.

#### 📋 Public Fanvue creator data

**What each row contains**

The default dataset saves one row for each public creator profile read successfully. A row can include the public creator ID, handle, display name, canonical profile URL, bio, gender, location, avatar, banner, and discovery image. It can also include subscription plans, free-follow status, free-trial terms, promotions, total likes, content counts, creator flags, public status, discovery source, a matching discovery keyword, and the observation time.

Optional values may be absent when Fanvue does not show them. Image fields are public links. The Actor returns profile metadata and image links only. It does not collect gated posts or private media.

#### ▶️ Find profiles with a handle, URL, or keyword

**Run flow**

Choose **Handles or profile URLs** to read a known public profile, or choose **Public discovery** to use Fanvue's current promoted public discovery set. In profile mode, add a public handle or full profile URL. In discovery mode, leave the keyword blank for the current set, or enter one word or phrase to filter the handle, display name, or bio. Use a separate run for each discovery search.

Fanvue's public discovery set is not an exhaustive search of every creator. A known handle or URL keeps the run focused when you already know which profile to check. After the run, open the dataset link in the Output panel.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `discoveryMethod` | string | Required. Choose `profiles` for Handles or profile URLs, or `discovery` for Public discovery. |
| `profiles` | array of strings | Public Fanvue handles or full profile URLs to read. Used when `discoveryMethod` is `profiles`. |
| `profiles[]` | string | One public handle, such as `fabrizioromano`, or one full public profile URL. |
| `discoveryKeyword` | string | Optional one word or phrase. Fanvue checks the public handle, display name, and bio. Leave it blank to return the current public discovery set. Used when `discoveryMethod` is `discovery`. |

**Successful input**

This is the smallest successful direct-profile input from a current-beta run:

```json
{
  "discoveryMethod": "profiles",
  "profiles": [
    "fabrizioromano"
  ]
}
```

#### 🧾 Output

**Dataset link**

The Output panel provides a link to the default dataset. All successful rows use the same profile shape. Fields that Fanvue does not expose may be absent or null.

**Profile row fields**

| Field | Type | What it does |
| --- | --- | --- |
| `creatorId` | string | Public Fanvue creator ID when shown. |
| `handle` | string | Public Fanvue handle for the creator. |
| `displayName` | string | Public name shown on the profile. |
| `profileUrl` | string (URL) | Canonical public link to the creator profile. |
| `bio` | string | Public biography text when shown. |
| `gender` | string | Public gender value when Fanvue shows it. |
| `location` | string | Public location value when Fanvue returns it. |
| `avatarUrl` | string (URL) | Public avatar image link when available. |
| `bannerUrl` | string (URL) | Public banner image link when available. |
| `discoveryImageUrl` | string (URL) | Image link shown for the creator in public discovery when available. |
| `subscriptionPlans` | array of objects | Public monthly and multi-month subscription plans when shown. |
| `subscriptionPlans[].months` | integer | Number of months covered by the plan. |
| `subscriptionPlans[].price` | number | Plan price in the listed currency. |
| `subscriptionPlans[].currency` | string | Currency used for the plan price. |
| `subscriptionPlans[].discountPercent` | number | Public discount for the plan when shown. |
| `freeFollowAvailable` | boolean | Whether the creator allows public free following. |
| `freeTrial` | object | Public free-trial terms when shown. |
| `freeTrial.available` | boolean | Whether a public free trial is available. |
| `freeTrial.durationDays` | integer | Number of free-trial days when shown. |
| `promotions` | array of objects | Public promotions shown on the profile. |
| `promotions[].offerText` | string | Public text that describes the offer when shown. |
| `promotions[].discountPercent` | number | Public discount for the promotion when shown. |
| `promotions[].endsAt` | date-time string | Time when the promotion ends when shown. |
| `promotions[].maxUses` | integer | Maximum number of uses for the promotion when shown. |
| `totalLikes` | integer | Aggregate public likes when shown. |
| `contentCounts` | array of objects | Public counts grouped by content type when shown. |
| `contentCounts[].contentType` | string | Name of the content type. |
| `contentCounts[].count` | integer | Public number of items of that content type. |
| `isCreator` | boolean | Whether Fanvue classifies the profile as a creator. |
| `isVerified` | boolean | Whether Fanvue shows a verified badge. |
| `isAiCreator` | boolean | Whether Fanvue marks the profile as an AI creator. |
| `isSfwCreator` | boolean | Whether Fanvue marks the profile as a safe-for-work creator. |
| `isAmbassador` | boolean | Whether Fanvue marks the creator as an ambassador. |
| `hasIntroVideo` | boolean | Whether the profile has a public intro video. |
| `hasAiVoice` | boolean | Whether Fanvue marks the creator as using an AI voice. |
| `isPublic` | boolean | Whether Fanvue marks the profile as public. |
| `isSuspended` | boolean | Whether Fanvue marks the profile as suspended. |
| `discoveredFrom` | string | Whether the row came from `input` or `fanvue-discovery`. |
| `discoveryKeyword` | string | Discovery keyword that caused the row to be saved when applicable. |
| `observedAt` | date-time string | UTC time when the public profile snapshot was observed. |

**Genuine current-beta row**

This complete row came from the successful current-beta run that looked up `fabrizioromano` by handle.

```json
{
  "handle": "fabrizioromano",
  "displayName": "Fabrizio Romano",
  "profileUrl": "https://www.fanvue.com/fabrizioromano",
  "observedAt": "2026-09-01T15:33:33.821Z",
  "creatorId": "11855a8b-9f49-4144-8b8f-e2563dc8f4ab",
  "bio": "🚨BREAKING: I have joined Fanvue 💚\n\nSubscribe to access my exclusive weekly transfer show, rumours and the full behind scenes of my life \n\nHERE WE GO! 💣🔥",
  "avatarUrl": "https://media.fanvue.com/public/11855a8b-9f49-4144-8b8f-e2563dc8f4ab/images/ce431759-6fd5-4307-bdf0-aac119c47a0b",
  "bannerUrl": "https://media.fanvue.com/public/11855a8b-9f49-4144-8b8f-e2563dc8f4ab/images/007a8efb-411e-40c7-a6d8-a74da26ecec3",
  "subscriptionPlans": [
    {
      "months": 1,
      "price": 14.99,
      "currency": "USD"
    },
    {
      "months": 3,
      "price": 35.98,
      "currency": "USD",
      "discountPercent": 20
    },
    {
      "months": 6,
      "price": 58.46,
      "currency": "USD",
      "discountPercent": 35
    },
    {
      "months": 12,
      "price": 89.94,
      "currency": "USD",
      "discountPercent": 50
    }
  ],
  "freeFollowAvailable": false,
  "freeTrial": {
    "available": true,
    "durationDays": 7
  },
  "promotions": [
    {
      "offerText": "HERE WE GO!!! 7 Days for FREE friends 💣"
    }
  ],
  "totalLikes": 2176,
  "contentCounts": [
    {
      "contentType": "image",
      "count": 39
    },
    {
      "contentType": "video",
      "count": 17
    },
    {
      "contentType": "audio",
      "count": 0
    },
    {
      "contentType": "document",
      "count": 0
    },
    {
      "contentType": "post",
      "count": 56
    },
    {
      "contentType": "payToViewPost",
      "count": 0
    },
    {
      "contentType": "poll",
      "count": 0
    }
  ],
  "isCreator": true,
  "isVerified": true,
  "isAiCreator": false,
  "isSfwCreator": true,
  "isAmbassador": true,
  "hasIntroVideo": true,
  "hasAiVoice": false,
  "isPublic": true,
  "isSuspended": false,
  "discoveredFrom": "input"
}
```

#### 💳 Pricing

**How charges work**

This Actor uses pay-per-event pricing. The Creator Profile charge covers one public creator profile saved to your dataset. The rate depends on your Apify plan and is shown on the Store pricing page.

#### 🔌 Integrations

**Dataset access**

Open the default dataset link in the Output panel to review the rows. You can also use the public dataset through the Apify API or export it from Apify.

See the Apify Actor walkthrough:

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What does Public discovery include?

It uses Fanvue's currently promoted public discovery set. It is not an exhaustive search of every Fanvue creator.

##### Can I look up a known creator?

Yes. Choose **Handles or profile URLs** and enter a public handle or full public Fanvue profile URL.

##### Can I use more than one discovery keyword in a run?

No. Enter one word or phrase per run. Use a separate run for each discovery search.

##### Does the Actor need a Fanvue login?

No. It uses public Fanvue access and does not ask for a Fanvue login or credentials.

##### Does it collect posts or private media?

No. It returns public profile metadata and image links. It does not collect gated, private, or paywalled posts or media, messages, subscriber information, account data, or private analytics.

##### Why is a field missing from a row?

Fanvue may not expose every public value on every profile. Optional fields can be absent or null, and the Actor does not guess them.

##### Why can a price or promotion differ on a later run?

The Actor returns the public profile values observed at run time. Creators can change prices, plans, and promotions, and displayed values can vary.

### 📝 Changelog

**0.0: Initial release**

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~fanvue-creators/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Fansly Profile Scraper](https://apify.com/maximedupre/fansly-scraper): Find and enrich public Fansly creator profiles with audience, content, and subscription data.
- [Patreon Scraper](https://apify.com/maximedupre/patreon-scraper): Compare public creator pages, membership tiers, audience counts, and posts on Patreon.
- [Influencer Scraper](https://apify.com/maximedupre/influencer-scraper): Build public TikTok, Instagram, and YouTube creator lists with profile metrics and recent posts.
- [Instagram Profile Stats Scraper](https://apify.com/maximedupre/instagram-profile-stats-scraper): Check known public Instagram profiles, counts, flags, and recent post previews.
- [TikTok Creator Analytics Scraper](https://apify.com/maximedupre/tiktok-creator-analytics): Review public TikTok creator audience totals and recent post metrics.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `discoveryMethod` (type: `string`):

Choose profile lookup or Fanvue discovery. Use a separate run for each discovery keyword.

## `profiles` (type: `array`):

Enter one or more public Fanvue handles or full profile URLs. Use a handle like `creator_name` or a link like `https://fanvue.com/creator_name`. This field is used with Handles or profile URLs.

## `discoveryKeyword` (type: `string`):

Optionally enter one word or phrase. Fanvue checks the public handle, display name, and bio. Leave it blank to return the current public discovery set. This field is used with Public discovery.

## Actor input object example

```json
{
  "discoveryMethod": "profiles",
  "profiles": [
    "creator_name"
  ],
  "discoveryKeyword": "fitness"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset with one row for each public creator profile read successfully.

# 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 = {
    "discoveryMethod": "profiles",
    "profiles": [
        "fabrizioromano"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/fanvue-creators").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 = {
    "discoveryMethod": "profiles",
    "profiles": ["fabrizioromano"],
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/fanvue-creators").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 '{
  "discoveryMethod": "profiles",
  "profiles": [
    "fabrizioromano"
  ]
}' |
apify call maximedupre/fanvue-creators --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/fanvue-creators"
        }
    }
}

```

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/cg0qRc2Kz7TYiYVDW/builds/XsxqgqOTz6ycnbZWG/openapi.json
