# OnlyFans Search (`deepmine/onlyfans-search`) Actor

OnlyFans search engine: search creators by keyword, niche or topic and export the matching profiles with price, likes, photo and video counts, and Instagram, X and TikTok links. CSV, JSON or API. No login.

- **URL**: https://apify.com/deepmine/onlyfans-search.md
- **Developed by:** [DeepMine](https://apify.com/deepmine) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## OnlyFans Search: Find Creators by Keyword 🔎

**OnlyFans Search** is a search engine for OnlyFans creators. Type a niche, an interest or a topic (`cosplay`, `gamer girl`, `yoga`) and get the matching profiles back as a spreadsheet: username, profile link, subscription price, likes, photo and video counts, and any Instagram, X, TikTok or Fansly links the creator lists. Download it as CSV, Excel or JSON, or call it from your own code through the Apify API and run it on a schedule. No OnlyFans account, login or cookies. **$5 per 1,000 results**, so the prefilled search (`cosplay` + `gamer girl`, 50 each, up to 100 results) costs at most about $0.50.

What a search returns (real results for `cosplay` and `gamer girl`, 2026-09-26):

| search term | username | price | likes | Instagram | X |
|---|---|---|---|---|---|
| cosplay | ericafett | Free | 986,894 | erica.fett | ericafett |
| gamer girl | laurenlouise228 | $3.50 | 360,259 | laurenlouise\_model | laurenlouise228 |

> **Unofficial product:** This Actor is independently developed and is not affiliated with, endorsed by, or sponsored by OnlyFans.

### Why search OnlyFans this way? 🤔

Searching OnlyFans itself by niche or topic is limited, and you can't export anything you find. This Actor fills that gap:

- **Search by any term:** `fitness`, `cosplay`, `redhead`, `miami`, `gamer girl`, and so on
- **Run many searches at once:** each term is searched separately, then merged into one deduplicated list
- **Browse without a term:** pull the newest creators or the top-ranked creators
- **Narrow the results:** keep only free profiles, profiles with Instagram, or a likes ceiling
- **Sort your way:** by likes, photos, videos, score, name, or original relevance
- **Export anywhere:** CSV, Excel, JSON, or straight into your own tools through the API

### Who uses OnlyFans Search 👥

- **Agency scouts and talent managers** searching for creators in a specific niche or city
- **Marketers and promoters** looking for creators to partner with on shoutouts or cross-promotion
- **Creators** checking what others in their niche charge and how big they are before setting a price
- **Researchers and analysts** measuring how crowded a niche is, or how free vs. paid pages split
- **Automation builders** who need an OnlyFans search step inside a Make, n8n, or Zapier workflow

### Example searches 💡

| You want to… | Try this |
|---|---|
| Find fitness creators with an Instagram you can contact | Keyword search, `fitness`, `gym`, **Only creators with Instagram** on |
| See what free pages exist in a niche | Keyword search, `cosplay`, **Only free profiles** on |
| Benchmark prices in a city | Keyword search, `miami`, sort by **Likes** |
| Spot small, growing creators | Keyword search, your niche, **Max likes** `2000` |
| Check who just joined the platform | Search type **Newest creators** |
| Get a list of the biggest names | Search type **Top creators** |

### How to search OnlyFans with this Actor 🚀

1. Open the **Input** tab and leave **Search type** on **Keyword search**.
2. Add one or more **Search terms**, one per line.
3. Set **Max results per search term** (start with 50–100 for a quick look).
4. Optionally turn on filters under **Narrow your search** and pick a result order.
5. Click **Start**, then open the results as a table or export them.

A minimal input looks like this:

```json
{
  "searchMode": "query",
  "keywords": ["cosplay", "gamer girl"],
  "maxResults": 50
}
```

A narrower search for small creators who have Instagram:

```json
{
  "searchMode": "query",
  "keywords": ["yoga", "pilates"],
  "maxResults": 200,
  "requireInstagram": true,
  "maxLikes": 2000,
  "sortBy": "likes",
  "sortOrder": "ascending"
}
```

### Input reference ⚙️

| Field | What it does |
|---|---|
| `searchMode` | `query` = keyword search, `new` = newest creators, `top` = top-ranked creators |
| `keywords` | Search terms for keyword search; each one is searched separately |
| `maxResults` | Profile cap per search term (or in total for `new` / `top`), 1–5000 |
| `requireInstagram` | Keep only profiles that list an Instagram account |
| `freeOnly` | Keep only free-subscription profiles |
| `minSubscribers` / `maxSubscribers` | Subscriber range to keep |
| `maxLikes` | Skip profiles with more likes than this |
| `sortBy` | `relevance`, `likes`, `subscribers`, `photos`, `videos`, `score`, or `name` (default `likes`) |
| `sortOrder` | `descending` (default) or `ascending` |

Profiles that are missing the value you sort by always go to the end.

### What each search result contains 📦

| Field | Example / meaning |
|---|---|
| `username` | OnlyFans username |
| `name` | Display name |
| `profileUrl` | `https://onlyfans.com/<username>` |
| `avatar` | Profile photo URL |
| `bio` / `bioSnippet` | Full bio text and a short preview |
| `price` / `isFree` | `Free` or `$9.99`, plus a true/false free flag |
| `likes` / `subscribers` | Total likes and subscriber count (subscribers is `0` when the creator hides it) |
| `photos` / `videos` | Content counts |
| `lastSeen` | Latest activity status, when shown |
| `score` | Ranking score, when available |
| `instagram`, `instagramUrl`, `instagramUsername` | All Instagram links, the first one as a URL, and the bare handle |
| `twitter`, `tiktok`, `fansly`, `pornhub` | Lists of linked profile URLs |
| `keywords` | Every search term in this run that returned the profile |
| `scrapedAt` | When the profile was collected (ISO timestamp) |

Excerpt of a real record (bio, avatar and name omitted):

```json
{
  "username": "ericafett",
  "profileUrl": "https://onlyfans.com/ericafett",
  "price": "Free",
  "isFree": true,
  "likes": 986894,
  "photos": 940,
  "videos": 12,
  "instagramUrl": "https://instagram.com/erica.fett",
  "instagramUsername": "erica.fett",
  "twitter": ["https://x.com/ericafett"],
  "tiktok": ["https://tiktok.com/@erica.fett"],
  "fansly": null,
  "keywords": ["cosplay"],
  "scrapedAt": "2026-09-26T19:32:43.701380Z"
}
```

#### Three result tables

Every run fills three datasets in the same sort order, so you can open the one that fits the job:

- **Search Results** (default): every profile, with a *Search Results* view and a *Profile Stats* view
- **With Instagram**: only profiles that list an Instagram account, with the Instagram link next to the OnlyFans link
- **With Social Links**: only profiles that list at least one social account, with every platform in its own column

### Use it from your own tools 🔌

This Actor gives you search results as data you can plug into other tools, not just an app you click through by hand. Anything you can do in the Console you can also automate:

- **Apify API:** start a search and read the results over HTTP from any language
- **Python:** call it with the `apify-client` package (example below)
- **Make, n8n, and Zapier:** use the Apify integrations to send new search results to Google Sheets, Airtable, a CRM, Slack, or email
- **Scheduler:** save your input as a task and rerun the same searches daily or weekly
- **Webhooks:** ping your own endpoint when a search finishes

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("deepmine/onlyfans-search").call(
    run_input={"searchMode": "query", "keywords": ["fitness"], "maxResults": 100}
)
for creator in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(creator["username"], creator["price"], creator["likes"])
```

### Related tools 🧭

- Have an Instagram or TikTok handle and want the matching OnlyFans page? Use [OnlyFans Reverse Lookup](https://apify.com/deepmine/onlyfans-reverse-lookup).
- Want 60+ fields (promotions, subscription bundles, and more) for creators you found here? Pass their usernames to [OnlyFans Profile API](https://apify.com/deepmine/onlyfans-profile-scraper-pro).

### Tips for better search results ✅

- **Short terms beat long phrases.** `latina` usually returns more than `latina model from texas`.
- **Use several related terms** (`gym`, `fitness`, `workout`) to cover a niche; overlapping profiles are merged and the `keywords` field shows which terms found them.
- **Sort ascending by likes** to put the smallest creators first. Likes is the most reliable size signal because many creators hide their subscriber count.
- **Keep runs small while you test**, then raise `maxResults` once the results look right.

### FAQ ❓

#### How do I search for creators on OnlyFans?

Enter one or more search terms in this Actor and click Start. You'll get a table of matching creator profiles, with links, prices, stats, and social accounts, that you can export or send to other tools.

#### Can I search OnlyFans by location or city?

Yes. Use the city or area as a search term, for example `miami` or `london`. Results are the creators who match that term, so how well it works depends on how creators describe themselves.

#### Can I search OnlyFans without an account?

Yes. You don't need an OnlyFans account, login, or cookies. The Actor only returns publicly listed creator profile information.

#### Can I find free OnlyFans pages only?

Yes. Turn on **Only free profiles** (`freeOnly: true`) and only profiles with a free subscription are kept.

#### Can I search for more than one keyword in one run?

Yes. Add as many search terms as you like. Each term is searched on its own, duplicates are removed, and every profile lists all the terms that found it.

#### How many results can one search return?

Up to 5,000 profiles per search term. You may get fewer when a term has fewer matching creators, when filters remove some, or when your run spending limit is reached.

#### Does it find a creator's Instagram, X, or TikTok?

Yes, when the creator lists them. Instagram, X (Twitter), TikTok, Fansly, and Pornhub links are collected automatically, and profiles that list none still appear in the main results.

#### How much does an OnlyFans search cost?

You pay per result returned. The current price is shown on the Pricing tab, and you can set a maximum spend per run. The Actor stops collecting once that limit is reached.

#### Can I run the same search every day?

Yes. Save your input as an Apify task and attach a schedule. Each run returns a fresh list you can compare with earlier ones or send to Sheets, a CRM, or a webhook.

#### Is it legal to search OnlyFans with this tool?

The Actor only collects publicly listed profile information. You are responsible for how you use the data. Follow applicable privacy and data-protection laws (such as GDPR) and platform terms, and don't use the results for spam or harassment.

# Actor input Schema

## `searchMode` (type: `string`):

Keyword search: find creators matching your search terms. Newest creators: recently joined profiles. Top creators: highest-ranked profiles.

## `keywords` (type: `array`):

Enter one search term per line, such as a niche, look, interest, or city. Each term runs as its own search and the results are merged without duplicates.

## `maxResults` (type: `integer`):

Maximum profiles to return for each search term (or in total for Newest and Top creators). You may get fewer when a search has fewer matches or your run spending limit is lower.

## `requireInstagram` (type: `boolean`):

Keep only profiles that list an Instagram account.

## `freeOnly` (type: `boolean`):

Keep only profiles with a free subscription.

## `minSubscribers` (type: `integer`):

Skip profiles with fewer subscribers than this. Leave blank for no minimum.

## `maxSubscribers` (type: `integer`):

Skip profiles with more subscribers than this. Leave blank for no limit.

## `maxLikes` (type: `integer`):

Skip profiles with more likes than this. Handy for finding smaller or newer creators. Leave blank for no limit.

## `sortBy` (type: `string`):

Choose how profiles are ordered in every output dataset. Relevance keeps the original search ranking.

## `sortOrder` (type: `string`):

Descending shows the highest values first (or Z-A for Name); ascending shows the lowest values first (or A-Z for Name).

## Actor input object example

```json
{
  "searchMode": "query",
  "keywords": [
    "cosplay",
    "gamer girl"
  ],
  "maxResults": 50,
  "requireInstagram": false,
  "freeOnly": false,
  "sortBy": "likes",
  "sortOrder": "descending"
}
```

# Actor output Schema

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

No description

## `igOutreachUrl` (type: `string`):

No description

## `withSocialsUrl` (type: `string`):

No description

# 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 = {
    "keywords": [
        "cosplay",
        "gamer girl"
    ],
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/onlyfans-search").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 = {
    "keywords": [
        "cosplay",
        "gamer girl",
    ],
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/onlyfans-search").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 '{
  "keywords": [
    "cosplay",
    "gamer girl"
  ],
  "maxResults": 50
}' |
apify call deepmine/onlyfans-search --silent --output-dataset

```

## MCP server setup

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

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/GZCPBnQZbc6T5Eeau/builds/A502ioEnOkds6b7GJ/openapi.json
