# Instagram Reel Transcript Scraper: Reels to Text (`deepmine/instagram-reel-transcript-scraper`) Actor

Instagram transcript scraper: paste reel URLs or profiles and get what's said in each reel as text, Instagram's own speech transcript with its language, plus caption, plays, likes, date and creator. Any reel length, no login. Reels without speech aren't charged for a transcript.

- **URL**: https://apify.com/deepmine/instagram-reel-transcript-scraper.md
- **Developed by:** [DeepMine](https://apify.com/deepmine) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 reels

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Instagram Reel Transcript Scraper: Reels to Text

Instagram transcript scraper: paste reel links (or usernames) and get what's said in each reel as text, Instagram's own speech transcript of the reel with its language, next to the caption, length, plays, likes, date and creator. Any reel length, no login, no audio download or speech-to-text on your side.

| 👤 Creator | 🗣️ Transcript | 🌐 Language | ⏱️ Length | ▶️ Plays |
|---|---|---|---|---|
| natgeo | Hey, Nat Geo. Nightmare scenario. You get swallowe… | en | 136 s | 721,472 |
| nasaadmin | We will launch the first of its kind interplanetar… | en | 66 s | 2,912,892 |
| natgeo | Romance scams. One in seven adults have lost money… | en | 30 s | 967,009 |

<sub>Collected 2026-10-18 with the prefilled input (natgeo and nasa, 10 reels each): 15 of the 20 reels had speech.</sub>

**$0.0030 per reel with a transcript** on the Starter plan: $0.65 per 1,000 reels plus $0.00239 per transcript. Reels without speech cost only the reel. The prefilled run (20 reels) costs at most $0.06. No start fee, no minimum.

### What you get

- **The transcript Instagram itself made**: `transcript` is the text of Instagram's own auto-captions for the reel (what the speakers say, in their language), read the way a visitor coming from Google sees the reel, with no login. Plain text, no timings. `transcriptLanguage` names its language (en, es, de, ...).
- **Any length, one price**: a 10-second clip and a 5-minute reel cost the same $0.00239 per transcript.
- **Reels without speech aren't charged for it**: music-only and silent reels come back with `transcript` null (or a few words of lyrics), and a transcript under 3 words is free.
- **Reel links, profiles or keywords**: reel URLs (`/reel/`, `/reels/`, `/p/`), usernames (`natgeo`), profile links or numeric ids; a profile gives its reels newest first, as deep as you ask. Keyword search (topics, #hashtags, Boolean) is built in too.
- **The rest of the reel on the same row**: caption, hashtags, plays, views, likes, comments, post date, length, sound, location, tagged users, collaborators, the creator's name and follower count, and optional MP4 and audio links.
- **No login, no cookies, no account of yours involved.** The Actor reads the public pages Instagram shows every visitor.

Typical uses: turning a creator's reels into searchable text, hook and script research, subtitles and translation input, and monitoring what's said about a brand or topic.

### Input

```json
{
  "profiles": ["https://www.instagram.com/reel/DeCPVhERA8e/", "natgeo"],
  "maxReelsPerProfile": 20,
  "includeTranscript": true
}
```

- **Reel URLs or profiles**: reel links, usernames, profile URLs or numeric ids, one per line.
- **Max reels per profile**: newest first, default 100. **Max results** (Advanced) caps the whole run.
- **Add transcripts**: on by default ($0.00239 per reel whose transcript has 3+ words). Off = the reels alone at the reel price.
- **Add reel details**: on by default and free; adds the video's views, the creator's name, picture and follower count, the sound, location, tagged users, collaborators, partnership and sponsor fields and the video's size (keys below marked *details*). Transcripts need it, so it stays on while they are.
- **Add latest comments**: off by default (free); adds `firstComment` and `latestComments`.
- **Include video and audio links**: adds `videoUrl` and `audioUrl`.
- **Filters**: Reels newer than, Skip pinned reels, Min plays, Min likes, Min comments. Reels the filters leave out aren't charged.
- **Keyword search**: Keywords, Max reels per keyword, Sort by, Continue with related searches, Only reels that mention the keyword. See [Instagram Reels Search](https://apify.com/deepmine/instagram-reels-search) for how each works.

### Output

One row per reel, in the dataset's **🗣️ Transcripts** view. **📊 Overview** shows the counts and caption, **👤 Creators** who made each reel, **📈 Stats** only the numbers. The run's OUTPUT record (🧾 Run summary) lists each reel URL, profile and keyword with its status and counts, and how many reels had a transcript (`transcriptsRead` of `transcriptsAsked`).

#### Output fields

- `cover`: the reel's cover image. Instagram signs media links; they stop working after a few days.
- `caption`: full caption.
- `captionSnippet`: first 50 characters of the caption.
- `transcript`: what's said in the reel, Instagram's own speech transcript (its auto-captions) as plain text, no timings; null for reels without speech (*transcripts*, a paid add-on).
- `transcriptLanguage`: the transcript's language (ISO 639-1: en, es, de, ...), null when it's too short to tell (*transcripts*).
- `alt`: Instagram's own alt text for the reel ("Video by <creator> on <date>.", often with "May be an image of ..."), read with the latest comments; null when Instagram has none.
- `authorUsername`: the creator's username, without @.
- `authorFullName`: the creator's display name (*details*).
- `reelUrl`: https://www.instagram.com/reel/<shortcode>/.
- `authorVerified`: the creator has the blue check.
- `authorFollowers`: the creator's follower count (*details*).
- `plays`: play count (the number Instagram's reels tab shows). A reel given by URL has it when it's among its creator's latest 36 reels (older reels: null).
- `views`: the video's view count, a separate counter from plays (often a quarter to a half of them), as Instagram's public embed widget shows it; null when the creator hides counts or turned off embedding (*details*).
- `likes`: like count (null when the creator hides it).
- `comments`: comment count.
- `fbLikeCount`: likes on the reel's Facebook cross-post, when the creator shares reels to Facebook (*details*).
- `durationSeconds`: length in seconds.
- `mediaType`: `reel` (a Reels post) or `video` (a feed video). Photos and carousels are never rows.
- `productType`: Instagram's product type: `clips` for a Reels post, `feed` or `igtv` (*details*; in runs with profiles or reel URLs).
- `postedAt`: when it was posted (UTC).
- `isPinned`: pinned to the top of the creator's reels tab (profile and reel URL rows).
- `rank`: position in the profile's reels tab (pinned reels first), or in Instagram's list for a keyword row's `topic` (1 = first; null for reel URL rows).
- `audioTitle`: the reel's sound: a song name, or Original audio (*details*).
- `audioArtist`: the sound's artist, or the account whose original audio it is.
- `isOriginalAudio`: true when the sound is the creator's own audio, false for a song (*details*).
- `locationName`: the place tagged on the reel (*details*).
- `taggedUsers`: accounts tagged in the reel, each as `{username, fullName, id, profilePicUrl, isVerified}` (*details*).
- `collaborators`: collab co-authors shown next to the creator, in the same shape (*details*).
- `isPaidPartnership`: marked as a paid partnership (*details*).
- `sponsors`: brands named in the paid partnership label, in the same shape (*details*); Instagram usually hides them from visitors who aren't logged in, so this is mostly null even when `isPaidPartnership` is true.
- `hashtags`: hashtags in the caption, lower case, without #.
- `mentions`: accounts mentioned in the caption, without @.
- `firstComment`: the newest comment a visitor sees (*details*, with "Add latest comments" on, the default).
- `latestComments`: the newest comments a visitor sees (about 14), each as `{id, text, ownerUsername, ownerProfilePicUrl, ownerIsVerified, timestamp, likesCount, repliesCount}` (same switches).
- `hasHiddenLikes`: the creator hides the like count (`likes` is then null) (*details*).
- `isCommentsDisabled`: comments are turned off (*details*).
- `latitude`: the tagged place's latitude (*details*).
- `longitude`: its longitude (*details*).
- `videoWidth`: the video's width in pixels (*details*).
- `videoHeight`: its height (*details*).
- `videoUrl`: direct MP4 link, with "Include video and audio links" on (signed; expires after a few days).
- `audioUrl`: direct link to the reel's sound track (MP4 audio), same switch and expiry (in runs with profiles or reel URLs).
- `images`: the cover frame in two sizes, full size first, then 320 px wide (signed; expires after a few days) (*details*).
- `authorAvatar`: the creator's profile picture (signed; expires after a few days) (*details*).
- `authorProfileUrl`: the creator's profile.
- `inputUrl`: the profile or reel URL from your input the reel came from (in runs with profiles or reel URLs).
- `keyword`: your keyword this reel was found for (in runs with keywords).
- `topic`: the Instagram search it came from: your keyword, or a related search Instagram lists for it (keyword runs).
- `matchedTerms`: for a Boolean keyword, the words and phrases of it the reel's caption or creator holds (keyword runs).
- `shortCode`: the reel's shortcode.
- `reelId`: Instagram's numeric media id.
- `audioId`: Instagram's id of the sound; reels with the same id use the same sound (*details*).
- `locationId`: Instagram's id of the tagged place (*details*).
- `authorId`: the creator's numeric user id.
- `scrapedAt`: when the run collected it (UTC).

Every row of a run has the same keys: `inputUrl`, `isPinned`, `productType` and `audioUrl` come with profiles and reel URLs, `keyword`, `topic` and `matchedTerms` with keywords.

Example row (a profile row, video and audio links and comments on; `latestComments` shortened to its first comment here):

```json
{
  "cover": "https://scontent-lax3-2.cdninstagram.com/v/t51.82787-15/842191580_18656578867049152_4200499629839780998_n.jpg?...",
  "caption": "POV: you're watching the Earth set\n\nWe just released hundreds of new images and hours of new audio from our Artemis II mission around the Moon this spring. Check out our link in bio for the Artemis II Preliminary Lunar Science Report.\n\n#NASA #ArtemisII #Artemis",
  "captionSnippet": "POV: you're watching the Earth set We just release…",
  "transcript": "Would you look at that man? Wow. No wonder.",
  "transcriptLanguage": null,
  "alt": "Video by NASA on October 10, 2026. May be an image of planet, eclipse and text.",
  "authorUsername": "nasa",
  "authorFullName": "NASA",
  "reelUrl": "https://www.instagram.com/reel/DeTUk4sDSp-/",
  "authorVerified": true,
  "authorFollowers": 104348062,
  "plays": 8803898,
  "views": 3006729,
  "likes": 612960,
  "comments": 5937,
  "fbLikeCount": null,
  "durationSeconds": 43.8,
  "mediaType": "reel",
  "productType": "clips",
  "postedAt": "2026-10-10T15:15:02Z",
  "isPinned": false,
  "rank": 1,
  "audioTitle": "Original audio",
  "audioArtist": "nasa",
  "isOriginalAudio": true,
  "locationName": null,
  "taggedUsers": [
    {
      "username": "nasaartemis",
      "fullName": "NASA Artemis",
      "id": "1104426670",
      "profilePicUrl": "https://scontent-lax3-2.cdninstagram.com/v/t51.82787-19/670016304_18577283653042671_4689932669633757619_n.jpg?...",
      "isVerified": true
    }
  ],
  "collaborators": null,
  "isPaidPartnership": false,
  "sponsors": null,
  "hashtags": [
    "nasa",
    "artemisii",
    "artemis"
  ],
  "mentions": null,
  "firstComment": "😍😍😍",
  "latestComments": [
    {
      "id": "18435033883198108",
      "text": "😍😍😍",
      "ownerUsername": "domusaureaarchitecture",
      "ownerProfilePicUrl": "https://scontent-dfw5-2.cdninstagram.com/v/t51.2885-19/118140493_305011100779012_9040235127101458324_n.jpg?...",
      "ownerIsVerified": false,
      "timestamp": "2026-10-12T18:19:43Z",
      "likesCount": 0,
      "repliesCount": null
    }
  ],
  "hasHiddenLikes": false,
  "isCommentsDisabled": false,
  "latitude": null,
  "longitude": null,
  "videoWidth": 1074,
  "videoHeight": 1908,
  "videoUrl": "https://scontent-lax7-1.cdninstagram.com/o1/v/t2/f2/m86/AQNUvreb47JFAC3mKM7kF_weYHzhiVF-MfERm99CfyBTok0ezeRdbVW8cH5NXn4mxO8gVi6j1GQ2RU9i4ByvKCLVPHdDruUpsCKYDQI.mp4?...",
  "audioUrl": "https://scontent-lax3-1.cdninstagram.com/o1/v/t2/f2/m78/AQPB4JL-DRgi9IPGEW-CRYYVXhI25dlK6MjaV6MVLn6z-PjYWWDHQ8paV0zV_HrR6itVi3lQcobq2zQ38W6sABUwWavnfWG0BvOCn3w.mp4?...",
  "images": [
    "https://scontent-lax3-2.cdninstagram.com/v/t51.82787-15/842191580_18656578867049152_4200499629839780998_n.jpg?stp=dst-jpg_e15_tt6&...",
    "https://scontent-lax3-2.cdninstagram.com/v/t51.82787-15/842191580_18656578867049152_4200499629839780998_n.jpg?stp=dst-jpg_e15_p320x320_tt6&..."
  ],
  "authorAvatar": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?...",
  "authorProfileUrl": "https://www.instagram.com/nasa/",
  "inputUrl": "https://www.instagram.com/nasa/",
  "shortCode": "DeTUk4sDSp-",
  "reelId": "4004634989362489982",
  "audioId": "28589819277311219",
  "locationId": null,
  "authorId": "528817151",
  "scrapedAt": "2026-10-12T18:21:54Z"
}
```

### Pricing

Pay per result: you pay for reels delivered and for each transcript, never for unknown profiles, deleted reels or reels your filters leave out.

| Plan | Per 1,000 reels | Per transcript |
|---|---|---|
| Free | $0.75 | $0.00239 |
| Starter | $0.65 | $0.00239 |
| Scale | $0.55 | $0.00239 |
| Business | $0.50 | $0.00239 |

**Transcripts**: $0.00239 per reel with a transcript, on every plan, on top of the reel. Reels without speech (music only, silent) or with fewer than 3 words aren't charged for it.

Set a maximum cost on the run and the Actor stops at or before it. Proxies are included: the Actor uses Apify Proxy and switches to residential IPs on its own if Instagram keeps refusing datacenter ones.

### Good to know

- **Instagram's transcript, not ours.** The text is the one Instagram's auto-captions show for the reel. It's very close to what's said (about 1 word in 9 differs from a large speech-to-text model on talking reels; noisy or mixed-language audio does worse), with no timestamps. Instagram makes it for reels with speech; a reel it made none for comes back null, and an empty answer is asked once more before it's believed.
- **Music reels** sometimes get a few words of the song's lyrics as their transcript; that is what Instagram has for them.
- **Plays** are the counts Instagram's reels tab shows; **views** are its own video view counter, read from the reel's public embed widget.
- If Instagram ever refuses every IP, the run fails with a clear message instead of finishing empty.
- **Big runs**: the Actor stops a little before the run's timeout and keeps every reel it delivered; raise the timeout in the run options for very large runs.

### Related Actors

- **Every reel of a profile with its MP4 links:** [Instagram Reels Scraper](https://apify.com/deepmine/instagram-reels-scraper), the same engine (transcripts are an option there too).
- **Reels by keyword:** [Instagram Reels Search](https://apify.com/deepmine/instagram-reels-search).

### Feedback

Found a bug or missing a field? Open an issue in the Issues tab. If the Actor saves you time, a short review on its Store page helps others find it.

# Actor input Schema

## `profiles` (type: `array`):

Instagram reel URLs, usernames or profile URLs, one per line: instagram.com/reel/DeXXAddgJhQ/, natgeo, @natgeo. A profile gives its reels newest first. You pay per reel delivered, plus its transcript.

## `maxReelsPerProfile` (type: `integer`):

Reels per profile, newest first (pinned reels first, as on the profile). Profiles page back years. You pay per reel, so this caps the cost per profile. Empty = 100.

## `includeTranscript` (type: `boolean`):

On by default: what's said in each reel as text (transcript, transcriptLanguage), Instagram's own speech transcript, no timings. $0.00239 per reel with a transcript; reels without speech aren't charged for it.

## `includeDetails` (type: `boolean`):

Adds the video's views, the creator's name, picture and follower count, the sound, the place and coordinates, tagged users, collaborators, sponsors and the video's size. Free. Turn off for the fastest runs.

## `includeComments` (type: `boolean`):

Adds firstComment and latestComments: the newest comments a visitor sees (about 14 per reel, with author, time and likes). Free. Needs reel details on.

## `includeVideoUrl` (type: `boolean`):

Adds videoUrl and audioUrl: direct links to each reel's MP4 file and its sound track, for downloading. Instagram signs them; they stop working after a few days. Free.

## `onlyPostsNewerThan` (type: `string`):

Keep only reels posted after a date (2026-09-01) or within a time span (7 days, 3 months). A profile stops paging at its first older reel. Empty = any date.

## `skipPinnedPosts` (type: `boolean`):

Leave out the reels a creator pinned to the top of their profile (often older than the rest). Reels left out aren't charged.

## `minPlays` (type: `integer`):

Keep only reels with at least this many plays, e.g. 10000. Reels left out aren't charged. Empty = no limit.

## `minLikes` (type: `integer`):

Keep only reels with at least this many likes (reels whose creator hides likes are left out). Reels left out aren't charged. Empty = no limit.

## `minComments` (type: `integer`):

Keep only reels with at least this many comments. Reels left out aren't charged. Empty = no limit.

## `keywords` (type: `array`):

Find reels by topic, one per line: a phrase (home workout), a #hashtag or an instagram.com/popular/ topic URL. Boolean searches work too: ("home workout" OR pilates) AND NOT giveaway. You pay per reel delivered.

## `maxResultsPerKeyword` (type: `integer`):

Reels per keyword. A topic has about 45 reels; with related searches on, more come from the searches Instagram lists next to it. You pay per reel, so this caps the cost per keyword. Default 100.

## `sortBy` (type: `string`):

Most relevant (default): Instagram's own order for the keyword's search, then its related searches. Newest first: reads the related searches until they hold enough recent reels, then delivers the newest first.

## `includeRelatedTopics` (type: `boolean`):

When a keyword's own reels run out, go on with the related searches Instagram suggests for it (home workout: home workout for women, home leg workout, ...). Each row says which search it came from.

## `requireKeywordMatch` (type: `boolean`):

On (default): every keyword reel's caption, hashtags or creator name contains the keyword (cosplay matches #cosplaygirl). Off: every reel Instagram groups under the keyword's search. Reels left out aren't charged.

## `maxResults` (type: `integer`):

Stop after this many reels in total, across profiles, reel URLs and keywords. You pay per reel, so this caps the run's cost.

## `proxyConfiguration` (type: `object`):

Leave as is: Apify Proxy (datacenter). If Instagram keeps refusing datacenter IPs, the Actor switches to Apify residential on its own, at no extra cost to you.

## `maxAgeDays` (type: `integer`):

Kept for saved inputs: keep only reels posted in the last N days. Reels newer than (above) does the same with a date or any time span.

## `username` (type: `array`):

Same as Profiles or reel URLs; read together with it, so saved inputs of apify/instagram-reel-scraper run as they are.

## `resultsLimit` (type: `integer`):

Same as Max reels per profile (used when that one is empty).

## `includeSharesCount` (type: `boolean`):

Accepted for saved inputs. Instagram shows share counts only to signed-in accounts and this Actor never signs in, so rows have no share count and nothing is charged for it.

## `includeDownloadedVideo` (type: `boolean`):

Accepted for saved inputs: turns on the video and audio file links.

## `skipTrialReels` (type: `boolean`):

Accepted for saved inputs; no effect (the Actor reads each profile's public reels tab).

## Actor input object example

```json
{
  "profiles": [
    "natgeo",
    "nasa"
  ],
  "maxReelsPerProfile": 10,
  "includeTranscript": true,
  "includeDetails": true,
  "includeComments": false,
  "includeVideoUrl": false,
  "skipPinnedPosts": false,
  "maxResultsPerKeyword": 100,
  "sortBy": "relevance",
  "includeRelatedTopics": true,
  "requireKeywordMatch": true,
  "maxResults": 10000,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "includeSharesCount": false,
  "includeDownloadedVideo": false,
  "skipTrialReels": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profiles": [
        "natgeo",
        "nasa"
    ],
    "maxReelsPerProfile": 10,
    "sortBy": "relevance",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/instagram-reel-transcript-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "profiles": [
        "natgeo",
        "nasa",
    ],
    "maxReelsPerProfile": 10,
    "sortBy": "relevance",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/instagram-reel-transcript-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profiles": [
    "natgeo",
    "nasa"
  ],
  "maxReelsPerProfile": 10,
  "sortBy": "relevance",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call deepmine/instagram-reel-transcript-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deepmine/instagram-reel-transcript-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7Ae1kR1WSkTo8VchS/builds/43o5q5f4tTWKYFlvg/openapi.json
