{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Scraper & Reels Downloader",
    "description": "Scrape Instagram posts, Reels, profiles, hashtags, places and comments without login. Get captions, likes, plays, transcripts and video, audio and photo links, or download Reels in 1080p. Track accounts and pay only for new posts. Export to JSON, CSV, Excel or the API. From $0.72 per 1,000 results.",
    "version": "1.5",
    "x-build-id": "yapDfnnSMIyG4TlrX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/socialbeast~instagram-scraper-reels-downloader/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-socialbeast-instagram-scraper-reels-downloader",
        "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/socialbeast~instagram-scraper-reels-downloader/runs": {
      "post": {
        "operationId": "runs-sync-socialbeast-instagram-scraper-reels-downloader",
        "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/socialbeast~instagram-scraper-reels-downloader/run-sync": {
      "post": {
        "operationId": "run-sync-socialbeast-instagram-scraper-reels-downloader",
        "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": {
          "resultsType": {
            "title": "What to scrape",
            "enum": [
              "posts",
              "reels",
              "comments",
              "details",
              "downloads"
            ],
            "type": "string",
            "description": "<b>Posts</b> → posts and Reels. <b>Reels</b> → only Reels. <b>Comments</b> → one row per comment, newest first. <b>Details</b> → one row per profile, hashtag or place. <b>Downloads</b> → each post with its video or photos saved to your storage: one download per started 50 MB of its files, up to 300 MB a post (a bigger post costs a normal post).",
            "default": "posts"
          },
          "urls": {
            "title": "Instagram URLs, @usernames or #hashtags",
            "maxItems": 50000,
            "type": "array",
            "description": "One per line:<ul><li>a post or Reel link → that post</li><li>a profile link or <code>@natgeo</code> → its latest posts</li><li>a hashtag link or <code>#travel</code> → its top posts</li><li>a place link (<code>/explore/locations/…</code>) → its details and top posts</li></ul>Or leave this empty and use <b>Search by keyword</b> below.",
            "items": {
              "type": "string"
            }
          },
          "resultsLimit": {
            "title": "Results per input",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Posts per profile, hashtag or place, or comments per post in <b>Comments</b>. You pay per result.",
            "default": 12
          },
          "onlyPostsNewerThan": {
            "title": "Only posts newer than",
            "type": "string",
            "description": "A date like <code>2026-09-01</code> or a period like <code>7 days</code> (UTC). Older posts, pinned ones too, are skipped for free. In <b>Comments</b>, older comments are skipped too."
          },
          "search": {
            "title": "Keywords",
            "type": "string",
            "description": "One or more keywords, comma-separated, e.g. <code>nike, adidas</code>. Each is searched on Google for matching Instagram profiles or hashtags, which are then scraped as <b>What to scrape</b> says. Works best with names and brands. Each Google results page read is 5 results."
          },
          "searchType": {
            "title": "Search for",
            "enum": [
              "profile",
              "hashtag",
              "user",
              "place"
            ],
            "type": "string",
            "description": "<b>Profiles</b> → accounts Google finds for the keyword. <b>Hashtags</b> → the keyword as a hashtag, then related hashtags Google finds. Places can't be searched by name (Google no longer shows Instagram place links): use place links.",
            "default": "hashtag"
          },
          "searchLimit": {
            "title": "Results per keyword",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "How many profiles or hashtags to find for each keyword (1 to 250). For posts per profile or hashtag found, use <b>Results per input</b>.",
            "default": 10
          },
          "dataDetailLevel": {
            "title": "Detail level",
            "enum": [
              "detailedData",
              "basicData"
            ],
            "type": "string",
            "description": "<b>Basic</b> (1 result a post) → every post field: video, audio and image links, caption, likes, comment count, plays, music, tags. <b>Full</b> (2 results a post) → adds each post's newest comments and Instagram's topic labels.<br><br>For <b>Details</b>: Full adds a profile's exact post count, related accounts and its latest posts' likes. A details row is 2 results either way (a place 6).",
            "default": "detailedData"
          },
          "downloadQuality": {
            "title": "Download quality",
            "enum": [
              "720p",
              "1080p",
              "audio"
            ],
            "type": "string",
            "description": "For <b>Downloads</b>. <b>720p</b> → one MP4 with sound (H.264) that plays everywhere. <b>1080p</b> → the full-quality video joined with its sound into one MP4 (VP9 video): plays in browsers, Android, VLC and CapCut, not in QuickTime or iMovie. One download more, charged only once the 1080p file is saved; one that can't be made, or would pass 300 MB, is saved in 720p without it. <b>Audio only</b> → just the sound (AAC, an .m4a file); a photo has none and is charged as a normal post. Each video also keeps its cover picture, free.",
            "default": "720p"
          },
          "commentsLimit": {
            "title": "Comments per post",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "In <b>Comments</b> mode, to set comments per post apart from <i>Results per input</i>, e.g. 5 posts from a profile with 200 comments each. Up to 10,000 (50 on the Free plan)."
          },
          "maxResults": {
            "title": "Maximum results per run",
            "minimum": 1,
            "type": "integer",
            "description": "Stops the run after this many results in all. A Full post counts 2, a details row 2 (a place 6), a transcript minute 3, a download 4. Inputs not reached get free rows. Leave empty for no limit."
          },
          "skipPinnedPosts": {
            "title": "Skip pinned posts",
            "type": "boolean",
            "description": "Leave out the posts a profile has pinned to the top. In <b>Reels</b> mode pinned Reels are left out unless you set this to off. Posts from a profile carry <code>isPinned</code> either way."
          },
          "includeAltText": {
            "title": "Include alt text (image descriptions)",
            "type": "boolean",
            "description": "Instagram's image descriptions (<code>alt</code>) for posts from profiles. Free, but makes profiles about a third slower. Left unset: on for Full, off for Basic."
          },
          "includeOwnerRecentPosts": {
            "title": "Include the owner's 12 latest posts",
            "type": "boolean",
            "description": "Adds the account's 12 latest posts (link, type, caption, thumbnail) to every post as <code>ownerRecentPosts</code>. Free; one more page per account.",
            "default": false
          },
          "includeViewCounts": {
            "title": "Include view counts (free)",
            "type": "boolean",
            "description": "Adds <code>videoViewCount</code> to videos and Reels. Play counts (<code>videoPlayCount</code>) are always included. Free; on unless you turn it off (one more small page per video).",
            "default": true
          },
          "onlyNewPosts": {
            "title": "Only new posts since the last run",
            "type": "boolean",
            "description": "For schedules: each run returns only posts earlier runs didn't, so you pay only for new ones. A profile, hashtag or place with nothing new costs 2 results. The memory is kept in your account (<code>socialbeast-instagram-memory</code>) and holds only hashes. Posts and Reels modes.",
            "default": false
          },
          "memoryName": {
            "title": "Memory name",
            "maxLength": 100,
            "type": "string",
            "description": "Runs with the same name share one memory; a new name starts a new one. Without a name, each saved task has its own."
          },
          "resetMemory": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget what the memory has returned and start over. Turn it off again after one run.",
            "default": false
          },
          "includeTranscript": {
            "title": "$ Include transcript",
            "type": "boolean",
            "description": "What's said in each Reel or video (up to 5 minutes), with its language and timed parts, in a row after the post. $0.0043 a minute on the Free plan, down to $0.0029 on Business (4 results a minute), charged before each minute. Videos with no speech are free. Needs 1 GB of memory. Free plan: 120 minutes a month.",
            "default": false
          },
          "saveMedia": {
            "title": "Save files (older input)",
            "type": "boolean",
            "description": "Accepted so inputs written for earlier versions keep working: saves each post's video or photos to your storage, in the mode and detail level asked, at the <b>Downloads</b> price (one download per started 50 MB of a post's files, up to 300 MB). Pick <b>Downloads</b> in <b>What to scrape</b> instead.",
            "default": false
          },
          "includeDownloadedVideo": {
            "title": "Save files (other scrapers' format)",
            "type": "boolean",
            "description": "Same as saveMedia. Accepted so inputs written for other Reel scrapers work unchanged: saves each post's files at the Downloads price."
          },
          "keywordSearch": {
            "title": "Keyword search (other scrapers' format)",
            "type": "boolean",
            "description": "Accepted so inputs written for other hashtag scrapers work: treats 'hashtags' entries as search phrases."
          },
          "addParentData": {
            "title": "Add parent data (other scrapers' format)",
            "type": "boolean",
            "description": "Accepted so inputs written for the most used Instagram scraper work: adds dataSource (profile, hashtag or place) to posts found through one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}