{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Influencer Search & Discovery",
    "description": "Search TikTok creators by keyword, follower count, engagement rate, region, hashtags and brand mentions. One row per creator with profile stats, recent posts and the public contact email when the creator has published one.",
    "version": "0.1",
    "x-build-id": "OPxPmro8HIVaHG0e1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tokfluence~tiktok-influencer-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tokfluence-tiktok-influencer-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/tokfluence~tiktok-influencer-search/runs": {
      "post": {
        "operationId": "runs-sync-tokfluence-tiktok-influencer-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/tokfluence~tiktok-influencer-search/run-sync": {
      "post": {
        "operationId": "run-sync-tokfluence-tiktok-influencer-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",
        "properties": {
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text search across bio, niche, hashtags and mentions. Leave blank to browse by filters alone."
          },
          "nicheLevel": {
            "title": "Keyword strictness",
            "enum": [
              "wide",
              "balanced",
              "niche",
              "laser"
            ],
            "type": "string",
            "description": "How strongly the keyword has to define the creator. 'Wide' finds the most creators, including loose matches; 'Laser' only returns creators the keyword clearly describes. Use Niche or Laser when sorting by followers, so big accounts that mentioned the keyword once stay out. Only applies when a keyword is set.",
            "default": "balanced"
          },
          "minFollowers": {
            "title": "Min followers",
            "type": "integer",
            "description": "Only creators with at least this many followers."
          },
          "maxFollowers": {
            "title": "Max followers",
            "type": "integer",
            "description": "Only creators with at most this many followers."
          },
          "minEngagementRate": {
            "title": "Min engagement rate (%)",
            "type": "number",
            "description": "Minimum engagement rate, as a percentage (e.g. 5 for 5%, 2.5 for 2.5%)."
          },
          "regions": {
            "title": "Regions",
            "uniqueItems": true,
            "type": "array",
            "description": "ISO country codes, e.g. US, GB, DE.",
            "items": {
              "type": "string"
            }
          },
          "gender": {
            "title": "Gender",
            "enum": [
              "male",
              "female",
              "no_face"
            ],
            "type": "string",
            "description": "Filter creators by detected presentation. Most profiles are 'No face shown'. Leave blank for all."
          },
          "isTiktokVerified": {
            "title": "Verified accounts only",
            "type": "boolean",
            "description": "Only return TikTok-verified accounts.",
            "default": false
          },
          "accountType": {
            "title": "Account type",
            "enum": [
              "creators",
              "brands"
            ],
            "type": "string",
            "description": "Restrict to individual creators or to brand/business accounts. Leave blank for both."
          },
          "hasEmail": {
            "title": "Has public email",
            "type": "boolean",
            "description": "Roughly 30% of creators have a public contact email. Turn this on to return only those, so every result comes with an address to reach out to (and fewer results overall).",
            "default": false
          },
          "hasInstagramLinked": {
            "title": "Has linked Instagram",
            "type": "boolean",
            "description": "Only return creators with a linked Instagram account.",
            "default": false
          },
          "hasYoutubeLinked": {
            "title": "Has linked YouTube",
            "type": "boolean",
            "description": "Only return creators with a linked YouTube channel.",
            "default": false
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Creators who use these hashtags (no # needed).",
            "items": {
              "type": "string"
            }
          },
          "mentions": {
            "title": "Brand mentions",
            "type": "array",
            "description": "Creators who mention these brands/accounts.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "follower_count_desc",
              "follower_count_asc",
              "engagement_rate_desc",
              "engagement_rate_asc",
              "average_views_per_video_desc",
              "average_views_per_video_asc",
              "posts_per_week_desc",
              "posts_per_week_asc",
              "last_analyzed_at_desc",
              "last_analyzed_at_asc"
            ],
            "type": "string",
            "description": "'Best match' ranks creators by how well they fit your keyword and is the right choice for finding creators in a niche. Any other option replaces fit with that ordering, so a follower sort surfaces the biggest accounts that match at all. Without a keyword, 'Best match' falls back to followers (high to low).",
            "default": "relevance"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stops once this many creators are collected. Hard cap 10,000.",
            "default": 100
          },
          "analyzedWithinDays": {
            "title": "Analysed within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Optional. Only creators Tokfluence analysed within this many days. This filters on when we last analysed the profile, not when the creator last posted. Leave it empty to include every creator regardless of analysis date."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}