{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Lookalike & Related Profiles - Emails",
    "description": "Find Instagram lookalikes of one account or a whole set, with emails, phones, bio links and median engagement. Rank by shared seeds, chain up to 5 levels, filter by followers, engagement rate or contact type. No login.",
    "version": "1.1",
    "x-build-id": "gwWjXzSJlizIbYwhz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~instagram-similar-profiles-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-instagram-similar-profiles-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/memo23~instagram-similar-profiles-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-instagram-similar-profiles-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/memo23~instagram-similar-profiles-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-instagram-similar-profiles-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": [
          "usernames"
        ],
        "properties": {
          "usernames": {
            "title": "Instagram accounts",
            "type": "array",
            "description": "Public Instagram accounts to find lookalikes for. Accepts plain handles (nike), @-handles (@nike), or profile URLs (https://www.instagram.com/nike) - one per line, mixed formats are fine. Very large brand accounts sometimes have no suggestion graph on Instagram's side and return an explanatory error item.",
            "items": {
              "type": "string"
            }
          },
          "minSeedOverlap": {
            "title": "Minimum shared seeds",
            "minimum": 1,
            "type": "integer",
            "description": "With several accounts above, keep only profiles Instagram suggests for at least this many of them. 2 or more finds the lookalikes of the whole set rather than of one account. Every row carries matchedSeeds and seedOverlap either way, and shared profiles come first. Turns chain discovery off, since overlap is measured on your accounts' own suggestions. Default: 1 (no filter).",
            "default": 1
          },
          "excludeUsernames": {
            "title": "Exclude accounts",
            "type": "array",
            "description": "Accounts that must never appear in the results, such as creators you already work with or your own brand. Handles, @-handles or profile URLs. Excluded profiles are dropped before any lookup, so they are never charged.",
            "items": {
              "type": "string"
            }
          },
          "maxSimilarPerAccount": {
            "title": "Max similar profiles per account",
            "minimum": 1,
            "type": "integer",
            "description": "Cap how many lookalike profiles to return per source account. Instagram serves up to roughly 78 suggestions per account, plus about 21 more if category recommendations are enabled. Leave empty for all of them."
          },
          "includeBusinessSuggestions": {
            "title": "Also include category recommendations",
            "type": "boolean",
            "description": "Add Instagram's recommended business and creator accounts from the same category, on top of the standard 'Suggested for you' graph. Adds about 21 more profiles per account and is the only source that carries each account's Instagram category. Default: off. Paid Apify plans only.",
            "default": false
          },
          "enrichProfiles": {
            "title": "Enrich profiles (emails, ER, bio, followers)",
            "type": "boolean",
            "description": "Look up each lookalike's full profile to add emails from the contact button and bio, phones, bio links, median engagement, follower counts, biography and category. On by default. Costs one extra request per profile and is charged separately. Paid Apify plans only.",
            "default": true
          },
          "contactInfoType": {
            "title": "Keep only profiles with",
            "enum": [
              "any",
              "emailOrPhone",
              "emailOnly",
              "phoneOnly",
              "emailAndPhone"
            ],
            "type": "string",
            "description": "Filter after enrichment. emailOnly is the usual lead-gen setting. Turns enrichment on. Default: any.",
            "default": "any"
          },
          "depth": {
            "title": "Chain discovery depth",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Follow Instagram's suggestion graph this many levels deep: 1 = each account's own lookalikes only (default), 2 = also the lookalikes of every discovered profile, and so on up to 5 - mapping the whole niche around your seeds. Every profile is deduplicated across the run and charged at most once. Growth is exponential (50 lookalikes per account at depth 2 can already mean 2,500+ profiles), so pair depths above 2 with 'Max total profiles'. Paid Apify plans only.",
            "default": 1
          },
          "maxTotalProfiles": {
            "title": "Max total profiles (whole run)",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on how many profiles the whole run may return - and charge - across all accounts and depth levels. The safety brake for chain discovery: the run stops cleanly the moment it is reached. Leave empty for no cap (the run is then bounded only by depth, your charge limit, and the timeout)."
          },
          "onlyVerified": {
            "title": "Only verified accounts",
            "type": "boolean",
            "description": "Return only accounts with Instagram's blue verification badge. Default: off.",
            "default": false
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 1,
            "type": "integer",
            "description": "Drop lookalikes with fewer followers than this. Follower counts only exist when profiles are enriched, so switching this on automatically turns on 'Enrich profiles'. Leave empty for no threshold."
          },
          "onlyBusiness": {
            "title": "Only business / creator accounts",
            "type": "boolean",
            "description": "Keep only accounts flagged as business or creator after enrichment. Turns enrichment on. Default: off.",
            "default": false
          },
          "excludePrivate": {
            "title": "Skip private accounts",
            "type": "boolean",
            "description": "Drop private profiles from the output (they still cannot seed the next depth). Default: off - private lookalikes are returned but not chained.",
            "default": false
          },
          "minPosts": {
            "title": "Minimum posts",
            "minimum": 1,
            "type": "integer",
            "description": "Drop lookalikes with fewer posts than this. Needs enrichment. Leave empty for no floor."
          },
          "maxPosts": {
            "title": "Maximum posts",
            "minimum": 1,
            "type": "integer",
            "description": "Drop lookalikes with more posts than this. Needs enrichment. Leave empty for no ceiling."
          },
          "includeLatestPosts": {
            "title": "Include latest 3 posts (enrichment)",
            "type": "boolean",
            "description": "Attach a 3-post preview on each enriched lookalike. Same enrichment charge. Paid plans only.",
            "default": false
          },
          "scrapeFacebookProfile": {
            "title": "Extract Facebook URL from bio",
            "type": "boolean",
            "description": "If the biography or a bio link points at Facebook, put that URL on facebookProfileUrl. Does not fetch Facebook. Off by default.",
            "default": false
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 1,
            "type": "integer",
            "description": "Drop lookalikes with more followers than this - the way to keep results to micro and mid-tier accounts a smaller brand can realistically partner with. Needs follower counts, so switching it on automatically turns on 'Enrich profiles'; a profile whose count can't be fetched is dropped rather than passed through unverified. Leave empty for no ceiling."
          },
          "minEngagementRate": {
            "title": "Minimum engagement rate (%)",
            "minimum": 0,
            "type": "number",
            "description": "Drop lookalikes whose median engagement rate (likes + comments over followers, recent posts) is below this percent, e.g. 1.5. Needs enrichment, so it turns 'Enrich profiles' on. Profiles whose rate cannot be measured are dropped."
          },
          "maxEngagementRate": {
            "title": "Maximum engagement rate (%)",
            "minimum": 0,
            "type": "number",
            "description": "Drop lookalikes above this median engagement rate, e.g. 20 to skip accounts with suspicious spikes. Needs enrichment, so it turns 'Enrich profiles' on."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}