{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Bot / Fake-Follower Heuristic Analyzer",
    "description": "Analyze public Instagram profiles for suspicious audience-quality signals using transparent heuristics. Export flat CSV-friendly bot-risk scores, confidence fields, and reason tags for influencer vetting, creator screening, and manual review.",
    "version": "1.4",
    "x-build-id": "eljOhOF2VMauafeWX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~instagram-bot-fake-follower-heuristic-analyzer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-instagram-bot-fake-follower-heuristic-analyzer",
        "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-bot-fake-follower-heuristic-analyzer/runs": {
      "post": {
        "operationId": "runs-sync-coregent-instagram-bot-fake-follower-heuristic-analyzer",
        "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-bot-fake-follower-heuristic-analyzer/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-instagram-bot-fake-follower-heuristic-analyzer",
        "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": "Public Instagram profiles to analyze. Accepts bare handles, @handles, and full profile URLs in any mix, so you can paste a list straight from a spreadsheet. Examples: natgeo, @nasa, https://www.instagram.com/tesla/. Post and reel URLs are rejected. Duplicates are removed automatically, case-insensitively.",
            "items": {
              "type": "string"
            },
            "default": [
              "natgeo"
            ]
          },
          "maxProfiles": {
            "title": "Max Profiles Per Run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Safety cap on how many unique profiles a single run will analyze, applied after duplicates are removed. Protects against pasting a larger list than intended — you are never billed for profiles beyond this cap.",
            "default": 100
          },
          "analysisDepth": {
            "title": "Analysis Depth",
            "enum": [
              "quick",
              "standard",
              "deep",
              "custom"
            ],
            "type": "string",
            "description": "How much evidence to gather per profile. Standard suits most influencer vetting. Quick skips the recent-posts sample entirely — fastest, but engagement flags cannot fire and confidence drops. Deep samples every post Instagram exposes (about 12) for the strongest median/variance and posting-cadence evidence. Choose Custom to drive the individual settings below yourself.",
            "default": "standard"
          },
          "includeRecentPostsSample": {
            "title": "Include Recent Posts Sample (legacy)",
            "type": "boolean",
            "description": "Legacy. Always on; the value sent here is ignored. Recent posts arrive embedded in the profile response, so sampling them costs nothing. To analyze without a post sample, use Analysis Depth = Quick, or Custom with Recent Posts Limit = 0.",
            "default": true
          },
          "recentPostsLimit": {
            "title": "Recent Posts Limit",
            "minimum": 0,
            "maximum": 24,
            "type": "integer",
            "description": "Maximum number of recent posts/reels analyzed per profile. Only used when Analysis Depth is Custom. Note that Instagram exposes about 12 recent posts, so values above that return the same sample and may cost an extra request.",
            "default": 9
          },
          "includeDerivedSignals": {
            "title": "Include Derived Signals (legacy)",
            "type": "boolean",
            "description": "Legacy. Always on; the value sent here is ignored. Turning it off used to suppress the engagement evidence the bot-risk score is built from, so a suspicious profile could read as low risk at full confidence. The ratio fields are always computed and always populated.",
            "default": true
          },
          "includeProfileContext": {
            "title": "Include Profile Context (legacy)",
            "type": "boolean",
            "description": "Legacy. Always on; the value sent here is ignored. The public profile context fields (biography, external URL, account type) are always included in the output row.",
            "default": true
          },
          "minPostsForFullConfidence": {
            "title": "Minimum Posts For Full Confidence",
            "minimum": 0,
            "maximum": 24,
            "type": "integer",
            "description": "Threshold used for the confidence score (default 3). This is not a hard requirement — profiles with fewer visible recent posts than this still produce a row, just with a lower confidence score."
          },
          "minVisiblePostsRequired": {
            "title": "Minimum Visible Posts (legacy)",
            "minimum": 0,
            "maximum": 24,
            "type": "integer",
            "description": "Legacy alias for minPostsForFullConfidence. Hidden from the form; still accepted over the API so existing saved tasks keep working. If both are set, minPostsForFullConfidence wins."
          },
          "profileUrls": {
            "title": "Instagram Profile URLs (legacy)",
            "type": "array",
            "description": "Legacy input. Profile URLs now go in the Instagram Usernames or Profile URLs field alongside handles. Hidden from the form; still accepted over the API so existing saved tasks keep working — anything set here is merged and deduped with that field.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "requestTimeoutSecs": {
            "title": "Request Timeout (seconds)",
            "minimum": 30,
            "maximum": 600,
            "type": "integer",
            "description": "Internal. Maximum time in seconds for processing each profile. Tuned internally; kept in the schema so existing saved tasks that set it keep working.",
            "default": 180
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Internal. Profiles processed concurrently. Held at 1 to reduce rate-limit pressure; kept in the schema so existing saved tasks that set it keep working.",
            "default": 1
          },
          "debugMode": {
            "title": "Debug Mode",
            "type": "boolean",
            "description": "Internal. Verbose logging.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}