# Instagram Creator Lookalikes

Find creators similar to one or more Instagram creators on any platform. Provide 1 to 5 source creator user IDs or usernames in userIds and a target platform. When multiple sources are provided, results are semantically similar to their combined creator profiles. The userId field is deprecated; use userIds, including for single-creator searches. Results include similar creators with their profiles and posts. This API has a fixed 1 RPS limit. Each resulting profile costs 0.025 credits.

Endpoint: POST /ai/instagram/lookalikes
Security: accessToken

## Request fields (application/json):

  - `body` (object, required) — one of:
    - variant 1:
      - `page` (number)
        Page number (0-indexed). The offset is calculated as page  pageSize, so changing pageSize between pages will shift the window and may cause duplicate or missed results. The total number of results that can be accessed is limited to 1500 — that is, (page + 1)  pageSize must not exceed 1500. Requests beyond this limit will receive a 400 error.
      - `pageSize` (number)
        Number of results per page. Each result costs 0.025 credits. The maximum total depth of results (page * pageSize + pageSize) is 1500. For example, with pageSize 50 you can paginate up to page 29.
      - `filters` (object)
        Additional filters to refine the search results
        Example: {"followersCount":{"min":10000},"gender":"MALE","lastPostedInDays":90,"accountType":"creator","language":"es","age":{"min":"18"},"engagementRate":{"min":0.01},"postingFrequency":{"min":2},"hasEmail":true,"maxPostAgeMonths":3}
      - `filters.followersCount` (object)
        Filter by followers count
        Example: {"min":10000}
      - `filters.followersCount.min` (number)
        Minimum followers count. Number will be approximated to the nearest range lower or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
        Example: 10000
      - `filters.followersCount.max` (number)
        Maximum followers count. Number will be approximated to the nearest range higher or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.locations` (array)
        Filter by locations (use Locations dictionary endpoint to get the location IDs)
      - `filters.gender` (string)
        Filter by gender; KNOWN -> male or female, UNKNOWN -> gender neutral
        Enum: "MALE", "FEMALE", "KNOWN", "UNKNOWN"
      - `filters.lastPostedInDays` (number)
        Filter by influencers with latest post date, in days. P.S. we update profiles every 4 weeks and this lag should be considered when using this field.
        Example: 90
      - `filters.accountType` (string)
        Filter by account type. 'creator' is a backwards-compatible alias for 'individual_creator' and 'group_creator'. 'individual_creator' - a single identifiable person is clearly the face and voice; 'group_creator' - two or more identifiable individuals as co-equal faces; 'brand' - a business, organization, media entity, or professional service portfolio; 'anonymous_content' - no identifiable person or organization, curated/aggregated/themed content.
        Enum: "creator", "individual_creator", "group_creator", "brand", "anonymous_content"
      - `filters.language` (string)
        Filter by language (use Languages dictionary endpoint to get the language IDs)
        Example: "es"
      - `filters.age` (object)
        Filter by age range
        Example: {"min":"18"}
      - `filters.age.min` (string)
        Minimum age range
        Enum: "13", "18", "25", "35", "45", "65"
      - `filters.age.max` (string)
        Maximum age range
        Enum: "18", "25", "35", "45", "65"
      - `filters.engagementRate` (object)
        Filter by engagement rate
        Example: {"min":0.01}
      - `filters.engagementRate.min` (number)
        Minimum engagement rate (in percentage, 0.01 = 1%)
        Example: 0.01
      - `filters.postingFrequency` (object)
        Filter by average monthly posting frequency
        Example: {"min":2}
      - `filters.postingFrequency.min` (number)
        Minimum average posts per 30-day month
        Example: 2
      - `filters.postingFrequency.max` (number)
        Maximum average posts per 30-day month
        Example: 20
      - `filters.viewsCount` (object)
        Filter by average per-post view count (median or mean)
      - `filters.viewsCount.min` (number)
        Minimum average per-post view count. Number will be approximated to the nearest range lower or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.viewsCount.max` (number)
        Maximum average per-post view count. Number will be approximated to the nearest range higher or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.viewsCount.calculationMethod` (string)
        Whether to filter on median or mean per-post view count (from in-house post_views_stats over the last 60 days).
        Enum: "median", "average"
      - `filters.hasEmail` (boolean)
        Filter by whether the influencer has an email
        Example: true
      - `filters.brands` (array)
        Filter by brands (Use AI search's Brand Dictionary endpoint to get the brand names. P.S. this is a different endpoint than existing Brand Dictionary endpoint).
      - `filters.username` (string)
        Username to search for
      - `filters.maxPostAgeMonths` (number)
        Filter by the maximum age of the posts in months. Used to request more recent posts.
        Enum: 3, 6, 9, 12
      - `filters.contentType` (string)
        Filter by content type. Allowed values: video, image. If not provided, both video and image content will be returned.
        Enum: "video", "image"
      - `filters.textTags` (array)
        Filter by influencers who have used the defined hashtags or mentions in their posts. Values should be without # or @ prefix.
        Example: [{"type":"hashtag","value":"carsofinstagram"},{"type":"mention","value":"topgear"}]
      - `filters.textTags.type` (string, required)
        Type of text tag
        Enum: "hashtag", "mention"
      - `filters.textTags.value` (string, required)
        Value of the text tag (without # or @ prefix)
        Example: "carsofinstagram"
      - `filters.textTags.mode` (string)
        Whether to include or exclude posts with this tag. Defaults to include.
        Enum: "include", "exclude"
      - `filters.audience` (object)
        Filter by Audience
      - `filters.audience.credibility` (number)
        Filter by Audience Credibility. The value is the inverse of fake followers, meaning 25% fake followers would translate to 0.75 of audience credibility.
      - `userIds` (array)
        Instagram user IDs or usernames of 1 to 5 source creators.
        Example: ["173560420","25025320"]
      - `targetPlatform` (string)
        Target platform to find lookalikes on. Can be the same as the source platform (same-platform) or different (cross-platform).
        Enum: "instagram", "tiktok", "youtube"
      - `userId` (string, required)
        Deprecated. Use userIds instead.
        Example: "173560420"
    - variant 2:
      - `page` (number)
        Page number (0-indexed). The offset is calculated as page  pageSize, so changing pageSize between pages will shift the window and may cause duplicate or missed results. The total number of results that can be accessed is limited to 1500 — that is, (page + 1)  pageSize must not exceed 1500. Requests beyond this limit will receive a 400 error.
      - `pageSize` (number)
        Number of results per page. Each result costs 0.025 credits. The maximum total depth of results (page * pageSize + pageSize) is 1500. For example, with pageSize 50 you can paginate up to page 29.
      - `filters` (object)
        Additional filters to refine the search results
        Example: {"followersCount":{"min":10000},"gender":"MALE","lastPostedInDays":90,"accountType":"creator","language":"es","age":{"min":"18"},"engagementRate":{"min":0.01},"postingFrequency":{"min":2},"hasEmail":true,"maxPostAgeMonths":3}
      - `filters.followersCount` (object)
        Filter by followers count
        Example: {"min":10000}
      - `filters.followersCount.min` (number)
        Minimum followers count. Number will be approximated to the nearest range lower or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
        Example: 10000
      - `filters.followersCount.max` (number)
        Maximum followers count. Number will be approximated to the nearest range higher or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.locations` (array)
        Filter by locations (use Locations dictionary endpoint to get the location IDs)
      - `filters.gender` (string)
        Filter by gender; KNOWN -> male or female, UNKNOWN -> gender neutral
        Enum: same as `filters.gender` in "variant 1" (4 values)
      - `filters.lastPostedInDays` (number)
        Filter by influencers with latest post date, in days. P.S. we update profiles every 4 weeks and this lag should be considered when using this field.
        Example: 90
      - `filters.accountType` (string)
        Filter by account type. 'creator' is a backwards-compatible alias for 'individual_creator' and 'group_creator'. 'individual_creator' - a single identifiable person is clearly the face and voice; 'group_creator' - two or more identifiable individuals as co-equal faces; 'brand' - a business, organization, media entity, or professional service portfolio; 'anonymous_content' - no identifiable person or organization, curated/aggregated/themed content.
        Enum: same as `filters.accountType` in "variant 1" (5 values)
      - `filters.language` (string)
        Filter by language (use Languages dictionary endpoint to get the language IDs)
        Example: "es"
      - `filters.age` (object)
        Filter by age range
        Example: {"min":"18"}
      - `filters.age.min` (string)
        Minimum age range
        Enum: same as `filters.age.min` in "variant 1" (6 values)
      - `filters.age.max` (string)
        Maximum age range
        Enum: same as `filters.age.max` in "variant 1" (5 values)
      - `filters.engagementRate` (object)
        Filter by engagement rate
        Example: {"min":0.01}
      - `filters.engagementRate.min` (number)
        Minimum engagement rate (in percentage, 0.01 = 1%)
        Example: 0.01
      - `filters.postingFrequency` (object)
        Filter by average monthly posting frequency
        Example: {"min":2}
      - `filters.postingFrequency.min` (number)
        Minimum average posts per 30-day month
        Example: 2
      - `filters.postingFrequency.max` (number)
        Maximum average posts per 30-day month
        Example: 20
      - `filters.viewsCount` (object)
        Filter by average per-post view count (median or mean)
      - `filters.viewsCount.min` (number)
        Minimum average per-post view count. Number will be approximated to the nearest range lower or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.viewsCount.max` (number)
        Maximum average per-post view count. Number will be approximated to the nearest range higher or equal to the given number. Ranges are: 1000, 3000, 5000, 10000, 15000, 20000, 25000, 35000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 350000, 500000, 1000000, 2000000, 3000000.
      - `filters.viewsCount.calculationMethod` (string)
        Whether to filter on median or mean per-post view count (from in-house post_views_stats over the last 60 days).
        Enum: same as `filters.viewsCount.calculationMethod` in "variant 1" (2 values)
      - `filters.hasEmail` (boolean)
        Filter by whether the influencer has an email
        Example: true
      - `filters.brands` (array)
        Filter by brands (Use AI search's Brand Dictionary endpoint to get the brand names. P.S. this is a different endpoint than existing Brand Dictionary endpoint).
      - `filters.username` (string)
        Username to search for
      - `filters.maxPostAgeMonths` (number)
        Filter by the maximum age of the posts in months. Used to request more recent posts.
        Enum: same as `filters.maxPostAgeMonths` in "variant 1" (4 values)
      - `filters.contentType` (string)
        Filter by content type. Allowed values: video, image. If not provided, both video and image content will be returned.
        Enum: same as `filters.contentType` in "variant 1" (2 values)
      - `filters.textTags` (array)
        Filter by influencers who have used the defined hashtags or mentions in their posts. Values should be without # or @ prefix.
        Example: [{"type":"hashtag","value":"carsofinstagram"},{"type":"mention","value":"topgear"}]
      - `filters.textTags.type` (string, required)
        Type of text tag
        Enum: same as `filters.textTags.type` in "variant 1" (2 values)
      - `filters.textTags.value` (string, required)
        Value of the text tag (without # or @ prefix)
        Example: "carsofinstagram"
      - `filters.textTags.mode` (string)
        Whether to include or exclude posts with this tag. Defaults to include.
        Enum: same as `filters.textTags.mode` in "variant 1" (2 values)
      - `filters.audience` (object)
        Filter by Audience
      - `filters.audience.credibility` (number)
        Filter by Audience Credibility. The value is the inverse of fake followers, meaning 25% fake followers would translate to 0.75 of audience credibility.
      - `userIds` (array, required)
        Instagram user IDs or usernames of 1 to 5 source creators.
        Example: ["173560420","25025320"]
      - `targetPlatform` (string)
        Target platform to find lookalikes on. Can be the same as the source platform (same-platform) or different (cross-platform).
        Enum: same as `targetPlatform` in "variant 1" (3 values)
      - `userId` (string)
        Deprecated. Use userIds instead.
        Example: "173560420"

## Response 200 fields (application/json):

  - `error` (boolean)
    If there is an error

  - `total` (number, required)
    Total number of lookalike profiles found

  - `sourceProfiles` (array, required)
    Source creator profiles used to find lookalikes

  - `sourceProfiles.userId` (string)
    User ID
    Example: "173560420"

  - `sourceProfiles.fullName` (string)
    Full name
    Example: "Instagram"

  - `sourceProfiles.username` (string, required)
    Username
    Example: "instagram"

  - `sourceProfiles.profilePicture` (string, required)
    Profile Picture
    Example: "https://imgigp.modash.io/22159423_1794482210565499_9190891265074397184_n.jpg"

  - `sourceProfiles.followersCount` (number, required)
    Followers count
    Example: 313560626

  - `sourceProfiles.engagementRate` (number, required)
    Engagement rate
    Example: 0.01

  - `sourceProfiles.postingFrequency` (number, required)
    Average posts per 30-day month
    Example: 12

  - `sourceProfiles.viewsCountMedian` (number)
    Median per-post view count over the last 60 days
    Example: 25000

  - `sourceProfiles.viewsCountMean` (number)
    Mean per-post view count over the last 60 days
    Example: 32000

  - `sourceProfiles.url` (string, required)
    Profile URL
    Example: "https://instagram.com/instagram"

  - `sourceProfiles.accountCategory` (string)
    Account category
    Example: "Sportsperson / Digital creator etc."

  - `lookalikes` (array, required)
    List of lookalike influencer profiles

  - `lookalikes.userId` (string)
    User ID
    Example: "173560420"

  - `lookalikes.fullName` (string)
    Full name
    Example: "Instagram"

  - `lookalikes.username` (string, required)
    Username
    Example: "instagram"

  - `lookalikes.profilePicture` (string, required)
    Profile Picture
    Example: "https://imgigp.modash.io/22159423_1794482210565499_9190891265074397184_n.jpg"

  - `lookalikes.followersCount` (number, required)
    Followers count
    Example: 313560626

  - `lookalikes.engagementRate` (number, required)
    Engagement rate
    Example: 0.01

  - `lookalikes.postingFrequency` (number, required)
    Average posts per 30-day month
    Example: 12

  - `lookalikes.viewsCountMedian` (number)
    Median per-post view count over the last 60 days
    Example: 25000

  - `lookalikes.viewsCountMean` (number)
    Mean per-post view count over the last 60 days
    Example: 32000

  - `lookalikes.recentPosts` (array, required)
    Recent posts (not necessarily relevant to the search query). P.S. we update profiles every 4 weeks and this lag should be considered when using this field.

  - `lookalikes.recentPosts.id` (string, required)
    Post ID

  - `lookalikes.recentPosts.url` (string, required)
    Post URL

  - `lookalikes.recentPosts.thumbnail` (string, required)
    Post thumbnail URL

  - `lookalikes.recentPosts.stats` (object, required)
    Post statistics

  - `lookalikes.recentPosts.stats.likesCount` (number, required)
    Likes count; -1 if likes count is hidden

  - `lookalikes.recentPosts.stats.commentsCount` (number, required)
    Comments count; -1 if comments count is hidden

  - `lookalikes.recentPosts.stats.playsCount` (number, required)
    Plays count

  - `lookalikes.accountCategory` (string)
    Account category
    Example: "Sportsperson / Digital creator etc."

  - `sourceProfile` (object, required)
    Deprecated. Use sourceProfiles. Contains the first resolved source creator profile.

  - `sourceProfile.userId` (string)
    User ID
    Example: "173560420"

  - `sourceProfile.fullName` (string)
    Full name
    Example: "Instagram"

  - `sourceProfile.username` (string, required)
    Username
    Example: "instagram"

  - `sourceProfile.profilePicture` (string, required)
    Profile Picture
    Example: "https://imgigp.modash.io/22159423_1794482210565499_9190891265074397184_n.jpg"

  - `sourceProfile.followersCount` (number, required)
    Followers count
    Example: 313560626

  - `sourceProfile.engagementRate` (number, required)
    Engagement rate
    Example: 0.01

  - `sourceProfile.postingFrequency` (number, required)
    Average posts per 30-day month
    Example: 12

  - `sourceProfile.viewsCountMedian` (number)
    Median per-post view count over the last 60 days
    Example: 25000

  - `sourceProfile.viewsCountMean` (number)
    Mean per-post view count over the last 60 days
    Example: 32000

  - `sourceProfile.url` (string, required)
    Profile URL
    Example: "https://instagram.com/instagram"

  - `sourceProfile.accountCategory` (string)
    Account category
    Example: "Sportsperson / Digital creator etc."


