{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Trending Creator Scraper With Bios & Badges",
    "description": "TikTok Trending Creator Scraper: Discover trending creators and extract usernames, bios, profile URLs, follower counts, verification badges, videos, views, likes, and engagement metrics. Find influencers, analyze performance, track trends, and build targeted TikTok datasets.",
    "version": "0.1",
    "x-build-id": "GYQ9L07XYuJ4XhhzP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~tiktok-trending-creator-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-tiktok-trending-creator-scraper",
        "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/scrapier~tiktok-trending-creator-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-tiktok-trending-creator-scraper",
        "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/scrapier~tiktok-trending-creator-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-tiktok-trending-creator-scraper",
        "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",
        "required": [
          "countryCode",
          "sortBy"
        ],
        "properties": {
          "fetchProfiles": {
            "title": "🪪 Read each creator's profile page",
            "type": "boolean",
            "description": "On (default) every creator gets one extra request and the whole bio + badge block is filled. Off returns board-only rows, and every bio/badge field is null.",
            "default": true
          },
          "maxVideosPerCreator": {
            "title": "🎬 Recent videos to attach per creator",
            "minimum": 0,
            "maximum": 12,
            "type": "integer",
            "description": "Fills the videos array with real per-video views, likes and timestamps. Each video costs one extra request. Set 0 to skip videos entirely and keep the run short.",
            "default": 3
          },
          "pacingSeconds": {
            "title": "⏱️ Gap between profile requests (seconds)",
            "minimum": 0,
            "maximum": 15,
            "type": "number",
            "description": "TikTok answers HTTP 503 when profile pages are hammered. 2.5 seconds measured stable; lower it and expect blanks in the bio block.",
            "default": 2.5
          },
          "verifiedOnly": {
            "title": "✅ Verified accounts only",
            "type": "boolean",
            "description": "Keeps only creators whose profile carries the blue verified badge.",
            "default": false
          },
          "businessAccountsOnly": {
            "title": "🏢 Business / commerce accounts only",
            "type": "boolean",
            "description": "Keeps only creators flagged as a commerce account or carrying a business category (for example \"Media & Entertainment\").",
            "default": false
          },
          "skipPrivateAccounts": {
            "title": "🔒 Drop private accounts",
            "type": "boolean",
            "description": "Removes creators whose profile is set to private.",
            "default": false
          },
          "requireBioLink": {
            "title": "🔗 Only creators with a link in bio",
            "type": "boolean",
            "description": "Keeps only creators whose bio carries a clickable link. Not every trending creator has one.",
            "default": false
          },
          "bioKeywords": {
            "title": "🔤 Bio must contain one of these words",
            "type": "array",
            "description": "Case-insensitive substring match against the bio text. Leave empty for no keyword filter. Matches are echoed back on every row in bioKeywordsMatched.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countryCodes": {
            "title": "🌍 Countries (multi-select)",
            "type": "array",
            "description": "Leave empty to use the single Country field below. AR, CO, MX and ZA are supported upstream and are exposed here. RU is served the US board upstream — rows from it are flagged, never relabelled.",
            "items": {
              "type": "string",
              "enum": [
                "AR",
                "AU",
                "BR",
                "CA",
                "CO",
                "EG",
                "FR",
                "DE",
                "ID",
                "IL",
                "IT",
                "JP",
                "MY",
                "MX",
                "PH",
                "RU",
                "SA",
                "SG",
                "ZA",
                "KR",
                "ES",
                "TW",
                "TH",
                "TR",
                "AE",
                "GB",
                "US",
                "VN"
              ],
              "enumTitles": [
                "🇦🇷 Argentina",
                "🇦🇺 Australia",
                "🇧🇷 Brazil",
                "🇨🇦 Canada",
                "🇨🇴 Colombia",
                "🇪🇬 Egypt",
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇮🇩 Indonesia",
                "🇮🇱 Israel",
                "🇮🇹 Italy",
                "🇯🇵 Japan",
                "🇲🇾 Malaysia",
                "🇲🇽 Mexico",
                "🇵🇭 Philippines",
                "🇷🇺 Russia (served the US board)",
                "🇸🇦 Saudi Arabia",
                "🇸🇬 Singapore",
                "🇿🇦 South Africa",
                "🇰🇷 South Korea",
                "🇪🇸 Spain",
                "🇹🇼 Taiwan",
                "🇹🇭 Thailand",
                "🇹🇷 Turkey",
                "🇦🇪 United Arab Emirates",
                "🇬🇧 United Kingdom",
                "🇺🇸 United States",
                "🇻🇳 Vietnam"
              ]
            },
            "default": []
          },
          "countryCode": {
            "title": "📍 Country (used when the multi-select is empty)",
            "enum": [
              "AR",
              "AU",
              "BR",
              "CA",
              "CO",
              "EG",
              "FR",
              "DE",
              "ID",
              "IL",
              "IT",
              "JP",
              "MY",
              "MX",
              "PH",
              "RU",
              "SA",
              "SG",
              "ZA",
              "KR",
              "ES",
              "TW",
              "TH",
              "TR",
              "AE",
              "GB",
              "US",
              "VN"
            ],
            "type": "string",
            "description": "The single trending board to read. This is the field an existing saved input already uses, and it keeps working exactly as before.",
            "default": "US"
          },
          "trendWindowDays": {
            "title": "🗓️ Trend windows",
            "type": "array",
            "description": "Upstream supports exactly 7, 30 and 90 days. Each window is a separate board, so adding one multiplies the creators you can enrich.",
            "items": {
              "type": "string",
              "enum": [
                "7",
                "30",
                "90"
              ],
              "enumTitles": [
                "Last 7 days",
                "Last 30 days",
                "Last 90 days"
              ]
            },
            "default": [
              "7"
            ]
          },
          "sortBy": {
            "title": "🎚️ Order the shortlist by",
            "enum": [
              "follower",
              "engagement",
              "popularity"
            ],
            "type": "string",
            "description": "Follower = the exact profile follower count (board count when the profile could not be read). Popularity = views on the hashtag that surfaced the creator. Engagement = (likes+comments+shares)/views over the attached videos.",
            "default": "follower"
          },
          "followerCount": {
            "title": "👥 Follower bucket",
            "enum": [
              "10k-100k",
              "100k-1m",
              "1m-10m",
              ">10m"
            ],
            "type": "string",
            "description": "Client-side filter over the board follower count. Leave empty for no bucket filter."
          },
          "maxItems": {
            "title": "🔢 Max creators to return",
            "minimum": 1,
            "maximum": 756,
            "type": "integer",
            "description": "Real ceiling of the source: 9 creators per country/window slice with no page 2. 28 countries x 3 windows x 9 = 756, which is why the cap is 756 and not an imaginary 10000.",
            "default": 10
          },
          "writeProfileCoverageReport": {
            "title": "🧾 Write the profile coverage report",
            "type": "boolean",
            "description": "Stores per-field coverage rates, profile-fetch failures by reason and per-filter drop counts to the PROFILE_COVERAGE key-value record and an uncharged profile-coverage dataset.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Optional. The trending board needs no proxy at all; a proxy only affects the profile and video requests. Your selection is used exactly as given — this Actor never silently upgrades you to a residential group."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}