{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reels Transcript Generator",
    "description": "Instagram transcript generator: turn reels into text with timestamps, SRT and VTT subtitles, the opening hook, language, plays and likes. From reel links, whole accounts, hashtags or search words. Pick an account's top reels before you pay. No login. Reels without speech are free.",
    "version": "0.1",
    "x-build-id": "ydqqL1QeXwxZzmTig"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/anuarbakty~instagram-reels-transcript-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-anuarbakty-instagram-reels-transcript-generator",
        "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/anuarbakty~instagram-reels-transcript-generator/runs": {
      "post": {
        "operationId": "runs-sync-anuarbakty-instagram-reels-transcript-generator",
        "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/anuarbakty~instagram-reels-transcript-generator/run-sync": {
      "post": {
        "operationId": "run-sync-anuarbakty-instagram-reels-transcript-generator",
        "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 links",
            "type": "array",
            "description": "Links to reels or posts, one per line. Video posts and photo posts work too. Example: https://www.instagram.com/reel/DSzRPJIjo8E/",
            "items": {
              "type": "string"
            }
          },
          "usernames": {
            "title": "Instagram accounts",
            "type": "array",
            "description": "Account names or profile links, one per line: clevelandclinic, @clevelandclinic or https://www.instagram.com/clevelandclinic/. The Actor finds the reels itself. Public accounts only.",
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Find reels by hashtag, one per line, with or without #: cardiology, #hospital. Apify's Instagram Hashtag Scraper finds them under your account: $2.60 per 1,000 found reels on the Free plan, $2.30 on Bronze, added to this Actor's price.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search words",
            "type": "array",
            "description": "Find reels by words or phrases, one per line: heart surgery, knee pain. Same Apify Actor and the same price as for hashtags.",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerSearch": {
            "title": "Reels per hashtag or search",
            "minimum": 1,
            "type": "integer",
            "description": "How many reels to find for each hashtag or search. Each found reel costs the search price, even if your filters then skip it.",
            "default": 20
          },
          "datasetId": {
            "title": "Dataset of another Actor",
            "type": "string",
            "description": "Take reels from a dataset, for example the result of an Instagram scraper. Rows need a reel link, a short code or an account name."
          },
          "datasetItems": {
            "title": "Dataset rows",
            "type": "array",
            "description": "The same, with rows pasted as JSON."
          },
          "videoUrls": {
            "title": "Media file links",
            "type": "array",
            "description": "Direct links to audio or video files, up to 500 MB. Links to Instagram's video files work while they are valid.",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerProfile": {
            "title": "Reels per account",
            "minimum": 1,
            "type": "integer",
            "description": "How many reels to transcribe from each account, after the filters and the sort order.",
            "default": 10
          },
          "maxItems": {
            "title": "Maximum reels in the run",
            "minimum": 1,
            "type": "integer",
            "description": "The run stops after this many paid rows. Free-plan runs stop at 50.",
            "default": 1000
          },
          "reelOrder": {
            "title": "Order of an account's reels",
            "enum": [
              "newest",
              "mostPlays",
              "mostLikes",
              "mostComments",
              "oldest"
            ],
            "type": "string",
            "description": "Newest takes the latest reels and is the fastest. The other orders read up to \"Reels to look through\" first, then take the best.",
            "default": "newest"
          },
          "maxReelsToScan": {
            "title": "Reels to look through",
            "minimum": 1,
            "type": "integer",
            "description": "How deep to read an account when sorting or filtering. Reading is free. 200 reels take about 20 seconds.",
            "default": 200
          },
          "postedAfter": {
            "title": "Posted on or after",
            "type": "string",
            "description": "A date (2026-10-01) or a span back from now (7 days)."
          },
          "postedBefore": {
            "title": "Posted on or before",
            "type": "string",
            "description": "A date (2026-10-31) or a span back from now."
          },
          "minPlays": {
            "title": "Minimum plays",
            "minimum": 0,
            "type": "integer",
            "description": "Leave out reels with fewer plays."
          },
          "minLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Leave out reels with fewer likes."
          },
          "minDurationSeconds": {
            "title": "Minimum length, seconds",
            "minimum": 0,
            "type": "integer",
            "description": "Leave out shorter videos."
          },
          "maxDurationSeconds": {
            "title": "Maximum length, seconds",
            "minimum": 1,
            "type": "integer",
            "description": "Leave out longer videos. Empty means any length. Each minute after the third has a small extra price."
          },
          "skipPinned": {
            "title": "Skip pinned reels",
            "type": "boolean",
            "description": "On: pinned reels are left out. Off: they count like any other reel.",
            "default": false
          },
          "onlyOwnReels": {
            "title": "Only the account's own reels",
            "type": "boolean",
            "description": "Instagram's list of an account also shows reels made together with others. On: only reels posted by the account itself. Off: the whole list.",
            "default": false
          },
          "language": {
            "title": "Language of speech",
            "type": "string",
            "description": "A two-letter code such as en, ru, es, hi. Empty detects it for each reel. Set it when reels mix languages or auto-detect picks the wrong one."
          },
          "speechModel": {
            "title": "Speech model",
            "enum": [
              "turbo",
              "accurate"
            ],
            "type": "string",
            "description": "Turbo is fast and suits nearly all reels. Accurate is slower and can help on noisy audio. The price is the same.",
            "default": "turbo"
          },
          "customVocabulary": {
            "title": "Custom vocabulary",
            "type": "array",
            "description": "Names, brands and terms the model should spell correctly, for example drug names or a company name. Leave empty if you do not need it.",
            "items": {
              "type": "string"
            }
          },
          "skipMusicOnly": {
            "title": "Skip reels without speech",
            "type": "boolean",
            "description": "On: a speech detector checks each reel first. Music and silence give a free row and no invented text. Off: all audio goes to the model, and song lyrics come back as text; you pay for those rows.",
            "default": true
          },
          "cleanTranscript": {
            "title": "Tidy the text",
            "type": "boolean",
            "description": "On: extra spaces and line breaks are removed. Off: the text exactly as the model wrote it.",
            "default": true
          },
          "removeFillers": {
            "title": "Remove filler sounds",
            "type": "boolean",
            "description": "On: um, uh and similar are removed. Off: kept, as they were said.",
            "default": false
          },
          "wordTimestamps": {
            "title": "Time of every word",
            "type": "boolean",
            "description": "On: adds a words column with the start and end of each word. Off: timing by lines only.",
            "default": false
          },
          "includeSegments": {
            "title": "Lines with timestamps",
            "type": "boolean",
            "description": "On: adds a segments column. Off: leaves it empty for smaller rows.",
            "default": true
          },
          "includeSrt": {
            "title": "SRT subtitles",
            "type": "boolean",
            "description": "On: adds a ready .srt text in the srt column at no extra price. Off: leaves it empty.",
            "default": true
          },
          "includeVtt": {
            "title": "VTT subtitles",
            "type": "boolean",
            "description": "On: adds a ready WebVTT text in the vtt column at no extra price. Off: leaves it empty.",
            "default": true
          },
          "tags": {
            "title": "Your labels",
            "type": "array",
            "description": "Any labels, such as a client or a campaign. They are copied into every row, so you can tell runs apart.",
            "items": {
              "type": "string"
            }
          },
          "includeFreeRows": {
            "title": "Rows for reels not delivered",
            "type": "boolean",
            "description": "On: a free row explains each reel without speech, failed or filtered out. Off: only paid rows.",
            "default": true
          },
          "includeRunSummaryRow": {
            "title": "Summary row at the end",
            "type": "boolean",
            "description": "On: the last row sums up the run. Off: the summary is only in the key-value store as SUMMARY.",
            "default": false
          },
          "includeViewCount": {
            "title": "Views as well as plays",
            "type": "boolean",
            "description": "Instagram keeps two counters. Plays (playCount) comes with every reel. Views (viewCount) needs one more page per reel. On: both. Off: plays only, and an account's reels run a little faster.",
            "default": true
          },
          "outlierMultiple": {
            "title": "Outlier threshold",
            "minimum": 1,
            "type": "number",
            "description": "A reel is marked as an outlier when its plays are this many times the account's median.",
            "default": 3
          },
          "includeOnScreenText": {
            "title": "Read text on screen",
            "type": "boolean",
            "description": "On: AI reads text shown in the video, for an extra price per reel where text is found. A silent reel with text on screen becomes a paid row. Off: speech only.",
            "default": false
          },
          "includePhotoPosts": {
            "title": "Read text from photo posts",
            "type": "boolean",
            "description": "On: AI reads the images of photo posts and carousels, up to ten per post, for an extra price per post. Off: such posts give a free row.",
            "default": false
          },
          "translateTo": {
            "title": "Translate to",
            "type": "string",
            "description": "A language name or code, such as Spanish or de. Adds the translated transcript for an extra price per reel. Empty means no translation."
          },
          "includeComments": {
            "title": "Comment text",
            "type": "boolean",
            "description": "On: each transcribed reel also gets the text of its comments, read by Apify's Instagram Comments Scraper under your account: $2.60 per 1,000 comments on the Free plan, $2.30 on Bronze. Off: only the number of comments.",
            "default": false
          },
          "maxCommentsPerReel": {
            "title": "Comments per reel",
            "minimum": 1,
            "type": "integer",
            "description": "Most comments to read per reel when Comment text is on.",
            "default": 15
          },
          "aiSummary": {
            "title": "Summary, keywords and topics",
            "type": "boolean",
            "description": "On: a short summary, keywords, topics and sentiment for an extra price per reel. Off: none.",
            "default": false
          },
          "aiAnalysis": {
            "title": "Script breakdown",
            "type": "boolean",
            "description": "On: hook type, format, call to action and the reel's beats with timing for an extra price per reel. Off: none.",
            "default": false
          },
          "watchlistId": {
            "title": "Watchlist name",
            "type": "string",
            "description": "A name for repeated runs on a schedule. With \"Only new reels\" on, reels delivered to this watchlist before are skipped. Kept in your own account."
          },
          "newReelsOnly": {
            "title": "Only new reels",
            "type": "boolean",
            "description": "On: reels already delivered to this watchlist are skipped free of charge. Off: every reel is read again.",
            "default": false
          },
          "useCache": {
            "title": "Reuse my earlier transcripts",
            "type": "boolean",
            "description": "On: a reel you transcribed before comes from a store in your account, free, with the same model and language. Off: it is transcribed and charged again. The store takes space in your account.",
            "default": false
          },
          "resumeFromDatasetId": {
            "title": "Continue from dataset",
            "type": "string",
            "description": "The dataset of an interrupted run. Reels already delivered there are skipped."
          },
          "maxRunSeconds": {
            "title": "Stop after, seconds",
            "minimum": 30,
            "type": "integer",
            "description": "The run ends cleanly after this time and keeps what it has. Empty means the run's timeout."
          },
          "failIfNoTranscripts": {
            "title": "Fail if nothing is delivered",
            "type": "boolean",
            "description": "On: a run with no paid rows ends as Failed, for automations. Off: it ends as Succeeded with free rows that explain why.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Usually not needed: the Actor works without one and falls back to Apify proxies by itself. Set your own only if you have a reason. Apify proxy traffic is billed to your account."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}