{
  "openapi": "3.0.1",
  "info": {
    "title": "OnlyFans Finder Pro: Scraper by Look or City",
    "description": "OnlyFans finder and scraper: find creators by appearance, niche, style or location. Search any look, interest or city as a keyword (redhead, tattoos, miami) or browse new and top profiles. Get creator data with pricing, engagement stats, bio, and the Instagram, Twitter/X and TikTok links they list.",
    "version": "1.0",
    "x-build-id": "d7wo0FEu9wwcZtu4I"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~onlyfans-finder-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-onlyfans-finder-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/deepmine~onlyfans-finder-pro/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-onlyfans-finder-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/deepmine~onlyfans-finder-pro/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-onlyfans-finder-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "🔍 Look, niche or place",
            "type": "array",
            "description": "What the creators should match, one per line: appearance (\"redhead\"), niche (\"cosplay\"), style or place (\"miami\"). Each is its own search; a creator found twice comes once.",
            "default": [
              "redhead",
              "miami"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "📊 Max profiles per keyword",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop each keyword after this many profiles (with New or Top: for the whole run). You pay per profile delivered.",
            "default": 100
          },
          "searchMode": {
            "title": "🎯 Search type",
            "enum": [
              "query",
              "new",
              "top"
            ],
            "type": "string",
            "description": "Keywords is the usual search. New and Top browse OnlyFans' own lists and don't use keywords.",
            "default": "query"
          },
          "requireInstagram": {
            "title": "📸 Only creators with Instagram",
            "type": "boolean",
            "description": "Keep only profiles that link an Instagram account.",
            "default": false
          },
          "freeOnly": {
            "title": "🆓 Only free profiles",
            "type": "boolean",
            "description": "Keep only profiles with a free subscription.",
            "default": false
          },
          "minSubscribers": {
            "title": "👥 Min subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Empty = no minimum. Hidden subscriber counts count as 0."
          },
          "maxSubscribers": {
            "title": "👥 Max subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Empty = no limit. Profiles that hide their subscriber count count as 0, so they pass any maximum."
          },
          "maxLikes": {
            "title": "❤️ Max likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only profiles with fewer likes, to find smaller or new creators, e.g. 100000. Empty = no limit."
          },
          "country": {
            "title": "🌎 Country code",
            "type": "string",
            "description": "Two-letter country code, e.g. US, GB, DE or BR. The search index filters its whole catalogue by the rough location it holds for each creator, before any result is read. Rows don't carry a verified country; each row names the filters it matched in matchedSourceFilters. Use either Country or City."
          },
          "city": {
            "title": "📍 City, region or ZIP",
            "type": "string",
            "description": "A place such as miami, los angeles or 90210. The index keeps creators it places near it: a rough location, not a verified residence. Use either Country or City."
          },
          "cityRadiusKm": {
            "title": "📏 Radius around the city",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Optional distance around City. Empty = the index's own default area."
          },
          "gender": {
            "title": "⚧️ Gender",
            "enum": [
              "any",
              "female",
              "male"
            ],
            "type": "string",
            "description": "The search index's own gender label for each creator (not checked by this Actor). Most of the index is women, so Women changes little; Men narrows the results to male creators.",
            "default": "any"
          },
          "minAge": {
            "title": "🎂 Min age",
            "minimum": 18,
            "maximum": 99,
            "type": "integer",
            "description": "The age the search index lists for a creator, as the creator publishes it; not verified. Empty = no limit."
          },
          "maxAge": {
            "title": "🎂 Max age",
            "minimum": 18,
            "maximum": 99,
            "type": "integer",
            "description": "Upper end of the index's listed age. Empty = no limit."
          },
          "minPrice": {
            "title": "💵 Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep creators whose subscription costs at least this much. Checked on the price each row shows, after any promotion: a page on a free-trial promotion shows Free and is left out. Empty = no limit."
          },
          "maxPrice": {
            "title": "💵 Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep creators whose shown subscription price is at most this much (0 = free only). Empty = no limit."
          },
          "newOnly": {
            "title": "🆕 Only new creators",
            "type": "boolean",
            "description": "Keep creators the search index lists as joined in the last 30 days.",
            "default": false
          },
          "requireTwitter": {
            "title": "🐦 Only creators with X (Twitter)",
            "type": "boolean",
            "description": "Keep only creators whose OnlyFans listing links an X (Twitter) account.",
            "default": false
          },
          "requireTikTok": {
            "title": "🎵 Only creators with TikTok",
            "type": "boolean",
            "description": "Keep only creators whose OnlyFans listing links a TikTok account.",
            "default": false
          },
          "minLikes": {
            "title": "❤️ Min likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only profiles with at least this many likes, to skip inactive pages. Empty = no limit."
          },
          "sortBy": {
            "title": "🔃 Sort by",
            "enum": [
              "relevance",
              "likes",
              "subscribers",
              "photos",
              "videos",
              "score",
              "name"
            ],
            "type": "string",
            "description": "Order of the profiles in every dataset of the run. Relevance keeps OnlyFans' own order. It orders the profiles this run collected (up to the maximum per keyword), not the whole search index.",
            "default": "likes"
          },
          "sortOrder": {
            "title": "↕️ Order",
            "enum": [
              "descending",
              "ascending"
            ],
            "type": "string",
            "description": "Descending shows the highest values first (or Z-A for Name); ascending shows the lowest values first (or A-Z for Name).",
            "default": "descending"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}