{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reel Transcript Scraper · Bulk Reels, From $3/1k",
    "description": "Bulk-transcribe public Instagram Reels to text at the lowest per-Reel price: handles, Reel URLs or a chained dataset in; spoken text, timestamped segments, SRT/VTT files and the 3-second hook out. On-device Whisper, so uncaptioned Reels work. No login. From $3 per 1,000 Reels.",
    "version": "0.0",
    "x-build-id": "gSxkIK1CDqr1TFLgY"
  },
  "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, post or IGTV URLs",
            "type": "array",
            "description": "One or more Instagram <b>Reel</b> (/reel/), video post (/p/) or IGTV (/tv/) URLs, e.g. <code>https://www.instagram.com/reel/Dabg9j1xNHM/</code>. Each video is transcribed; an image post has no audio and comes back as no_audio, not charged.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}