{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Follower Changes Tracker & Monitor",
    "description": "Instagram followers tracker and unfollowers checker — see who follows any public Instagram account and who just unfollowed. Your first check saves the current follower list, then every later check names the people who left and the ones who newly arrived. Run it daily and get the changes by email.",
    "version": "0.0",
    "x-build-id": "FgfewXfULHipi54WI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/afanasenko~instagram-follower-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-afanasenko-instagram-follower-tracker",
        "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/afanasenko~instagram-follower-tracker/runs": {
      "post": {
        "operationId": "runs-sync-afanasenko-instagram-follower-tracker",
        "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/afanasenko~instagram-follower-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-afanasenko-instagram-follower-tracker",
        "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 accounts to track",
            "type": "array",
            "description": "Enter one or more public Instagram usernames or profile URLs. A paid task can keep a client or creator portfolio together; the free plan tracks one account. Private accounts cannot be tracked because Instagram hides their follower lists.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "automaticFirstComparison": {
            "title": "Get the first confirmed comparison automatically (paid beta)",
            "type": "boolean",
            "description": "Explicit opt-in: runs 3 follower observations in the background, about 2 hours apart, and returns the result to this run's storage. Paid plans only; exactly 1 public account with up to 2,500 followers; followers-only. Each observation is billed separately at your plan's 10,000-follower minimum ($0.50 Bronze to $0.30 Diamond), so the Actor charge is up to $1.50 total. Not supported through x402 beta yet.",
            "default": false
          },
          "notificationEmail": {
            "title": "📩 Email me the changes",
            "pattern": "^$|^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "type": "string",
            "description": "Sends one setup reminder after the baseline, then new followers and unfollowers from later runs. Without email, check Output manually. Used only for tracker messages, then discarded.",
            "default": ""
          },
          "trackFollowers": {
            "title": "Track New followers & unfollowers",
            "type": "boolean",
            "description": "Reports new followers and unfollowers. Paid plans track up to 150k followers; free runs save the latest 2,500. At least one tracking option must stay on.",
            "default": true
          },
          "trackFollowing": {
            "title": "Track Following changes",
            "type": "boolean",
            "description": "Optional: reports accounts the target starts or stops following. Reliable up to 1,000 following. Changes appear from run 3. At least one tracking option must stay on.",
            "default": false
          },
          "engagementAudit": {
            "title": "Find Top Fans & Ghost Followers",
            "type": "boolean",
            "description": "Optional: finds top fans, ghost followers, and engaged non-followers from recent posts when the full followers list is readable. Cached for a week, so a run that reuses the cached result is not charged again. On a paid plan it is charged once per audited account ($0.20 on Bronze down to $0.10 on Diamond); on the free plan it is not charged.",
            "default": false
          },
          "_automaticComparisonParentDatasetId": {
            "title": "Automatic comparison output dataset",
            "type": "string",
            "description": "Internal limited-permission reference used to return background observation rows to the launcher's dataset."
          },
          "_automaticComparisonParentKeyValueStoreId": {
            "title": "Automatic comparison output store",
            "type": "string",
            "description": "Internal limited-permission reference used to return background status and summaries to the launcher's storage."
          },
          "_automaticComparisonRole": {
            "title": "Automatic comparison internal role",
            "type": "string",
            "description": "Internal workflow role; ordinary users should leave this unset."
          },
          "_automaticComparisonWorkflowId": {
            "title": "Automatic comparison workflow id",
            "type": "string",
            "description": "Internal PII-free identifier joining the launcher, controller, and observation runs."
          },
          "_automaticComparisonStep": {
            "title": "Automatic comparison observation step",
            "type": "integer",
            "description": "Internal observation number in the three-check workflow."
          },
          "_automaticComparisonMaxFollowers": {
            "title": "Automatic comparison follower cap",
            "type": "integer",
            "description": "Internal safety cap applied before any paginated follower read."
          },
          "_automaticComparisonExpiresAt": {
            "title": "Automatic comparison capability expiry",
            "type": "integer",
            "description": "Internal short-lived capability expiry. Ordinary users should leave this unset."
          },
          "_automaticComparisonCapability": {
            "title": "Automatic comparison internal capability",
            "type": "string",
            "description": "Internal signed capability that prevents direct callers from spoofing controller or observation roles."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}