{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Followers & Following Scraper [From 💰$0.99] No Login",
    "description": "[From 💰$0.99/1k] Scrape the followers and following of any public Instagram account — no login, no cookies, zero risk to your account. Get username, full name, verified & private flags, profile pic and profile URL for every account. Followers, following, or both, many profiles per run.",
    "version": "1.0",
    "x-build-id": "B7sRY6ohZBscOnS1B"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~instagram-following-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-instagram-following-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-following-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-instagram-following-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-following-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-instagram-following-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 usernames",
            "type": "array",
            "description": "Public Instagram accounts whose followers and/or following lists you want to scrape. Accepts plain handles (zuck), @-handles (@zuck), or profile URLs (https://www.instagram.com/zuck) — one per line, mixed formats are fine. Private accounts return an error item. Example: [\"zuck\", \"https://www.instagram.com/therock\"]. Required, no default.",
            "items": {
              "type": "string"
            }
          },
          "dataToScrape": {
            "title": "Data to scrape",
            "enum": [
              "followings",
              "followers",
              "both"
            ],
            "type": "string",
            "description": "Which list to collect for each account: Followings (accounts they follow), Followers (accounts that follow them), or both at once. Default: Followings.",
            "default": "followings"
          },
          "maxResultsPerUser": {
            "title": "Max results per user",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of accounts to collect per username per list. Use it to cap cost or sample a profile. Leave empty to fetch complete lists. Example: 500. Default: unlimited."
          },
          "enrichWithCounts": {
            "title": "Add follower counts to each result (costs extra)",
            "type": "boolean",
            "description": "Off by default. On: every returned account is also looked up individually, adding followersCount, followsCount, postsCount, isBusiness, biography, externalUrl, publicEmail, publicPhone, category and fbId to its row — so you can rank a following list by audience size or pull contact details for the business accounts in it. Instagram's list endpoints do not carry these fields, so each enriched account costs one extra request and is billed as its own event on top of the per-result price. A lookup that fails still returns the account, unenriched and unbilled. Paid Apify plans only.",
            "default": false
          },
          "searchQuery": {
            "title": "Search inside the list",
            "type": "string",
            "description": "Keep only accounts whose username or display name contains this text, ignoring case. It matches anywhere in the text, so <code>shop</code> also keeps <code>coffeeshop</code>. Accounts that don't match are skipped and never billed. With maxResultsPerUser set, the list is walked until that many matches are found or it ends. Leave empty to keep every account. Example: <code>shop</code>."
          },
          "excludePrivate": {
            "title": "Exclude private accounts",
            "type": "boolean",
            "description": "Drop private accounts before billing. Useful for outreach lists — private profiles cannot be messaged from content. Off by default.",
            "default": false
          },
          "bioKeywords": {
            "title": "Bio must contain",
            "type": "array",
            "description": "Keep only accounts whose bio contains at least one of these keywords, ignoring case; a keyword matches anywhere in the bio. Each account that passes the other filters is looked up to read its bio, so this turns on enrichment: a saved match is billed its result plus one profile lookup and carries the same extra fields as enrichWithCounts, while lookups for accounts that don't match are not billed. With maxResultsPerUser set, it counts matches. When the run's charge limit cannot pay for another match, the run stops and says so in the log. Leave empty for no bio filter. Example: [\"coach\", \"agency\"].",
            "items": {
              "type": "string"
            }
          },
          "includeHistorical": {
            "title": "Include historical (churned) accounts",
            "type": "boolean",
            "description": "Also return accounts seen in this profile's follower/following list on earlier runs that are NOT in it today — i.e. accounts that have since unfollowed or been unfollowed (churn) — tagged source:\"archive\" with firstSeenAt/lastSeenAt. Off by default. Enabling it fetches live (skips the fast cache) so the churn comparison uses the full current list. Paid Apify plans only.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}