{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reel Transcript Scraper — Speech to Text, No Login",
    "description": "Get the transcript of Instagram Reels by URL or username: spoken words (faster-whisper, on-actor), caption, hashtags, views, likes, comments, duration, owner, music, mp4 URL. No login, no cookies, no crawler spoofing. Music-only reels are never billed for transcription.",
    "version": "0.1",
    "x-build-id": "9QXgkMehl0PAPb7a6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~instagram-transcript-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-instagram-transcript-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/scrapersdelight~instagram-transcript-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-instagram-transcript-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/scrapersdelight~instagram-transcript-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-instagram-transcript-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": "Reel / post URLs",
            "type": "array",
            "description": "Instagram reel or video post URLs (https://www.instagram.com/reel/CODE/ or /p/CODE/), or bare shortcodes. One row per video. Photo and carousel posts are skipped (nothing to transcribe). Works alongside usernames.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "usernames": {
            "title": "Usernames",
            "type": "array",
            "description": "Public Instagram usernames or profile URLs (natgeo, @nasa, https://www.instagram.com/nasa/). The newest videos/reels of each profile are taken, up to maxReelsPerUser. Private accounts return nothing.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerUser": {
            "title": "Max reels per username",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many of the newest videos to take from each username. The profile feed mixes photos and videos (about 1 in 3 posts is a video on a typical brand account), so the actor pages until it has this many videos.",
            "default": 10
          },
          "postedAfter": {
            "title": "Only reels posted after",
            "type": "string",
            "description": "Optional date (YYYY-MM-DD). Username mode stops paging once it reaches older posts; URL mode drops older reels. Pinned posts are handled correctly."
          },
          "maxItems": {
            "title": "Max reels in total",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on rows across all URLs and usernames — your cost ceiling for the run. Each row is one reel.",
            "default": 50
          },
          "transcribe": {
            "title": "Transcribe the spoken audio",
            "type": "boolean",
            "description": "ON: download the audio and transcribe it with faster-whisper on this actor's own compute (no external API, no key). OFF: metadata-only rows — caption, counts, owner, music, media URLs — at the row price alone.",
            "default": true
          },
          "model": {
            "title": "Speech model",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "faster-whisper model (int8, baked into the image so nothing downloads at run time). base is the accuracy/cost meta for clear narration; small is noticeably better on accents, noisy audio and non-English speech at roughly 3x the compute time; tiny is the fastest and rougher.",
            "default": "base"
          },
          "language": {
            "title": "Spoken language",
            "type": "string",
            "description": "ISO-639-1 code (en, es, pt, de, fr, hi, ...) to force the language, or auto to detect it per reel. Forcing the language helps on short reels where detection has little to go on.",
            "default": "auto"
          },
          "transcriptFormats": {
            "title": "Extra transcript formats",
            "type": "array",
            "description": "Plain text (transcript) and the 3-second spoken hook are always included. Add timestamped segments, SRT or VTT subtitles if you need alignment.",
            "items": {
              "type": "string",
              "enum": [
                "segments",
                "srt",
                "vtt"
              ],
              "enumTitles": [
                "Timestamped segments (array)",
                "SRT subtitles",
                "VTT subtitles"
              ]
            },
            "default": []
          },
          "maxAudioMinutesPerReel": {
            "title": "Max audio minutes per video",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Reels are at most 3 minutes, but a profile's feed can carry long videos. Audio beyond this many minutes is not transcribed (and not billed). 1-60.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy for the Instagram page/API requests. Apify datacenter is the default and measured clean (16/16 embed pages, 15/15 feed pages); a blocked datacenter request gets one capped retry through RESIDENTIAL automatically. Media bytes are always fetched without a proxy.",
            "default": {
              "useApifyProxy": true
            }
          },
          "requestDelayMs": {
            "title": "Delay between Instagram requests (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Pause between consecutive Instagram page/API requests. Default 500 ms keeps a run well inside Instagram's public rate limits.",
            "default": 500
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}