{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok User Search Scraper - Find Creators [NO LOGIN] ✅",
    "description": "Search TikTok users and creators by keyword. Get handles, bios, follower counts, and recent videos. Built for creator discovery, influencer research, and lead generation by topic or niche. No login, no cookies. Pair with our Followers Scraper to map full audiences.",
    "version": "0.0",
    "x-build-id": "mufGFJNd9nvNgSuoj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unseenuser~tiktok-user-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unseenuser-tiktok-user-search-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/unseenuser~tiktok-user-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unseenuser-tiktok-user-search-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/unseenuser~tiktok-user-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unseenuser-tiktok-user-search-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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search queries / usernames",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "One or more keywords or usernames to search. Add a single entry for a one-off search, or many entries to run them all in one bulk run. Leading '@' is stripped automatically. Duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "max_pages": {
            "title": "Max pages per query",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum pages of results to fetch per query. Each page returns roughly 10-20 creators. Default 20 (about 200-400 creators per query).",
            "default": 20
          },
          "min_follower_count": {
            "title": "Minimum follower count",
            "minimum": 0,
            "type": "integer",
            "description": "Filter out users with fewer followers than this value. Default 0 means no filter.",
            "default": 0
          },
          "exclude_unverified": {
            "title": "Exclude unverified accounts",
            "type": "boolean",
            "description": "If true, exclude unverified accounts from the results.",
            "default": false
          },
          "auto_expand_query": {
            "title": "Auto-expand each query into many variants",
            "type": "boolean",
            "description": "TikTok's no-login user search caps at roughly 50-100 best-match results per query. Turn this ON to automatically run each base query against ~60 variants (e.g. 'Michael' becomes 'Michael fitness', 'Michael fashion', 'Michael nyc', 'Michael london', '@Michael', etc.). Results are de-duplicated by @handle across the whole run, so you typically get 10x-30x more unique creators per base query. Cost scales with the number of variants - each variant runs the same pagination as a normal query.",
            "default": false
          },
          "deep_search": {
            "title": "Deep search (combine user + video + top-search pools)",
            "type": "boolean",
            "description": "Default false. When ON, each query is run against THREE different TikTok search endpoints in sequence: (1) user search, (2) keyword video search (extracting unique authors), (3) 'Top' search (extracting unique authors). Each endpoint exposes a different pool of best-match results, so combining them typically yields 10x-50x more unique creators per query than user search alone. Results are de-duplicated by @handle across all pools. Each _metadata.source field on every output row tells you which pool surfaced that creator ('user_search' | 'keyword_video' | 'top_search'). Note: creators discovered via video pools may have less rich data (follower_count is often 0) because the author object embedded in a video is leaner than the user-search response. Cost scales linearly - deep_search uses roughly 3x more credits per query.",
            "default": false
          },
          "allow_duplicates": {
            "title": "Allow duplicate creators across pages (debug)",
            "type": "boolean",
            "description": "Default false. When false, the Actor de-duplicates by @handle across pages so each creator appears at most once. Turn ON only if you suspect pagination is stuck and want to see the raw upstream rows including repeats. With this flag on, the Actor will not stop early when a page returns only duplicates.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}