{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Lookalike Search",
    "description": "🔮 TikTok influencer & creator search: find lookalike creators + 📊 stats + emails from 300M+ accounts.",
    "version": "1.0",
    "x-build-id": "mAPN0Irw5s9HOojMQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dataovercoffee~tiktok-lookalike-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dataovercoffee-tiktok-lookalike-search",
        "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/dataovercoffee~tiktok-lookalike-search/runs": {
      "post": {
        "operationId": "runs-sync-dataovercoffee-tiktok-lookalike-search",
        "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/dataovercoffee~tiktok-lookalike-search/run-sync": {
      "post": {
        "operationId": "run-sync-dataovercoffee-tiktok-lookalike-search",
        "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": [
          "seed_usernames"
        ],
        "properties": {
          "seed_usernames": {
            "title": "Seed creators (usernames)",
            "type": "array",
            "description": "TikTok usernames to find lookalikes for. Provide 1-25 handles (e.g. ahormozi) — a profile URL like https://www.tiktok.com/@ahormozi works too (short vm.tiktok.com share links can't be resolved). More seeds = more precise results; creators common to several seeds rank highest.",
            "items": {
              "type": "string"
            }
          },
          "limit": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of lookalike creators to return. The actual count is capped at whichever is lower: this value, or what your \"Maximum cost per run\" allows.",
            "default": 100
          },
          "min_followers": {
            "title": "Min followers",
            "minimum": 1000,
            "type": "integer",
            "description": "Only include creators with at least this many followers."
          },
          "max_followers": {
            "title": "Max followers",
            "minimum": 1000,
            "type": "integer",
            "description": "Only include creators with at most this many followers."
          },
          "min_video_count": {
            "title": "Min videos",
            "type": "integer",
            "description": "Only include creators with at least this many videos."
          },
          "max_video_count": {
            "title": "Max videos",
            "type": "integer",
            "description": "Only include creators with at most this many videos."
          },
          "only_verified": {
            "title": "Verified accounts only",
            "type": "boolean",
            "description": "Only include creators with the verified badge.",
            "default": false
          },
          "only_commerce_users": {
            "title": "Commerce accounts only",
            "type": "boolean",
            "description": "Only include creators flagged as commerce (business) accounts.",
            "default": false
          },
          "only_sellers": {
            "title": "TikTok Shop sellers only",
            "type": "boolean",
            "description": "Only include creators who are TikTok Shop sellers. Great for affiliate / product outreach.",
            "default": false
          },
          "only_with_email": {
            "title": "Has a contact email only",
            "type": "boolean",
            "description": "Only include creators with a known contact email (from their bio/signature or links in their bio). Best for direct outreach.",
            "default": false
          },
          "primary_languages": {
            "title": "Primary languages",
            "type": "array",
            "description": "Only include creators whose profile language is one of these. Leave empty for every language. Pick languages your SEED creators already post in — results are the creators most similar to your seeds, so seeding English creators and then asking for German leaves very little to match and you may get few or no results. Creators whose language isn't known are left out when you set this.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "id",
                "ar",
                "fr",
                "ru",
                "pt",
                "vi",
                "th",
                "de",
                "tr",
                "it",
                "ja",
                "pl",
                "ro",
                "uk",
                "nl",
                "ms",
                "km",
                "ko",
                "zh",
                "hu",
                "my",
                "sv",
                "el",
                "az",
                "he",
                "cs",
                "bg",
                "hr",
                "nb",
                "da",
                "fi",
                "hi",
                "bn",
                "sk",
                "uz",
                "kk",
                "lt",
                "gu",
                "fa",
                "sq",
                "ur",
                "mr",
                "sl",
                "ca",
                "kn",
                "et",
                "lv",
                "ta",
                "te",
                "si",
                "jv",
                "pa",
                "sw",
                "is",
                "ka",
                "ml",
                "mn",
                "ga",
                "be",
                "ceb",
                "sr",
                "af",
                "ne",
                "or",
                "tl",
                "yi"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "Indonesian",
                "Arabic",
                "French",
                "Russian",
                "Portuguese",
                "Vietnamese",
                "Thai",
                "German",
                "Turkish",
                "Italian",
                "Japanese",
                "Polish",
                "Romanian",
                "Ukrainian",
                "Dutch",
                "Malay",
                "Khmer",
                "Korean",
                "Chinese",
                "Hungarian",
                "Burmese",
                "Swedish",
                "Greek",
                "Azerbaijani",
                "Hebrew",
                "Czech",
                "Bulgarian",
                "Croatian",
                "Norwegian",
                "Danish",
                "Finnish",
                "Hindi",
                "Bengali",
                "Slovak",
                "Uzbek",
                "Kazakh",
                "Lithuanian",
                "Gujarati",
                "Persian",
                "Albanian",
                "Urdu",
                "Marathi",
                "Slovenian",
                "Catalan",
                "Kannada",
                "Estonian",
                "Latvian",
                "Tamil",
                "Telugu",
                "Sinhala",
                "Javanese",
                "Punjabi",
                "Swahili",
                "Icelandic",
                "Georgian",
                "Malayalam",
                "Mongolian",
                "Irish",
                "Belarusian",
                "Cebuano",
                "Serbian",
                "Afrikaans",
                "Nepali",
                "Odia",
                "Filipino",
                "Yiddish"
              ]
            }
          },
          "min_heart_count": {
            "title": "Min total likes",
            "type": "integer",
            "description": "Only include creators with at least this many total likes (hearts) across all their videos."
          },
          "max_heart_count": {
            "title": "Max total likes",
            "type": "integer",
            "description": "Only include creators with at most this many total likes."
          },
          "min_avg_play_count": {
            "title": "Min avg views",
            "type": "integer",
            "description": "Minimum average views per recent video."
          },
          "max_avg_play_count": {
            "title": "Max avg views",
            "type": "integer",
            "description": "Maximum average views per recent video."
          },
          "min_avg_like_count": {
            "title": "Min avg likes",
            "type": "integer",
            "description": "Minimum average likes per recent video."
          },
          "max_avg_like_count": {
            "title": "Max avg likes",
            "type": "integer",
            "description": "Maximum average likes per recent video."
          },
          "min_avg_comment_count": {
            "title": "Min avg comments",
            "type": "integer",
            "description": "Minimum average comments per recent video."
          },
          "max_avg_comment_count": {
            "title": "Max avg comments",
            "type": "integer",
            "description": "Maximum average comments per recent video."
          },
          "exclude_usernames": {
            "title": "Exclude creators (usernames)",
            "type": "array",
            "description": "TikTok usernames to exclude from results — paste the 'unique_id' column from a previous run's output to skip creators you already have. Profile URLs work too. Up to 500,000.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}