{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Single Reels Scraper: Transcript Extraction",
    "description": "Instagram Single Reels Scraper: Extract Reel data, captions, creator details, views, likes, comments, timestamps, and video transcripts. Analyze spoken content, identify keywords, research competitors, and turn Reels into structured datasets for content and audience insights.",
    "version": "0.1",
    "x-build-id": "JxsPACVw9i1ez1gGL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~instagram-single-reels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-instagram-single-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-single-reels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-instagram-single-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-single-reels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-instagram-single-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": {
          "reelUrls": {
            "title": "🎬 Instagram Reel URLs",
            "type": "array",
            "description": "📋 List of Instagram reel inputs to analyze. Supports multiple formats:\n\n✅ Full URLs: https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/\n✅ Username/Shortcode: cristiano/DOEMHa6iPoz\n✅ Shortcode only: DOEMHa6iPoz\n\n🔁 Legacy compatibility: the base actor's original `urls` field is still accepted if `reelUrls` is left empty.",
            "items": {
              "type": "string"
            }
          },
          "generateTranscript": {
            "title": "🎙️ Generate Audio Transcript (Self-Hosted Whisper)",
            "type": "boolean",
            "description": "OFF by default (downloads + transcription are slow and add compute cost). When ON, downloads the reel's own audio with yt-dlp and transcribes it locally with faster-whisper — NO external AI API key required. This is a REAL speech-to-text transcript, NOT Instagram's `accessibilityCaption` (which is just image alt-text). When OFF, you still get the free caption language + keyword floor features on every row.",
            "default": false
          },
          "maxKeywords": {
            "title": "🔑 Max Keywords per Caption",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many topic/keyword words to extract from each caption (zero-request, always runs). Default 10.",
            "default": 10
          },
          "whisperModel": {
            "title": "🧠 Whisper Model Size",
            "enum": [
              "tiny",
              "base",
              "small",
              "medium"
            ],
            "type": "string",
            "description": "Bigger models are more accurate but slower. `tiny`/`base` are fast; `small`/`medium` are more accurate but much slower on CPU.",
            "default": "base"
          },
          "transcriptLanguage": {
            "title": "🌐 Transcript Language Override",
            "type": "string",
            "description": "ISO 639-1 code (e.g. `en`, `es`, `pt`) to force Whisper's language, or `auto` to auto-detect from the audio (recommended).",
            "default": "auto"
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "🔒 Proxy settings for the reel data fetch (a public profile-page token request + a GraphQL query). ⚠️ NOTE: for reliability this actor always uses the RESIDENTIAL proxy group for these requests regardless of your selection here — only the country you pick is honored. This is documented behavior, not a bug."
          },
          "sessionId": {
            "title": "🔐 Instagram Session ID (Optional)",
            "type": "string",
            "description": "🍪 Optional. DevTools (F12) → Application → Cookies → `instagram.com` → copy `sessionid`. The reel data fetch runs logged-OUT by default (no cookie required); supplying a valid session sends it as a `Cookie: sessionid=...` header on both requests (the profile-page token fetch and the GraphQL query), which can recover data on the rare case the logged-out profile page itself is login-walled. Stored as a secret, never logged. Leave empty to keep the default logged-out behavior."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}