{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reels Scraper — Video, Audio & Thumbnail Assets",
    "description": "Scrapes Reels from Instagram by profile, hashtag, or explore feed, capturing video URLs, captions, hashtags, audio details, thumbnails, views, likes, comments, and timestamps. Ideal for trend research, influencer analysis, and large-scale Reels data extraction",
    "version": "0.1",
    "x-build-id": "BAiZyLqa3iWAjDyr5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapio~instagram-reels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapio-instagram-reels-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/scrapio~instagram-reels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapio-instagram-reels-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/scrapio~instagram-reels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapio-instagram-reels-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",
        "properties": {
          "creatorHandles": {
            "title": "🎥📥 Creator Usernames / Profile URLs",
            "type": "array",
            "description": "🎯 Add one or more Instagram usernames, @handles, or profile URLs whose Reels you want to scrape. Example: natgeo, @nasa, https://instagram.com/nike. (Also accepts the base field name `username`.)",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerCreator": {
            "title": "🔟🎬 Max Reels Per Creator",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "📦 Maximum number of reels to collect per creator. (Also accepts the base field name `resultsLimit`.)"
          },
          "postsSince": {
            "title": "📅⏱️ Posts Newer Than",
            "type": "string",
            "description": "🗓️ Fetch only recent posts after a specific date. Use the date picker for an absolute date (YYYY-MM-DD) or type a relative time like 7 days, 2 weeks, or 1 month. Leave empty to fetch all. (Also accepts the base field name `onlyPostsNewerThan`.)"
          },
          "skipPinned": {
            "title": "📌⏭️ Skip Pinned Posts",
            "type": "boolean",
            "description": "🙈 Turn on to ignore pinned posts and focus on regular timeline content. Unchecked (false) matches the base default. (Also accepts the base field name `skipPinnedPosts`.)"
          },
          "showShareCount": {
            "title": "🔁📊 Include Share Count",
            "type": "boolean",
            "description": "📈 Include share count for each reel when Instagram makes it available. Unchecked (false) matches the base default. (Also accepts the base field name `includeSharesCount`.)"
          },
          "generateCaptionTranscript": {
            "title": "📝🎙️ Generate Caption Transcript",
            "type": "boolean",
            "description": "🧠 Extract and include the caption/spoken-audio transcript text in your output data. Unchecked (false) matches the base default. (Also accepts the base field name `includeTranscript`.)"
          },
          "downloadVideoAssets": {
            "title": "⬇️🎬 Download Video To Key-Value Store",
            "type": "boolean",
            "description": "💾 Download the reel's video file(s) to the Key-Value Store, per the quality mode selected below. Unchecked (false) matches the base default. (Also accepts the base field name `includeDownloadedVideo`.)"
          },
          "videoQualityMode": {
            "title": "🎚️📶 Video Quality Selection",
            "enum": [
              "highest",
              "lowest",
              "all"
            ],
            "type": "string",
            "description": "📶 Which of Instagram's own multiple video bitrates/resolutions (`video_versions`) to save when 'Download Video' is on. 'Highest'/'Lowest' save one file; 'All' saves every distinct quality under its own Key-Value Store key.",
            "default": "highest"
          },
          "downloadAudioTrack": {
            "title": "⬇️🎵 Download Audio-Only Track",
            "type": "boolean",
            "description": "🎧 Save the reel's isolated original-audio track (Instagram's own separate audio-only stream, no video) to the Key-Value Store.",
            "default": false
          },
          "captureThumbnailGrid": {
            "title": "⬇️🖼️ Download Thumbnail / Scrubber Sprite Grid",
            "type": "boolean",
            "description": "🖼️ Save the video's scrubber/preview thumbnail spritesheet image (the grid of frame thumbnails Instagram generates for the seek bar) to the Key-Value Store.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛡️🌐 Proxy Configuration",
            "type": "object",
            "description": "🔐 The actor always uses Apify's residential proxy (3 attempts) for reliability. If you provide your own custom proxy URLs here, the actor will try those first and automatically fall back to residential if they fail. Apify proxy group selections are ignored — residential is always the safety net."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}