{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Location Scraper & Comments",
    "description": "Instagram Location Scraper extracts posts from any Instagram location page. Collect captions, media, hashtags, timestamps, and engagement metrics. Ideal for local research, trend tracking, audience insights, and workflows needing structured location-based Instagram data.",
    "version": "0.1",
    "x-build-id": "bZ3jSCu9d7FC8T3gk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~instagram-location-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-instagram-location-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/api-empire~instagram-location-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-instagram-location-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/api-empire~instagram-location-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-instagram-location-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": "📍 Location URLs, @usernames, or place keywords",
            "type": "array",
            "description": "Instagram location page URLs, @usernames (their posts' tagged locations), or place keywords. Example URL: https://www.instagram.com/explore/locations/213131048/berlin-germany/",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🧾 Post limit",
            "minimum": 0,
            "type": "integer",
            "description": "How many location posts to collect before stopping. Use 0 for no limit.",
            "default": 20
          },
          "sessionId": {
            "title": "🔑 Instagram sessionId cookie",
            "type": "string",
            "description": "Your logged-in Instagram sessionid cookie value. Required in practice: location posts AND comments are behind Instagram's login wall. Copy it from your browser cookies for instagram.com."
          },
          "includeComments": {
            "title": "💬 Fetch comments for each post",
            "type": "boolean",
            "description": "When on, each post row is enriched with its real comments (author, text, likes, time). Turn off to only collect posts.",
            "default": true
          },
          "commentsPerPost": {
            "title": "🔢 Max comments per post",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on comments fetched per post (most-popular first). Kept modest to avoid Instagram soft-blocks. Use 0 to skip comment fetching.",
            "default": 30
          },
          "includeReplies": {
            "title": "↪️ Include reply threads",
            "type": "boolean",
            "description": "Also fetch threaded replies under each comment (up to 20 per comment). Adds extra requests and raises block risk, so it is off by default.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛰️ Proxy",
            "type": "object",
            "description": "Proxy settings. If Instagram rejects the connection, the actor falls back to a residential proxy automatically."
          },
          "dateFilterType": {
            "title": "🗓️ Date filter mode",
            "enum": [
              "absolute",
              "relative"
            ],
            "type": "string",
            "description": "Filter collected posts by creation date using either a relative window or an absolute date range.",
            "default": "relative"
          },
          "absoluteStartDate": {
            "title": "🗓️ From date",
            "pattern": "^(|\\d{4}-\\d{2}-\\d{2})$",
            "type": "string",
            "description": "Earliest post date (YYYY-MM-DD). Used when date filter mode is 'absolute'.",
            "default": ""
          },
          "absoluteEndDate": {
            "title": "🗓️ To date",
            "pattern": "^(|\\d{4}-\\d{2}-\\d{2})$",
            "type": "string",
            "description": "Latest post date (YYYY-MM-DD). Used when date filter mode is 'absolute'. Leave empty for today.",
            "default": ""
          },
          "relativeValue": {
            "title": "🔟 Relative amount",
            "minimum": 0,
            "type": "integer",
            "description": "Number of time units for the relative window (e.g. 7). Used when date filter mode is 'relative'. 0 disables the filter.",
            "default": 0
          },
          "relativeUnit": {
            "title": "⏱️ Relative unit",
            "enum": [
              "days",
              "weeks",
              "months",
              "years"
            ],
            "type": "string",
            "description": "Time unit for the relative window.",
            "default": "days"
          },
          "includeEngagement": {
            "title": "📊 Include engagement counts",
            "type": "boolean",
            "description": "Include like and comment counts on each post row.",
            "default": true
          },
          "includeVideoMetadata": {
            "title": "🎬 Include video metadata",
            "type": "boolean",
            "description": "Include video details (url, dimensions, duration) on video posts.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}