{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Profile Scraper - Posts, Emails & Engagement",
    "description": "Scrape Instagram profiles without login: bio, category, followers, business email, phone and address, every bio link unwrapped, recent posts and reels with likes/comments/captions/hashtags, engagement rate, and related-account discovery. No API key, no cookies.",
    "version": "0.1",
    "x-build-id": "WmRrSgpqeCUmoeAFt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/flash_scraper~instagram-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-flash_scraper-instagram-profile-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/flash_scraper~instagram-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-flash_scraper-instagram-profile-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/flash_scraper~instagram-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-flash_scraper-instagram-profile-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": "Instagram usernames or profile URLs",
            "type": "array",
            "description": "Handles or profile URLs, in any mix: 'nasa', '@nasa', 'https://www.instagram.com/nasa/'. Private accounts return their public profile record but no posts.",
            "default": [
              "nasa",
              "nike"
            ],
            "items": {
              "type": "string"
            }
          },
          "discoverRelated": {
            "title": "Discover related profiles",
            "type": "boolean",
            "description": "Instagram returns up to ~49 related accounts per profile. Turn this on to follow them and find new accounts from a single seed handle - it keeps going until 'Max profiles' is reached.",
            "default": false
          },
          "maxRelatedPerProfile": {
            "title": "Related profiles to follow per account",
            "minimum": 1,
            "maximum": 49,
            "type": "integer",
            "description": "How many of each profile's related accounts to add to the queue. Only used when discovery is on.",
            "default": 10
          },
          "maxProfiles": {
            "title": "Max profiles",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on profiles scraped in one run - the stop condition for discovery.",
            "default": 50
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no filter.",
            "default": 0
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no filter. Use it to target micro-influencers instead of megastars.",
            "default": 0
          },
          "onlyVerified": {
            "title": "Only verified accounts",
            "type": "boolean",
            "description": "Keep only accounts with Instagram's blue verification badge.",
            "default": false
          },
          "onlyBusinessAccounts": {
            "title": "Only business / professional accounts",
            "type": "boolean",
            "description": "Business accounts are the ones that can expose a public email, phone and address.",
            "default": false
          },
          "onlyWithContact": {
            "title": "Only profiles with an email or phone",
            "type": "boolean",
            "description": "Keeps only rows carrying a business email/phone or an email found in the bio text.",
            "default": false
          },
          "onlyWithLink": {
            "title": "Only profiles with a link in bio",
            "type": "boolean",
            "description": "Keep only profiles that have at least one link in their bio.",
            "default": false
          },
          "skipPrivate": {
            "title": "Skip private accounts",
            "type": "boolean",
            "description": "Private profiles still return name, category and follower counts, but never posts.",
            "default": false
          },
          "alsoEmitPosts": {
            "title": "Also emit one row per post",
            "type": "boolean",
            "description": "Every profile row already nests its posts and reels. Turn this on to ALSO get a flat row per post (marked record_type: post) for spreadsheet analysis. Note: post rows are charged too.",
            "default": false
          },
          "maxPostsPerProfile": {
            "title": "Max posts per profile",
            "minimum": 0,
            "maximum": 12,
            "type": "integer",
            "description": "0 = keep all of them. Instagram's public profile endpoint returns about 12 recent posts plus 12 recent reels; there is no way to page further without an account, so this only trims, never extends.",
            "default": 0
          },
          "delaySeconds": {
            "title": "Delay between profiles",
            "type": "string",
            "description": "Seconds to pause between profiles. Instagram throttles bursts hard, so lowering this raises the chance of a 'please wait' stop mid-run.",
            "default": "1.0"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "REQUIRED in practice. Instagram blocks shared cloud/datacenter IPs outright - verified: 6 consecutive Apify datacenter IPs were all refused within 1.5 seconds. Use the RESIDENTIAL group, or your own residential proxy. The Actor rotates to a fresh IP automatically each time Instagram throttles it.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}