{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Creator Leads Scraper",
    "description": "Find outreach-ready Instagram creators and business accounts by niche, hashtag, keyword, or seed profile. Export flat CSV-friendly leads with profile metrics, bio signals, recent activity, and contact hints.",
    "version": "1.0",
    "x-build-id": "TWWLZ5qX1fUfwqTdo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~instagram-creator-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-instagram-creator-leads-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/coregent~instagram-creator-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-coregent-instagram-creator-leads-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/coregent~instagram-creator-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-instagram-creator-leads-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",
        "properties": {
          "searchTerms": {
            "title": "Search Terms",
            "type": "array",
            "description": "EACH TERM IS SEARCHED SEPARATELY and surfaces roughly 50-60 candidate profiles, so more leads come from MORE TERMS, not a higher Max Leads — one term cannot fill a 200-lead request whatever you set. Four or five related phrases out-produce any single one. Niche or market search phrases to discover creators. Example: beauty creator australia, fitness coach sydney, canberra cafe",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Hashtags for creator discovery (with or without #). Example: ugccreator, beautycreator, canberrafood",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "usernames": {
            "title": "Usernames",
            "type": "array",
            "description": "Instagram usernames to enrich directly. Only the profiles you list are returned. To also discover related creators from these accounts, enable Seed Discovery Mode below. Example: exampleuser1, exampleuser2",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "profileUrls": {
            "title": "Profile URLs",
            "type": "array",
            "description": "Instagram profile URLs to enrich directly. Only the profiles you list are returned. To also discover related creators from these accounts, enable Seed Discovery Mode below. Example: https://www.instagram.com/example/",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "seedDiscovery": {
            "title": "Seed Discovery Mode",
            "type": "boolean",
            "description": "When enabled, the usernames and profileUrls inputs are treated as seeds — the scraper enriches each seed and also discovers related creators from their bio keywords, category, and niche. Leave off for direct enrichment of only the profiles you provide.",
            "default": false
          },
          "maxLeads": {
            "title": "Max Leads",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum total leads to return across all inputs. An upper bound, not a target: you get this many only if discovery finds them. Each search term or hashtag surfaces roughly 50-60 candidates, so going above ~60 with a single term will not produce more leads — add more terms instead.",
            "default": 25
          },
          "maxLeadsPerSearchTerm": {
            "title": "Max Leads Per Search Term",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum profiles to collect per individual search term, hashtag, or seed.",
            "default": 25
          },
          "maxProfilesPerInput": {
            "title": "Max Profiles Per Input (deprecated)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Renamed to Max Leads Per Search Term. Still honoured if set, but prefer the new field."
          },
          "maxProfilesScanned": {
            "title": "Max Profiles Scanned",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Safety cap on how many profiles the run may fetch in total, including ones your filters later reject. Prevents very strict filters from scanning indefinitely. This limits profiles scanned, not leads returned — how many leads you receive depends on discovery yield and your filters. If the cap is what stopped a run, the log says 'Scan cap reached'. Any paid plan uses your value.",
            "default": 500
          },
          "analysisDepth": {
            "title": "Analysis Depth",
            "enum": [
              "profileOnly",
              "standard",
              "deep",
              "custom"
            ],
            "type": "string",
            "description": "How much recent-post analysis to run. Deeper analysis gives more reliable engagement figures; 'Profile only' is fastest.",
            "default": "standard"
          },
          "includeRecentPosts": {
            "title": "Include Recent Posts Analysis",
            "type": "boolean",
            "description": "Superseded by Analysis Depth — kept for backward compatibility. Setting this to false is equivalent to 'Profile only'.",
            "default": true
          },
          "recentPostsLimit": {
            "title": "Recent Posts Limit",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Number of recent posts to analyze per profile. Only used when Analysis Depth is 'Custom'.",
            "default": 6
          },
          "validateEmails": {
            "title": "Validate Email Domains",
            "type": "boolean",
            "description": "Check that each extracted email's domain can receive mail (MX lookup) and flag disposable providers. Adds no per-lead cost. This checks the DOMAIN, not the mailbox — addresses are never marked 'verified'.",
            "default": true
          },
          "findEmailsOnWebsite": {
            "title": "Find Emails On Linked Websites",
            "type": "boolean",
            "description": "When a profile has no email in its bio, open the website linked in the bio and look for one — following a link-in-bio hub through to the creator's own site, and checking the contact or about page. Storefront and social links (Amazon, YouTube, and similar) are skipped without being fetched. Adds no per-lead charge; it costs only a little run time.",
            "default": true
          },
          "deduplicateProfiles": {
            "title": "Deduplicate Profiles",
            "type": "boolean",
            "description": "Remove duplicate profiles discovered from multiple inputs. Keeps one row per account.",
            "default": true
          },
          "minFollowers": {
            "title": "Minimum Followers",
            "minimum": 0,
            "type": "integer",
            "description": "Only include profiles with at least this many followers. Defaults to 100, which skips abandoned and near-empty accounts that are not worth an outreach email. Set to 0 to include accounts of any size.",
            "default": 100
          },
          "maxFollowers": {
            "title": "Maximum Followers",
            "minimum": 0,
            "type": "integer",
            "description": "Only include profiles with at most this many followers. Leave empty for no maximum."
          },
          "requireBusinessOrCreator": {
            "title": "Require Business or Creator Account",
            "type": "boolean",
            "description": "Only include profiles identified as business or creator accounts.",
            "default": false
          },
          "requireExternalLink": {
            "title": "Require External Link",
            "type": "boolean",
            "description": "Only include profiles that have an external website link.",
            "default": false
          },
          "requireEmailHint": {
            "title": "Require Email Hint",
            "type": "boolean",
            "description": "Only include profiles with an email-like pattern in their bio. Superseded by Contact Requirement — kept for backward compatibility.",
            "default": false
          },
          "contactRequirement": {
            "title": "Contact Requirement",
            "enum": [
              "any",
              "email",
              "phone",
              "whatsapp",
              "externalLink",
              "anyContact"
            ],
            "type": "string",
            "description": "Only keep leads you can actually reach. 'Any contact' accepts an email, phone, WhatsApp or external link.",
            "default": "any"
          },
          "minEngagementRate": {
            "title": "Minimum Engagement Rate (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only include profiles whose approximate engagement rate is at least this percentage. Requires recent-post analysis. Example: 2 means 2%."
          },
          "maxEngagementRate": {
            "title": "Maximum Engagement Rate (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only include profiles whose approximate engagement rate is at most this percentage. Useful for filtering out accounts with suspicious engagement."
          },
          "minPostsCount": {
            "title": "Minimum Posts",
            "minimum": 0,
            "type": "integer",
            "description": "Only include profiles with at least this many posts. Filters out dormant and near-empty accounts."
          },
          "excludePrivateAccounts": {
            "title": "Exclude Private Accounts",
            "type": "boolean",
            "description": "Skip private accounts. They expose no usable qualification data and are never billed.",
            "default": true
          },
          "excludeVerifiedAccounts": {
            "title": "Exclude Verified Accounts",
            "type": "boolean",
            "description": "Skip blue-tick accounts. Useful when sourcing micro-creators rather than celebrities.",
            "default": false
          },
          "excludeUsernames": {
            "title": "Exclude Usernames",
            "type": "array",
            "description": "Usernames to skip — for example accounts already in your CRM. Lets you re-run weekly without paying for the same leads twice.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "preferredCountry": {
            "title": "Preferred Country",
            "enum": [
              "",
              "AU",
              "US",
              "GB",
              "CA",
              "NZ",
              "IE",
              "IN",
              "SG",
              "AE",
              "ZA",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "PT",
              "SE",
              "NO",
              "DK",
              "PL",
              "TR",
              "BR",
              "MX",
              "AR",
              "JP",
              "KR",
              "PH",
              "ID",
              "MY",
              "TH",
              "VN"
            ],
            "type": "string",
            "description": "Country to prioritize results from, used for ranking and geo hints. Does not change the proxy exit country. Leave as 'Any' for no preference."
          },
          "preferredLanguage": {
            "title": "Preferred Language",
            "enum": [
              "",
              "en",
              "es",
              "pt",
              "fr",
              "de",
              "it",
              "nl",
              "sv",
              "da",
              "no",
              "pl",
              "tr",
              "ru",
              "ar",
              "hi",
              "id",
              "th",
              "vi",
              "ja",
              "ko",
              "zh"
            ],
            "type": "string",
            "description": "Language to prioritize when ranking and hinting results. Leave as 'Any' for no preference."
          },
          "countryHint": {
            "title": "Country Hint (deprecated)",
            "type": "string",
            "description": "Renamed to Preferred Country — it is an input preference, not the per-lead countryHint output field. Still honoured if set."
          },
          "languageHint": {
            "title": "Language Hint (deprecated)",
            "type": "string",
            "description": "Renamed to Preferred Language. Still honoured if set."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevance",
              "followers",
              "engagement",
              "recentActivity"
            ],
            "type": "string",
            "description": "Sort output leads by the selected criterion.",
            "default": "relevance"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy configuration. Defaults to Apify Datacenter, which is enough for this actor (it sends only small JSON requests). Apify Residential is NOT supported — the run fails at startup. For residential routing, supply your own provider via the proxy editor's Custom proxy URLs field.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}