{
  "openapi": "3.0.1",
  "info": {
    "title": "📇 Instagram Contact & Lead Scraper",
    "description": "Instagram Contact & Lead Scraper: Discover Instagram profiles and extract available public contact details, emails, phone numbers, websites, usernames, bios, categories, and locations. Build targeted lead lists for prospecting, outreach, influencer research, and social media intelligence.",
    "version": "1.0",
    "x-build-id": "zjQhWB2qH7y21yehl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~instagram-phone-number-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-instagram-phone-number-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/api-empire~instagram-phone-number-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-instagram-phone-number-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/api-empire~instagram-phone-number-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-instagram-phone-number-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": {
          "usernames": {
            "title": "👤 Usernames / Profile URLs / Post URLs / User IDs",
            "type": "array",
            "description": "Direct targets to enrich. Accepts plain usernames (natgeo), @handles (@natgeo), profile URLs (https://instagram.com/natgeo), post/reel URLs (https://instagram.com/p/CXXXXXX/ — the owner is resolved and enriched, emitted as postUrl), and numeric user IDs. Duplicates removed case-insensitively. Example: [\"natgeo\", \"@nike\", \"https://instagram.com/p/C123abcD/\"].",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "🔍 Discovery keywords (optional)",
            "type": "array",
            "description": "Optional Google-SERP discovery. Each keyword runs site:instagram.com \"<dial code>\" \"<keyword>\" to find candidate profiles, which are then enriched from web_profile_info like direct targets. Leave empty to use only the direct targets above. Example: [\"real estate agent london\"].",
            "items": {
              "type": "string"
            }
          },
          "maxProfiles": {
            "title": "🎯 Max profiles per keyword",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum candidate profiles to discover per keyword in discovery mode (does not limit direct targets). Google realistically returns ~100 results per query, so values above that just stop early. Capped at 500 to protect against runaway runs. Example: 20. Default is 20.",
            "default": 20
          },
          "country": {
            "title": "🌍 Country (dial code)",
            "enum": [
              "Afghanistan (+93)",
              "Albania (+355)",
              "Algeria (+213)",
              "Andorra (+376)",
              "Angola (+244)",
              "Antigua And Barbuda (+1-268)",
              "Argentina (+54)",
              "Armenia (+374)",
              "Australia (+61)",
              "Austria (+43)",
              "Azerbaijan (+994)",
              "Bahamas (+1-242)",
              "Bahrain (+973)",
              "Bangladesh (+880)",
              "Barbados (+1-246)",
              "Belarus (+375)",
              "Belgium (+32)",
              "Belize (+501)",
              "Benin (+229)",
              "Bhutan (+975)",
              "Bolivia (+591)",
              "Bosnia And Herzegovina (+387)",
              "Botswana (+267)",
              "Brazil (+55)",
              "Brunei (+673)",
              "Bulgaria (+359)",
              "Burkina Faso (+226)",
              "Burundi (+257)",
              "Cambodia (+855)",
              "Cameroon (+237)",
              "Canada (+1)",
              "Cape Verde (+238)",
              "Central African Republic (+236)",
              "Chad (+235)",
              "Chile (+56)",
              "China (+86)",
              "Colombia (+57)",
              "Comoros (+269)",
              "Congo (Democratic Republic) (+243)",
              "Congo (Republic) (+242)",
              "Costa Rica (+506)",
              "Croatia (+385)",
              "Cuba (+53)",
              "Cyprus (+357)",
              "Czech Republic (+420)",
              "Denmark (+45)",
              "Djibouti (+253)",
              "Dominica (+1-767)",
              "Dominican Republic (+1-809)",
              "East Timor (+670)",
              "Ecuador (+593)",
              "Egypt (+20)",
              "El Salvador (+503)",
              "Equatorial Guinea (+240)",
              "Eritrea (+291)",
              "Estonia (+372)",
              "Eswatini (+268)",
              "Ethiopia (+251)",
              "Fiji (+679)",
              "Finland (+358)",
              "France (+33)",
              "Gabon (+241)",
              "Gambia (+220)",
              "Georgia (+995)",
              "Germany (+49)",
              "Ghana (+233)",
              "Greece (+30)",
              "Grenada (+1-473)",
              "Guatemala (+502)",
              "Guinea (+224)",
              "Guinea-Bissau (+245)",
              "Guyana (+592)",
              "Haiti (+509)",
              "Honduras (+504)",
              "Hungary (+36)",
              "Iceland (+354)",
              "India (+91)",
              "Indonesia (+62)",
              "Iran (+98)",
              "Iraq (+964)",
              "Ireland (+353)",
              "Israel (+972)",
              "Italy (+39)",
              "Jamaica (+1-876)",
              "Japan (+81)",
              "Jordan (+962)",
              "Kazakhstan (+7)",
              "Kenya (+254)",
              "Kiribati (+686)",
              "Korea, North (+850)",
              "Korea, South (+82)",
              "Kuwait (+965)",
              "Kyrgyzstan (+996)",
              "Laos (+856)",
              "Latvia (+371)",
              "Lebanon (+961)",
              "Lesotho (+266)",
              "Liberia (+231)",
              "Libya (+218)",
              "Liechtenstein (+423)",
              "Lithuania (+370)",
              "Luxembourg (+352)",
              "Madagascar (+261)",
              "Malawi (+265)",
              "Malaysia (+60)",
              "Maldives (+960)",
              "Mali (+223)",
              "Malta (+356)",
              "Marshall Islands (+692)",
              "Mauritania (+222)",
              "Mauritius (+230)",
              "Mexico (+52)",
              "Micronesia (+691)",
              "Moldova (+373)",
              "Monaco (+377)",
              "Mongolia (+976)",
              "Montenegro (+382)",
              "Morocco (+212)",
              "Mozambique (+258)",
              "Myanmar (+95)",
              "Namibia (+264)",
              "Nauru (+674)",
              "Nepal (+977)",
              "Netherlands (+31)",
              "New Zealand (+64)",
              "Nicaragua (+505)",
              "Niger (+227)",
              "Nigeria (+234)",
              "North Macedonia (+389)",
              "Norway (+47)",
              "Oman (+968)",
              "Pakistan (+92)",
              "Palau (+680)",
              "Panama (+507)",
              "Papua New Guinea (+675)",
              "Paraguay (+595)",
              "Peru (+51)",
              "Philippines (+63)",
              "Poland (+48)",
              "Portugal (+351)",
              "Qatar (+974)",
              "Romania (+40)",
              "Russia (+7)",
              "Rwanda (+250)",
              "Saint Kitts And Nevis (+1-869)",
              "Saint Lucia (+1-758)",
              "Saint Vincent And The Grenadines (+1-784)",
              "Samoa (+685)",
              "San Marino (+378)",
              "Sao Tome And Principe (+239)",
              "Saudi Arabia (+966)",
              "Senegal (+221)",
              "Serbia (+381)",
              "Seychelles (+248)",
              "Sierra Leone (+232)",
              "Singapore (+65)",
              "Slovakia (+421)",
              "Slovenia (+386)",
              "Solomon Islands (+677)",
              "Somalia (+252)",
              "South Africa (+27)",
              "South Sudan (+211)",
              "Spain (+34)",
              "Sri Lanka (+94)",
              "Sudan (+249)",
              "Suriname (+597)",
              "Sweden (+46)",
              "Switzerland (+41)",
              "Syria (+963)",
              "Taiwan (+886)",
              "Tajikistan (+992)",
              "Tanzania (+255)",
              "Thailand (+66)",
              "Togo (+228)",
              "Tonga (+676)",
              "Trinidad And Tobago (+1-868)",
              "Tunisia (+216)",
              "Turkey (+90)",
              "Turkmenistan (+993)",
              "Tuvalu (+688)",
              "Uganda (+256)",
              "Ukraine (+380)",
              "United Arab Emirates (+971)",
              "United Kingdom (+44)",
              "United States (+1)",
              "Uruguay (+598)",
              "Uzbekistan (+998)",
              "Vanuatu (+678)",
              "Venezuela (+58)",
              "Vietnam (+84)",
              "Yemen (+967)",
              "Zambia (+260)",
              "Zimbabwe (+263)"
            ],
            "type": "string",
            "description": "Used to localize the SERP discovery query and to parse local (non-+) phone numbers into E.164. Example: United Kingdom (+44).",
            "default": "United Kingdom (+44)"
          },
          "hasPhoneOnly": {
            "title": "📞 Only leads with a phone",
            "type": "boolean",
            "description": "Emit only profiles that have a business phone or a valid phone extracted from their bio. Default is false.",
            "default": false
          },
          "hasEmailOnly": {
            "title": "📧 Only leads with an email",
            "type": "boolean",
            "description": "Emit only profiles that have a business email or an email extracted from their bio. Default is false.",
            "default": false
          },
          "businessOnly": {
            "title": "🏢 Only business accounts",
            "type": "boolean",
            "description": "Emit only profiles where is_business_account is true. Default is false.",
            "default": false
          },
          "verifiedOnly": {
            "title": "✅ Only verified accounts",
            "type": "boolean",
            "description": "Emit only verified (blue-tick) profiles. Default is false.",
            "default": false
          },
          "minFollowers": {
            "title": "👥 Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Emit only profiles with at least this many followers. 0 = no minimum. Default is 0.",
            "default": 0
          },
          "concurrency": {
            "title": "⚡ Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Profiles enriched in parallel (each on a fresh proxy IP + fresh Chrome TLS client). Keep conservative to avoid Instagram rate limits. Default is 2.",
            "default": 2
          },
          "maxRetries": {
            "title": "🔁 Max retries",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry fetching a profile before recording an error row. Default is 3.",
            "default": 3
          },
          "delayMs": {
            "title": "⏳ Delay between requests (ms)",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Base delay used for per-profile jitter and retry back-off. Default is 2000.",
            "default": 2000
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Proxy for the profile-enrichment requests. RESIDENTIAL is strongly recommended — Instagram blocks most datacenter IPs. A fresh IP is used per profile. (SERP discovery always uses the Apify GOOGLE_SERP proxy.)"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}