{
  "openapi": "3.0.1",
  "info": {
    "title": "Influencer Search API - Instagram, TikTok, YouTube - Upfluence",
    "description": "Search Upfluence's creator index by keywords, followers, engagement rate, country, language, location and audience country, age and gender. Pull full profiles with every Instagram, TikTok and YouTube account, audience demographics, recent posts and brand mentions. Read only. Bring your own token.",
    "version": "0.1",
    "x-build-id": "6fPqDxVR5P0tanIW4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~influencer-search-audience-demographics-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-influencer-search-audience-demographics-api",
        "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/nabeelbaghoor~influencer-search-audience-demographics-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-influencer-search-audience-demographics-api",
        "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/nabeelbaghoor~influencer-search-audience-demographics-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-influencer-search-audience-demographics-api",
        "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": {
          "mode": {
            "title": "What to read",
            "enum": [
              "search",
              "counts",
              "profiles",
              "lookup",
              "audience",
              "posts",
              "brandMentions"
            ],
            "type": "string",
            "description": "Influencer search finds creators in the provider index with the keywords and filters below and needs no identifiers, so it is the default. Search statistics counts the same search by country, language, platform and audience. Influencer profile, audience demographics: one influencer id per line. Profile lookup by URL: one social profile link per line. Recent posts and brand mentions: one platform account id per line (the instagramId, tiktokId, youtubeId and so on of a profile row).",
            "default": "search"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Influencer search and statistics: terms or phrases to look for, one per line, in the field chosen below. Leave empty to search on filters alone.",
            "items": {
              "type": "string"
            }
          },
          "searchIn": {
            "title": "Search keywords in",
            "enum": [
              "all",
              "social_media.username",
              "influencer.name",
              "influencer.hashtags",
              "youtube.name",
              "youtube.username",
              "youtube.description",
              "youtube.videos.name",
              "youtube.videos.description",
              "instagram.username",
              "instagram.website",
              "instagram.bio",
              "instagram.media.text",
              "twitter.name",
              "twitter.screen_name",
              "twitter.bio",
              "twitter.tweets.content",
              "twitch.username",
              "twitch.description",
              "twitch.streams.titles",
              "twitch.streams.games",
              "pinterest.username",
              "pinterest.bio",
              "pinterest.pins.title",
              "pinterest.pins.description",
              "tiktok.name",
              "tiktok.nickname",
              "tiktok.description",
              "tiktok.tiktok_videos.name"
            ],
            "type": "string",
            "description": "Where the keywords are matched: everywhere, or one documented field such as the Instagram bio, Instagram post text, TikTok video names, YouTube video descriptions or hashtags.",
            "default": "all"
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "should",
              "must",
              "must_not"
            ],
            "type": "string",
            "description": "Should: any keyword raises relevancy. Must: every keyword has to match. Must not: exclude creators matching the keywords.",
            "default": "should"
          },
          "platform": {
            "title": "Platform",
            "enum": [
              "instagram",
              "tiktok",
              "youtube",
              "twitter",
              "pinterest",
              "twitch"
            ],
            "type": "string",
            "description": "The social platform the follower range, minimum engagement rate and sort apply to.",
            "default": "instagram"
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest follower count on the platform above. Leave empty for no lower bound."
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Highest follower count on the platform above. Leave empty for no upper bound."
          },
          "minEngagementRate": {
            "title": "Minimum engagement rate (%)",
            "minimum": 0,
            "type": "number",
            "description": "Lowest average engagement rate on the platform above, as a percentage (3 means 3%). Instagram, TikTok, YouTube, Twitter and Pinterest only."
          },
          "countries": {
            "title": "Influencer countries",
            "type": "array",
            "description": "Two-letter ISO country codes of the creator, one per line (US, GB, FR). Any of them matches.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Influencer languages",
            "type": "array",
            "description": "Two-letter ISO 639-1 language codes of the creator, one per line (en, fr, es). Any of them matches.",
            "items": {
              "type": "string"
            }
          },
          "ageBrackets": {
            "title": "Influencer age",
            "type": "array",
            "description": "The creator's own age bracket. Any of them matches.",
            "items": {
              "type": "string",
              "enum": [
                "0-17",
                "18-24",
                "25-34",
                "35-54"
              ],
              "enumTitles": [
                "0-17",
                "18-24",
                "25-34",
                "35-54"
              ]
            }
          },
          "withEmail": {
            "title": "Only creators with an email",
            "type": "boolean",
            "description": "Keep only creators the provider holds an email address for.",
            "default": false
          },
          "nearLocation": {
            "title": "Near city",
            "type": "string",
            "description": "A city or place name. Keeps creators located within the radius below of it."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "type": "integer",
            "description": "Search radius around the city above, in kilometres.",
            "default": 50
          },
          "audiencePlatform": {
            "title": "Audience platform",
            "enum": [
              "instagram",
              "tiktok"
            ],
            "type": "string",
            "description": "Whose audience the audience filters below read: the creator's Instagram or TikTok followers.",
            "default": "instagram"
          },
          "audienceCountry": {
            "title": "Audience country",
            "type": "string",
            "description": "Two-letter ISO code of a country the audience should come from, such as US."
          },
          "audienceCountryMin": {
            "title": "Audience country share above (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep creators whose audience share in that country is above this percentage.",
            "default": 20
          },
          "audienceGender": {
            "title": "Audience gender",
            "enum": [
              "any",
              "female",
              "male"
            ],
            "type": "string",
            "description": "Gender the audience should lean to.",
            "default": "any"
          },
          "audienceGenderMin": {
            "title": "Audience gender share above (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep creators whose audience share of that gender is above this percentage.",
            "default": 20
          },
          "audienceAge": {
            "title": "Audience age",
            "enum": [
              "any",
              "13-17",
              "18-20",
              "18-24",
              "21-24",
              "25-34",
              "35-44",
              "35-54",
              "45-65",
              "65+"
            ],
            "type": "string",
            "description": "Age group the audience should include. Instagram takes 18-20, 18-24, 21-24, 25-34 and 35-54; TikTok takes 13-17, 18-24, 25-34, 35-44, 45-65 and 65+.",
            "default": "any"
          },
          "audienceAgeMin": {
            "title": "Audience age share above (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep creators whose audience share in that age group is above this percentage.",
            "default": 20
          },
          "matchAllPlatforms": {
            "title": "Every platform filter must match",
            "type": "boolean",
            "description": "When filters name several platforms, require all of them (AND) rather than any of them (OR).",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevancy",
              "influencer.score",
              "followers",
              "engagement_rate",
              "average_engagements",
              "average_likes",
              "community_growth_rate",
              "engagement_growth_rate"
            ],
            "type": "string",
            "description": "Search order. Metrics are read on the platform chosen above; engagement rate is not offered on TikTok or Twitch and average likes not on Twitter or Twitch.",
            "default": "relevancy"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Highest first or lowest first.",
            "default": "desc"
          },
          "advancedFilters": {
            "title": "Advanced filters",
            "type": "array",
            "description": "More search filters as JSON objects exactly as the provider documents them, for example {\"type\": \"range-date\", \"field\": \"instagram.medias.timestamp\", \"order\": \">\", \"value\": \"3mo\"} or {\"type\": \"exclude-lists\", \"value\": [229264]}. Types: string, multi-string, int, multi-int, existence, geocoded, range-int, range-date, average-engagement, exclude-lists, include-lists, brand_safety."
          },
          "aggregations": {
            "title": "Statistics",
            "type": "array",
            "description": "Search statistics: which breakdowns to count. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "country",
                "language",
                "reach",
                "audience_age",
                "audience_fake",
                "audience_gender"
              ],
              "enumTitles": [
                "Influencer country",
                "Influencer language",
                "Platform reach",
                "Audience age",
                "Audience real vs fake",
                "Audience gender"
              ]
            }
          },
          "identifiers": {
            "title": "Identifiers",
            "type": "array",
            "description": "One per line. Influencer profile and audience demographics: influencer ids, as the search returns them. Profile lookup by URL: Instagram, YouTube, TikTok, Pinterest, Twitch or Twitter profile links. Recent posts and brand mentions: platform account ids such as the instagramId of a profile row.",
            "items": {
              "type": "string"
            }
          },
          "postPlatform": {
            "title": "Post platform",
            "enum": [
              "instagram",
              "tiktok",
              "youtube",
              "twitter",
              "pinterest",
              "twitch"
            ],
            "type": "string",
            "description": "Recent posts and brand mentions: the platform the account ids belong to. Brand mentions take Instagram and TikTok.",
            "default": "instagram"
          },
          "youtubeVideoType": {
            "title": "YouTube video type",
            "enum": [
              "any",
              "short",
              "regular"
            ],
            "type": "string",
            "description": "Recent YouTube posts: all videos, Shorts only or regular videos only.",
            "default": "any"
          },
          "postsPerAccount": {
            "title": "Posts per account",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Recent posts: how many posts to read per account. Brand mentions: how many brands to list per account. The provider allows up to 100.",
            "default": 10
          },
          "includeRaw": {
            "title": "Include the full record",
            "type": "boolean",
            "description": "Keep the provider's whole answer for each row under raw.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows. Searches read up to 200 creators per page, and only as many pages as this needs; the provider serves the first 10,000 results of a search.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Pacing ceiling for calls to the provider. Rate limited answers are retried after a pause.",
            "default": 60
          },
          "apiKey": {
            "title": "Access token or client credentials",
            "type": "string",
            "description": "Your own Upfluence API access: a bearer access token, or your API client id and secret written as client_id:client_secret, in which case the actor requests a one hour token itself. This actor is bring-your-own-key and never ships one. Leave blank to use the DATA_API_KEY environment secret. It is sent only to the provider and is never written to a row or logged."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}