{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Followers Scraper With Bio Contact Enrichment",
    "description": "Instagram Followers Scraper is an Apify actor that extracts public follower data from Instagram profiles. Collect usernames, profile links, bios, and engagement details in structured formats like JSON or CSV. Ideal for lead generation, influencer research, and audience analysis.",
    "version": "0.1",
    "x-build-id": "BacRa5i99eAA8dg5m"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~instagram-followers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-instagram-followers-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/scraper-engine~instagram-followers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-instagram-followers-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/scraper-engine~instagram-followers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-instagram-followers-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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "📋 Instagram Profile URLs or Usernames",
            "type": "array",
            "description": "List of Instagram profile URLs or usernames to scrape followers from.\n\nExamples:\n• https://www.instagram.com/cristiano/\n• https://www.instagram.com/nike/\n• cristiano\n• nike\n\nYou can add multiple profiles to scrape in one run.",
            "items": {
              "type": "string"
            }
          },
          "maxData": {
            "title": "📊 Maximum Followers per Profile",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of followers to collect per profile, AFTER any active filters are applied (a filtered-out row does not count toward this limit).\n\nRange: 1-100,000 followers. Default: 100.",
            "default": 100
          },
          "sessionId": {
            "title": "🍪 Instagram sessionid (recommended)",
            "type": "string",
            "description": "Optional but strongly recommended for better success rates.\n\nHow to get your Session ID:\n1. Log into Instagram in your browser\n2. Open Developer Tools (F12 or Right-click → Inspect)\n3. Go to Application/Storage → Cookies → https://www.instagram.com\n4. Find and copy the 'sessionid' value\n\nExample format: 80339464000%3AMwlUEdZkdshtFG%3A5%3AAYiJEi32U_OOJkvXyc232wBhDZz1Q4zQOFhTFSTy3g\n\nWithout a session ID, the scraper may have limited access and lower success rates."
          },
          "enrichProfiles": {
            "title": "🔬 Enrich Follower Profiles",
            "type": "boolean",
            "description": "When ON, up to enrichTopN collected followers per profile get an extra profile fetch adding: biography, external_url, follower_count, following_count, media_count, is_business_account, business_category_name, public_email, public_phone_number.",
            "default": false
          },
          "enrichTopN": {
            "title": "🔢 Max Profiles to Enrich (per profile)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Caps how many followers PER seed profile get the extra enrichment fetch (protects against N extra requests per follower). Only applies when enrichProfiles is ON, or when an enrichment-dependent filter below is set. Default: 25.",
            "default": 25
          },
          "enrichConcurrency": {
            "title": "⚙️ Enrichment Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum number of profile-enrichment requests in flight at once across the whole run. Higher = faster but more likely to trip Instagram's rate limiting. Default: 3.",
            "default": 3
          },
          "hasEmail": {
            "title": "📧 Has Public Email Only",
            "type": "boolean",
            "description": "Keep only followers whose enriched profile has a public business email.",
            "default": false
          },
          "hasPhone": {
            "title": "📞 Has Public Phone Only",
            "type": "boolean",
            "description": "Keep only followers whose enriched profile has a public business phone number.",
            "default": false
          },
          "businessOnly": {
            "title": "🏢 Business Accounts Only",
            "type": "boolean",
            "description": "Keep only followers whose enriched profile is flagged as a business/professional account.",
            "default": false
          },
          "verifiedOnly": {
            "title": "✅ Verified Accounts Only",
            "type": "boolean",
            "description": "Keep only verified (blue-check) followers. Uses the always-collected is_verified field — does not require enrichment.",
            "default": false
          },
          "minFollowers": {
            "title": "📈 Minimum Follower Count",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only followers whose OWN follower_count (from enrichment) is at least this number. Leave blank to disable."
          },
          "maxFollowers": {
            "title": "📉 Maximum Follower Count",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only followers whose OWN follower_count (from enrichment) is at most this number. Leave blank to disable."
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy Configuration",
            "type": "object",
            "description": "Configure proxy settings for enhanced reliability and bypassing restrictions.\n\nSmart fallback: no proxy (default) → datacenter proxy → residential proxy, escalating automatically on 403/429 responses."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}