{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reels Scraper By Hashtag & Keyword Search",
    "description": "Instagram Reels Scraper: Discover Reels by hashtag and keyword, capturing captions, creators, URLs, views, likes, comments, timestamps, and engagement data. Identify trending content, analyze creator performance, research audiences, and monitor competitors.",
    "version": "0.1",
    "x-build-id": "ys95b1IPo3gfnRAWn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~instagram-reels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-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/api-empire~instagram-reels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-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/api-empire~instagram-reels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-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": {
          "searchTerms": {
            "title": "🔍#️⃣ Hashtags & Keywords",
            "type": "array",
            "description": "One or more hashtags (with #) or plain keywords to discover trending/top Reels for. Example: [\"#travel\", \"street food\"].",
            "items": {
              "type": "string"
            }
          },
          "igSessionId": {
            "title": "🔑 Instagram Session ID (Hashtag/Keyword Search only)",
            "type": "string",
            "description": "Required ONLY when 'Hashtags & Keywords' above is used — Instagram's search endpoint needs a lightweight logged-in session to return results. Not needed for Profiles or Direct Reel URLs. Paste just the sessionid cookie value. Never logged or stored anywhere but this run."
          },
          "reelUrls": {
            "title": "🔗🎬 Direct Reel URLs / Shortcodes",
            "type": "array",
            "description": "Paste full Reel URLs (https://www.instagram.com/reel/ABC123xyz/) or bare shortcodes to fetch specific Reels directly — bypasses username and hashtag discovery entirely, and needs no session ID.",
            "items": {
              "type": "string"
            }
          },
          "profilesToScan": {
            "title": "👤📂 Profiles To Scan",
            "type": "array",
            "description": "Optional. Add one or more usernames, @handles, or profile URLs whose Reels feed should be scraped, same as before.",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerSource": {
            "title": "🎞️🔢 Max Reels Per Source",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of Reels to collect per username, per hashtag, or per keyword."
          },
          "postedAfter": {
            "title": "📅⏱️ Posted After",
            "type": "string",
            "description": "Only keep Reels newer than this date/duration. Use the date picker for an absolute date (YYYY-MM-DD) or type a relative duration like 7 days, 2 weeks, or 1 month. Leave empty to keep everything. Applies to every discovery mode."
          },
          "excludePinnedPosts": {
            "title": "📌🚫 Exclude Pinned Posts",
            "type": "boolean",
            "description": "Turn on to skip a profile's pinned Reels and keep only regular timeline content. Applies to every discovery mode."
          },
          "addSharesCount": {
            "title": "🔁📊 Add Shares Count",
            "type": "boolean",
            "description": "Include the share count for each Reel when Instagram makes it available."
          },
          "addTranscript": {
            "title": "📝🎙️ Add Transcript",
            "type": "boolean",
            "description": "Extract and include the auto-generated transcript/caption text for each Reel's video."
          },
          "saveVideoToStorage": {
            "title": "⬇️🎥 Save Video To Storage",
            "type": "boolean",
            "description": "Download each Reel's video into the Apify Key-Value Store and include a downloadable link in the output."
          },
          "proxyConfiguration": {
            "title": "🛡️🌐 Proxy Configuration",
            "type": "object",
            "description": "The actor always uses Apify's residential proxy (retries included) for reliability across every discovery mode. If you provide your own custom proxy URLs here, the actor tries those first and automatically falls back to residential on failure."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}