{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reel Transcript Scraper · Handle or URL · From $3/1k",
    "description": "Instagram Reel transcript scraper: give creator handles, Reel URLs or another scraper's dataset and get the spoken text, timestamped segments, SRT and VTT files, the first-3-second hook, creator and caption. On-device Whisper, so uncaptioned Reels work. No login. From $3 per 1,000 Reels.",
    "version": "0.0",
    "x-build-id": "6tkQAVqDDMqhicaZP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~instagram-reel-transcript-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-instagram-reel-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/memo23~instagram-reel-transcript-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-instagram-reel-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/memo23~instagram-reel-transcript-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-instagram-reel-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": {
          "startUrls": {
            "title": "Instagram Reel URLs",
            "type": "array",
            "description": "One or more Instagram <b>Reel</b> URLs (/reel/ or /reels/), e.g. <code>https://www.instagram.com/reel/Dabg9j1xNHM/</code>. Each Reel's audio is downloaded and transcribed. Other Instagram URLs (posts, IGTV) are skipped.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "handles": {
            "title": "Creator handles",
            "type": "array",
            "description": "Instagram usernames whose latest Reels you want transcribed: <code>nasa</code>, <code>@nasa</code> or a profile URL. Each creator's most recent Reels are listed (up to Max Reels per profile) and transcribed, with no login. Private or missing profiles are reported and not charged. Can be combined with Reel URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerProfile": {
            "title": "Max Reels per profile",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many of each creator's most recent Reels to transcribe. Instagram may list a creator's pinned Reels first. Max Reels below still caps the whole run. Default 12.",
            "default": 12
          },
          "datasetId": {
            "title": "Dataset ID (chain a scraper run)",
            "type": "string",
            "description": "Default dataset ID of a finished Instagram scraper run. Every row is deep-scanned for instagram.com/reel URLs, so the output of memo23/instagram-reel-scraper, instagram-reels-search-scraper, instagram-hashtag-scraper or the official apify/instagram-scraper can feed this actor directly."
          },
          "datasetItems": {
            "title": "Dataset items (paste rows)",
            "type": "array",
            "description": "Paste rows from an Instagram scraper instead of chaining by ID. Any field holding an instagram.com/reel or /reels/ URL is picked up."
          },
          "watchlistId": {
            "title": "Watchlist ID",
            "type": "string",
            "description": "Named key-value store that remembers which Reels this run already transcribed. Use the same id on a schedule (for example <code>nasa-daily</code>) and later runs skip them, so a Reel is never billed twice. Shares its format with memo23/instagram-transcript-scraper, so one watchlist can serve both. Letters, numbers, hyphens, underscores."
          },
          "newReelsOnly": {
            "title": "Only new reels",
            "type": "boolean",
            "description": "When enabled, Reels already stored on the Watchlist ID are left out of the run and the dataset. Requires <code>watchlistId</code>. Default: false.",
            "default": false
          },
          "whisperModel": {
            "title": "Whisper model",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "Runs <b>tiny</b>. A saved task that still sends <b>base</b> or <b>small</b> is transcribed with tiny, because those models take a few times longer on the same CPU than the per-minute price covers.",
            "default": "tiny"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Spoken language of the videos as an ISO code (e.g. <code>en</code>, <code>es</code>, <code>ar</code>), or <code>auto</code> to let Whisper detect it per video. Setting the correct language is faster and more accurate than auto-detect.",
            "default": "auto"
          },
          "includeSegments": {
            "title": "Include timestamped segments",
            "type": "boolean",
            "description": "When enabled (default), each row includes a <code>segments</code> array of <code>{start, end, text}</code> chunks (subtitle-style timings) in addition to the full <code>transcript</code> string. Disable for a smaller, text-only output.",
            "default": true
          },
          "maxItems": {
            "title": "Max Reels",
            "type": "integer",
            "description": "Maximum number of Reels to transcribe this run. Transcription is the slow/costly step, so start small.",
            "default": 25
          },
          "maxDurationSec": {
            "title": "Skip videos longer than (seconds)",
            "type": "integer",
            "description": "Videos longer than this are skipped (a guard so one very long video can't burn minutes of compute). Default 300 (5 min); set 0 to disable.",
            "default": 300
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "How many videos to transcribe in parallel. Each Whisper pass is CPU-heavy, so 1–2 is safest on standard Apify runners; higher can time out.",
            "default": 2
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Paid runs use the house residential pool automatically, so this can be left alone. Set it only if you need a specific country or want to use your own proxies.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}