{
  "openapi": "3.0.1",
  "info": {
    "title": "OnlyFans Viral Content Finder: TikTok & Reels Trends",
    "description": "Find the TikToks and Instagram Reels of OnlyFans creators that are going viral right now, by niche or for your own list: outlier score, plays per hour, velocity since your last run, breakout flag, trending sounds and hashtags. Pay per result, no subscription, no login.",
    "version": "0.1",
    "x-build-id": "T12vSYTBJ2YTjRcmD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~onlyfans-viral-content-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-onlyfans-viral-content-finder",
        "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-viral-content-finder/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-onlyfans-viral-content-finder",
        "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-viral-content-finder/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-onlyfans-viral-content-finder",
        "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": {
          "niches": {
            "title": "Niches",
            "type": "array",
            "description": "Keywords that describe the creators to watch, one per line (cosplay, fitness, goth, latina, gamer girl...). Each finds up to Max creators per niche OnlyFans creators whose profile matches, then scans their TikTok and Instagram accounts.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "creators": {
            "title": "Creators to watch",
            "type": "array",
            "description": "Your own list (roster, competitors), one per line: an OnlyFans username or link (its TikTok and Instagram are looked up), or an Instagram or TikTok profile link (instagram.com/name, tiktok.com/@name, or ig:name / tt:name). Use it with or instead of niches.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "platforms": {
            "title": "Platforms",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Which of the creators' accounts to scan.",
            "items": {
              "type": "string",
              "enum": [
                "tiktok",
                "instagram"
              ],
              "enumTitles": [
                "TikTok",
                "Instagram Reels"
              ]
            },
            "default": [
              "tiktok",
              "instagram"
            ]
          },
          "maxCreatorsPerNiche": {
            "title": "Max creators per niche",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "OnlyFans creators to watch per niche. Each one's TikTok and Instagram are scanned (most creators list one or both). The niche's creator list is kept for 7 days, so daily runs only pay for new creators.",
            "default": 100
          },
          "lookbackDays": {
            "title": "Posted in the last (days)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Only videos posted this recently are delivered. The creators' older posts still set their usual (median) plays. 3 days keeps the feed fresh; up to 30 for a slower look back.",
            "default": 3
          },
          "minPlays": {
            "title": "Min plays",
            "minimum": 0,
            "type": "integer",
            "description": "Videos with fewer plays are never delivered, however fast they grow.",
            "default": 5000
          },
          "minOutlierScore": {
            "title": "Min outlier score",
            "minimum": 0,
            "type": "number",
            "description": "Outlier score = the video's plays divided by the creator's median plays. 2 = twice their usual. A video is delivered when it reaches this score, or when it breaks out (gains plays at least 3x faster than the creator's usual pace at its age).",
            "default": 2
          },
          "onlyNew": {
            "title": "Only new videos (skip refreshes)",
            "type": "boolean",
            "description": "Off (default): every viral video in the window is delivered on each run, also one an earlier run of the same input delivered, with its plays now and the change since (isRepeat, previousPlays, playsSinceLastRun, velocity); each delivered video is a result. On: leave out the videos an earlier run of the same input already delivered (kept 30 days).",
            "default": false
          },
          "expandSimilar": {
            "title": "Grow the creator list from similar accounts",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "How many of the creators' accounts to expand this run, per platform: on Instagram the accounts Instagram suggests next to each one, on TikTok the accounts several of the creators follow (co-follows, ranked by how many follow them against their size, at least 10k followers). They are checked, and those that are an OnlyFans creator's own account (an onlyfans.com link in the bio or on its link page, confirmed by OnlyFans) join the creator list, are scanned in the same run and are kept for the next runs, which expand from them in turn. Each account is expanded once a week. 0 = off. New creators are charged like any other creator added to the list.",
            "default": 0
          },
          "historyStore": {
            "title": "History store name",
            "type": "string",
            "description": "Optional. The named key-value store in your account that keeps what the next run compares with (plays per video, the creator list, unreadable handles). Empty: one store per input, created by the Actor (of-radar-...). Use the same name in two tasks to share one history."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}