{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Scraper",
    "description": "Scrape public Instagram profiles, posts, reels, comments, hashtags and places with no login or cookies. Get followers, bio contacts, likes, plays, captions and media links. Bulk input, auto proxy fallback. Export JSON, CSV or Excel for lead generation and influencer research.",
    "version": "1.0",
    "x-build-id": "NUFNmbmrDjq4ezbmd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/data_minds~instagram-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-data_minds-instagram-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/data_minds~instagram-scraper/runs": {
      "post": {
        "operationId": "runs-sync-data_minds-instagram-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/data_minds~instagram-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-data_minds-instagram-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": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "🔗 Instagram links or names",
            "minItems": 1,
            "type": "array",
            "description": "Add one or hundreds, and mix them freely: profile links or @usernames, post and reel links, #hashtags or hashtag links, topic keywords, place links, or numeric user ids. Examples: https://www.instagram.com/natgeo/ , @natgeo , #travel , street food bangkok.",
            "items": {
              "type": "string"
            }
          },
          "resultsType": {
            "title": "🧩 What to return",
            "type": "array",
            "description": "Profile details returns the account card. Posts and Reels return their feeds. Comments adds the comments of every post collected. Related profiles adds the accounts Instagram suggests. Post links always return the post itself.",
            "items": {
              "type": "string",
              "enum": [
                "details",
                "posts",
                "reels",
                "comments",
                "relatedProfiles"
              ],
              "enumTitles": [
                "Profile details",
                "Posts",
                "Reels",
                "Comments",
                "Related profiles"
              ]
            },
            "default": [
              "details",
              "posts"
            ]
          },
          "resultsLimit": {
            "title": "🔢 Posts per input",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many posts or reels to collect for each profile, hashtag, topic or place.",
            "default": 10
          },
          "commentsLimit": {
            "title": "💬 Comments per post",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "How many comments to collect for every post. Any number above 0 turns comments on by itself. 0 collects none, unless Comments is ticked above (then 10 per post). Instagram shows visitors who are not logged in only part of a post's comments, and no like or reply counts.",
            "default": 0
          },
          "search": {
            "title": "🔍 Search a hashtag or topic",
            "type": "string",
            "description": "Optional extra search term added to your links. Use a hashtag such as travel or a topic such as street food bangkok."
          },
          "searchType": {
            "title": "🧭 Search type",
            "enum": [
              "hashtag",
              "keyword"
            ],
            "type": "string",
            "description": "Whether the search term above is a hashtag or a topic keyword.",
            "default": "hashtag"
          },
          "onlyPostsNewerThan": {
            "title": "📅 Posts newer than",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T[0-2]\\d:[0-5]\\d(:[0-5]\\d)?(\\.\\d+)?Z?)?$|^(\\d+)\\s*(minute|hour|day|week|month|year)s?$",
            "type": "string",
            "description": "Keep posts published after this date. Pick a date, or type a relative value such as 7 days, 2 months or 1 year. Times are UTC. Pinned posts may still appear. Leave empty for no limit."
          },
          "onlyPostsOlderThan": {
            "title": "⌛ Posts older than",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T[0-2]\\d:[0-5]\\d(:[0-5]\\d)?(\\.\\d+)?Z?)?$|^(\\d+)\\s*(minute|hour|day|week|month|year)s?$",
            "type": "string",
            "description": "Keep posts published before this date. Same formats as 'Posts newer than'; use both for a date range. Leave empty for no limit."
          },
          "skipPinnedPosts": {
            "title": "📌 Skip pinned posts",
            "type": "boolean",
            "description": "Leave out posts pinned to the top of a profile.",
            "default": false
          },
          "postTypes": {
            "title": "🎬 Post types",
            "type": "array",
            "description": "Keep only these kinds of posts. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "image",
                "video",
                "carousel",
                "reel"
              ],
              "enumTitles": [
                "Image",
                "Video",
                "Carousel",
                "Reel"
              ]
            }
          },
          "minLikes": {
            "title": "👍 Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only posts with at least this many likes. 0 keeps all.",
            "default": 0
          },
          "minComments": {
            "title": "💭 Minimum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only posts with at least this many comments. 0 keeps all.",
            "default": 0
          },
          "minVideoPlays": {
            "title": "📺 Minimum video plays",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only videos and reels with at least this many plays. 0 keeps all.",
            "default": 0
          },
          "captionKeywords": {
            "title": "🔖 Caption must contain",
            "type": "array",
            "description": "Keep only posts whose caption contains any of these words or phrases. Leave empty to keep all.",
            "items": {
              "type": "string"
            }
          },
          "excludeCaptionKeywords": {
            "title": "🚫 Caption must not contain",
            "type": "array",
            "description": "Drop posts whose caption contains any of these words or phrases.",
            "items": {
              "type": "string"
            }
          },
          "onlyPaidPartnerships": {
            "title": "🤝 Only paid partnerships",
            "type": "boolean",
            "description": "Keep only posts marked as a paid partnership.",
            "default": false
          },
          "commentsNewerThan": {
            "title": "🕒 Comments newer than",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T[0-2]\\d:[0-5]\\d(:[0-5]\\d)?(\\.\\d+)?Z?)?$|^(\\d+)\\s*(minute|hour|day|week|month|year)s?$",
            "type": "string",
            "description": "Keep comments posted after this date. Pick a date, or type a relative value such as 3 days or 1 month. Leave empty for no limit."
          },
          "profileStats": {
            "title": "📈 Profile statistics",
            "type": "boolean",
            "description": "Add averages for likes, comments, plays, engagement rate, posting cadence and top hashtags to every profile row.",
            "default": true
          },
          "addParentData": {
            "title": "🧾 Add source label",
            "type": "boolean",
            "description": "Add a dataSource field to every post: profile for profile posts, hashtag for hashtag posts, keyword, location or post.",
            "default": false
          },
          "embedCommentsInPosts": {
            "title": "📎 Put comments inside posts",
            "type": "boolean",
            "description": "Store the comments in each post's latestComments field instead of as separate rows in the Comments table.",
            "default": false
          },
          "enrichSearchResults": {
            "title": "🔬 Full details for search results",
            "type": "boolean",
            "description": "Hashtag, topic and reel results arrive with few fields. Switch on to fetch likes, date, tags and music for each (adds run time for every post).",
            "default": true
          },
          "enrichOwners": {
            "title": "🧮 Engagement rate for every post",
            "type": "boolean",
            "description": "Read the follower count of each post author so engagement rate can be calculated for hashtag, topic, single-post and collaboration posts (adds run time for every author).",
            "default": true
          },
          "addReelPlayCounts": {
            "title": "🎥 Reel play counts",
            "type": "boolean",
            "description": "Fill the play count of reels found in a profile feed.",
            "default": true
          },
          "playCountLookupPages": {
            "title": "📄 Extra pages for play counts",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How far back to look for the play count of older reels that have none yet. Higher values take longer.",
            "default": 10
          },
          "includeAltText": {
            "title": "📝 Image descriptions",
            "type": "boolean",
            "description": "Fill the alt field with Instagram's image description (adds run time).",
            "default": true
          },
          "maxRelatedProfiles": {
            "title": "👯 Related profiles per profile",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Most related profiles to keep for each profile. Used when Related profiles is selected.",
            "default": 30
          },
          "incrementalKey": {
            "title": "🔔 Monitoring key",
            "type": "string",
            "description": "Give a name such as brand-watch to return only posts and comments that earlier runs with the same name have not returned yet. Leave empty to return everything every time."
          },
          "excludeIds": {
            "title": "🙈 IDs to skip",
            "type": "array",
            "description": "Post ids, short codes or comment ids that must never be returned.",
            "items": {
              "type": "string"
            }
          },
          "maxTotalRecords": {
            "title": "🛑 Maximum rows per run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Hard stop for the whole run (profiles, posts and comments together). Comments count as rows, so raise it when you ask for many comments per post.",
            "default": 1000
          },
          "concurrency": {
            "title": "🚦 Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many requests run at the same time. Lower it if Instagram slows you down.",
            "default": 4
          },
          "requestDelay": {
            "title": "🐢 Delay between requests",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Pause after each request in seconds. A little random variation is added.",
            "default": 0.4
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Optional. Choose an Apify proxy or your own proxy if you want requests to go through one. Leave the default if you do not need it.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}