# Instagram Transcript Scraper & Reels Monitor (`trakk/instagram-transcript-scraper-reels-monitor`) Actor

Transcribe public Instagram Reels from URLs or profiles. Get timestamps, SRT/VTT subtitles, hooks, spoken keywords, CTAs, offers, and promo codes. Research profiles or monitor only new Reels. No login required. Unofficial and not affiliated with Instagram.

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

## Pricing

from $2.50 / 1,000 transcribed-reels

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🎬 Instagram Transcript Scraper & Reels Monitor

> Turn public Instagram Reels into searchable transcripts, subtitles, hooks, keyword mentions, and profile-level insights — without an Instagram login.

Use one Actor for three jobs: transcribe specific Reel URLs, research the latest Reels from many public profiles, or monitor profiles and return only newly published videos.

### ✨ Why use this Actor?

- 📝 Get a full spoken-word transcript from every Reel with detectable speech
- ⏱️ Receive timestamped segments plus ready-to-use **SRT** and **WebVTT** subtitles
- 🎯 Detect opening hooks, spoken brands, keywords, calls to action, offers, discounts, and promo codes
- 👤 Research many public profiles in one run and receive a clean summary for each profile
- 🔔 Monitor competitors or creators and process only new Reels on later scheduled runs
- ⚡ Use genuine Instagram timed captions when available, with automatic speech-to-text fallback
- 📦 Export results as JSON, CSV, Excel, XML, RSS, SRT, or VTT
- 🔌 Connect the output to Make, Zapier, webhooks, schedules, or your own API

No cookies or Instagram credentials are required. The Actor works with public profiles and public `/reel/`, `/p/`, and `/tv/` URLs.

### 🚀 Quick start

1. Open the **Input** tab.
2. Choose a workflow: **Reel URLs**, **Profile research**, or **Monitor new Reels**.
3. Add public Reel URLs or Instagram usernames.
4. Keep **Fastest** selected unless you specifically need a larger speech model.
5. Click **Start** and open the **Reels & transcripts** Dataset when the run finishes.

The Actor runs with a tested **4 GB memory configuration** automatically. You do not need to tune memory or concurrency.

### 🧭 Three modes

| Mode | Best for | What it returns |
|---|---|---|
| **Reel URLs** | Transcribing known posts | One clean Reel record for each supplied URL or shortcode |
| **Profile research** | Competitor, creator, and brand research | Recent Reel records plus a separate profile summary for every profile |
| **Monitor new Reels** | Scheduled monitoring | Only unseen Reels after the initial baseline, plus updated profile summaries |

#### 🔗 Reel URLs

Paste one or many public Instagram Reel, post, or IGTV links. Bare shortcodes are also accepted.

#### 👥 Profile research

Add usernames such as `nasa`, `@natgeo`, or full profile URLs. Choose between 1 and 12 recent Reels per profile. One Reel per profile is the fastest setting for large lists.

Individual Reels stay in the **Reels & transcripts** Dataset. Aggregate rows are stored separately in **Profile summaries**, so exports remain clean and easy to use.

#### 🔔 Monitor new Reels

Give the monitor a stable `monitorId` and reuse it on every scheduled run. The Actor remembers previously seen shortcodes in persistent storage.

For the first run, choose:

- **Transcribe current Reels** — process current posts immediately and create the baseline.
- **Baseline only** — remember current posts without transcribing them; later runs return only newer Reels.

### 🎛️ Input

#### Example: research multiple profiles

```json
{
  "mode": "profiles",
  "profiles": ["nasa", "natgeo", "openai"],
  "maxReelsPerProfile": 1,
  "spokenKeywords": ["AI", "space", "new"],
  "hookSeconds": 5,
  "language": "auto",
  "transcriptionModel": "tiny",
  "preferNativeCaptions": true
}
````

<details>
<summary><strong>Example: transcribe direct Reel URLs</strong></summary>

```json
{
  "mode": "urls",
  "urls": [
    { "url": "https://www.instagram.com/reel/SHORTCODE/" }
  ],
  "spokenKeywords": ["brand", "discount", "link in bio"],
  "language": "auto",
  "transcriptionModel": "tiny"
}
```

</details>

<details>
<summary><strong>Example: monitor competitors</strong></summary>

```json
{
  "mode": "monitor",
  "profiles": ["nasa", "nasajpl"],
  "monitorId": "space-creators",
  "firstRunMode": "processCurrent",
  "maxReelsPerProfile": 3,
  "spokenKeywords": ["Mars", "Artemis", "Moon"],
  "language": "auto",
  "transcriptionModel": "tiny"
}
```

</details>

#### Main input options

| Field | Meaning | Default |
|---|---|---|
| `mode` | `urls`, `profiles`, or `monitor` | `profiles` |
| `urls` | Public Reel/post URLs or shortcodes | Example URL |
| `profiles` | Public usernames, `@usernames`, or profile URLs | `nasa` |
| `maxReelsPerProfile` | Recent Reels inspected per profile, from 1 to 12 | `1` |
| `monitorId` | Stable identifier used to remember seen Reels | Generated from profiles |
| `firstRunMode` | `processCurrent` or `baselineOnly` | `processCurrent` |
| `spokenKeywords` | Spoken words or brand names to locate with timestamps | Empty |
| `hookSeconds` | Length of the opening hook, from 1 to 15 seconds | `5` |
| `language` | Automatic detection or a forced language code | `auto` |
| `transcriptionModel` | `tiny`, `base`, or `small` | `tiny` |
| `preferNativeCaptions` | Use timed Instagram captions before speech-to-text | `true` |

### 📊 Output

#### Reels & transcripts

Each Reel record contains:

- Reel URL, shortcode, creator, coauthors, caption, publication date, cover, and media URL
- Views, likes, comments, duration, video dimensions, and audio status
- `transcriptStatus`: `transcribed` or `no_speech`
- `transcriptionSource`: `instagram_native_captions`, `speech_to_text`, or `media_metadata`
- Detected language and confidence
- Full transcript and timestamped segment JSON
- SRT and WebVTT subtitle text
- Opening `hookText`
- Matched keywords with timestamped context
- Calls to action, offer mentions, and promo codes
- `sourceProfile` and `isNew` for monitoring workflows

#### Profile summaries

The separate **Profile summaries** Dataset contains profile name, biography, follower counts, verification, discovered and processed Reel counts, frequent hooks, matched keywords, offers, and the top Reel by views.

#### Issues and run summary

- Recoverable problems are written to the separate **Issues** Dataset.
- A machine-readable run summary is saved as the `OUTPUT` record in the default key-value store.
- A run can complete as `SUCCEEDED_WITH_ISSUES` in `OUTPUT` while preserving every successful result.

### 🧾 Log

The log is compact and automation-friendly. It shows the selected mode, progress for each target, recoverable errors, and a final counter summary.

```text
INFO  START mode=profiles urls=0 profiles=2 maxReels=1 model=tiny preferNativeCaptions=True requestConcurrency=2 jobConcurrency=2 transcriptionConcurrency=1
INFO  PROFILE_DONE profile=nasa discovered=1 processed=1 transcribed=1 noSpeech=0
INFO  PROFILE_DONE profile=natgeo discovered=1 processed=1 transcribed=1 noSpeech=0
INFO  FINISH status=SUCCEEDED mode=profiles reelsDiscovered=2 reelsSaved=2 reelsTranscribed=2 reelsNoSpeech=0 profilesProcessed=2 profileSummaries=2 issues=0 durationSeconds=18.42
```

Warnings such as `URL_ERROR`, `PROFILE_ERROR`, or `TRANSCRIPT_ERROR` include the affected input and are also recorded in the **Issues** Dataset.

### 💳 Pricing behavior

When pay-per-event pricing is enabled, a successful spoken-word transcription is the billable event. Reels with no detectable speech and failed inputs are not charged as successful transcriptions. Platform resource usage may be shown separately in the Actor's Pricing tab.

### ⚠️ Limits

- Only public profiles and public posts are supported.
- Instagram currently exposes up to 12 recent Reels per profile through the public profile feed.
- Direct URL mode can process older public Reels when you provide their links.
- Instagram can change or remove public media at any time.
- Runtime depends on video duration, speech density, the selected model, and Instagram response times.
- Collaboration posts can appear on one profile while retaining another primary author. Use `sourceProfile` and `authorUsername` to distinguish them.

### ❓ FAQ

**Does it require an Instagram account or cookies?**\
No. It uses publicly available pages and media.

**Does it support private profiles?**\
No. Private or login-gated media cannot be processed.

**Why is a transcript empty?**\
Check `transcriptStatus`. Music-only videos, silent clips, or videos without a usable audio stream are returned as `no_speech` instead of being presented as failed transcriptions.

**Where are the profile summaries?**\
Open the separate **Profile summaries** Dataset. They are intentionally kept out of the Reel table.

**Can I schedule monitoring?**\
Yes. Create a task with `mode: "monitor"`, keep the same `monitorId`, and attach an Apify schedule.

**Can I export subtitles?**\
Yes. Use the subtitle Dataset view or read `transcriptSrt` and `transcriptVtt` from each Reel record.

# Actor input Schema

## `mode` (type: `string`):

Choose direct Reel URLs, multi-profile research, or stateful monitoring.

## `urls` (type: `array`):

Used only in Reel URLs mode. Supports public /reel/, /p/, and /tv/ links or bare shortcodes.

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

Used in Profile research and Monitor modes. Accepts usernames, @usernames, or full profile URLs.

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

Inspect between 1 and 12 recent public Reels per profile. Keep 1 for the fastest large-list runs.

## `monitorId` (type: `string`):

Stable name such as competitor-beauty-us. Reuse it on every scheduled run. When empty, the profile list becomes the ID.

## `firstRunMode` (type: `string`):

Process current Reels immediately, or save them only as a baseline so later runs return newer posts.

## `spokenKeywords` (type: `array`):

Optional case-insensitive words or brand names. Matches include timestamps and surrounding speech.

## `hookSeconds` (type: `number`):

Return the spoken opening from this many seconds of the Reel.

## `language` (type: `string`):

Automatic detection is recommended. Force a language only when you know it in advance.

## `transcriptionModel` (type: `string`):

Tiny is fastest and recommended for profile lists. Base and Small can improve difficult speech but take longer.

## `preferNativeCaptions` (type: `boolean`):

Use a genuine timed subtitle track when Instagram exposes one; otherwise automatically fall back to speech-to-text.

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

Residential US proxy access is preconfigured for reliable public Instagram requests.

## `maxConcurrency` (type: `integer`):

Two parallel discovery and media jobs provide stable throughput on the fixed 4 GB configuration.

## `transcriptionConcurrency` (type: `integer`):

Speech recognition is serialized for predictable memory usage and consistent long-list runs.

## `maxRetries` (type: `integer`):

Retry temporarily blocked, rate-limited, or interrupted Instagram requests.

## `requestTimeoutSecs` (type: `integer`):

Maximum time allowed for one Instagram or media request.

## Actor input object example

```json
{
  "mode": "profiles",
  "urls": [
    {
      "url": "https://www.instagram.com/reel/Da5ynsiuAZ_/"
    }
  ],
  "profiles": [
    "nasa"
  ],
  "maxReelsPerProfile": 1,
  "firstRunMode": "processCurrent",
  "hookSeconds": 5,
  "language": "auto",
  "transcriptionModel": "tiny",
  "preferNativeCaptions": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "maxConcurrency": 2,
  "transcriptionConcurrency": 1,
  "maxRetries": 5,
  "requestTimeoutSecs": 35
}
```

# Actor output Schema

## `transcripts` (type: `string`):

One clean row per Reel: cover, metadata, spoken hook, keywords, CTA, and full transcript.

## `monitoring` (type: `string`):

Incremental-monitor fields, including source profile and isNew status.

## `profiles` (type: `string`):

Separate, readable profile-level research summaries derived from the processed Reels.

## `subtitles` (type: `string`):

Subtitle exports and timestamped segment and word JSON.

## `errors` (type: `string`):

Failed, blocked, private, unavailable, or untranscribable inputs. These records are not successful transcription events.

## `runSummary` (type: `string`):

Machine-readable counters, status, timing, and monitor state key for this run.

# 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 = {
    "mode": "profiles",
    "urls": [
        {
            "url": "https://www.instagram.com/reel/Da5ynsiuAZ_/"
        }
    ],
    "profiles": [
        "nasa"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("trakk/instagram-transcript-scraper-reels-monitor").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 = {
    "mode": "profiles",
    "urls": [{ "url": "https://www.instagram.com/reel/Da5ynsiuAZ_/" }],
    "profiles": ["nasa"],
}

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

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

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

```

## CLI example

```bash
echo '{
  "mode": "profiles",
  "urls": [
    {
      "url": "https://www.instagram.com/reel/Da5ynsiuAZ_/"
    }
  ],
  "profiles": [
    "nasa"
  ]
}' |
apify call trakk/instagram-transcript-scraper-reels-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=trakk/instagram-transcript-scraper-reels-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Transcript Scraper & Reels Monitor",
        "description": "Transcribe public Instagram Reels from URLs or profiles. Get timestamps, SRT/VTT subtitles, hooks, spoken keywords, CTAs, offers, and promo codes. Research profiles or monitor only new Reels. No login required. Unofficial and not affiliated with Instagram.",
        "version": "0.4",
        "x-build-id": "bWbqWLJpDI7Jdrl2y"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trakk~instagram-transcript-scraper-reels-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trakk-instagram-transcript-scraper-reels-monitor",
                "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/trakk~instagram-transcript-scraper-reels-monitor/runs": {
            "post": {
                "operationId": "runs-sync-trakk-instagram-transcript-scraper-reels-monitor",
                "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/trakk~instagram-transcript-scraper-reels-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-trakk-instagram-transcript-scraper-reels-monitor",
                "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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Workflow",
                        "enum": [
                            "urls",
                            "profiles",
                            "monitor"
                        ],
                        "type": "string",
                        "description": "Choose direct Reel URLs, multi-profile research, or stateful monitoring.",
                        "default": "profiles"
                    },
                    "urls": {
                        "title": "Instagram Reel or video URLs",
                        "type": "array",
                        "description": "Used only in Reel URLs mode. Supports public /reel/, /p/, and /tv/ links or bare shortcodes.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "profiles": {
                        "title": "Public Instagram profiles",
                        "type": "array",
                        "description": "Used in Profile research and Monitor modes. Accepts usernames, @usernames, or full profile URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReelsPerProfile": {
                        "title": "Recent Reels per profile",
                        "minimum": 1,
                        "maximum": 12,
                        "type": "integer",
                        "description": "Inspect between 1 and 12 recent public Reels per profile. Keep 1 for the fastest large-list runs.",
                        "default": 1
                    },
                    "monitorId": {
                        "title": "Monitor ID",
                        "type": "string",
                        "description": "Stable name such as competitor-beauty-us. Reuse it on every scheduled run. When empty, the profile list becomes the ID."
                    },
                    "firstRunMode": {
                        "title": "First monitor run",
                        "enum": [
                            "processCurrent",
                            "baselineOnly"
                        ],
                        "type": "string",
                        "description": "Process current Reels immediately, or save them only as a baseline so later runs return newer posts.",
                        "default": "processCurrent"
                    },
                    "spokenKeywords": {
                        "title": "Spoken brands or keywords",
                        "type": "array",
                        "description": "Optional case-insensitive words or brand names. Matches include timestamps and surrounding speech.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "hookSeconds": {
                        "title": "Opening hook length",
                        "minimum": 1,
                        "maximum": 15,
                        "type": "number",
                        "description": "Return the spoken opening from this many seconds of the Reel.",
                        "default": 5
                    },
                    "language": {
                        "title": "Spoken language",
                        "enum": [
                            "auto",
                            "en",
                            "es",
                            "fr",
                            "de",
                            "it",
                            "pt",
                            "ru",
                            "uk",
                            "pl",
                            "tr",
                            "ar",
                            "hi",
                            "ja",
                            "ko",
                            "zh"
                        ],
                        "type": "string",
                        "description": "Automatic detection is recommended. Force a language only when you know it in advance.",
                        "default": "auto"
                    },
                    "transcriptionModel": {
                        "title": "Accuracy / speed",
                        "enum": [
                            "tiny",
                            "base",
                            "small"
                        ],
                        "type": "string",
                        "description": "Tiny is fastest and recommended for profile lists. Base and Small can improve difficult speech but take longer.",
                        "default": "tiny"
                    },
                    "preferNativeCaptions": {
                        "title": "Use Instagram captions first",
                        "type": "boolean",
                        "description": "Use a genuine timed subtitle track when Instagram exposes one; otherwise automatically fall back to speech-to-text.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Connection settings",
                        "type": "object",
                        "description": "Residential US proxy access is preconfigured for reliable public Instagram requests.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    },
                    "maxConcurrency": {
                        "title": "Parallel media jobs",
                        "minimum": 1,
                        "maximum": 2,
                        "type": "integer",
                        "description": "Two parallel discovery and media jobs provide stable throughput on the fixed 4 GB configuration.",
                        "default": 2
                    },
                    "transcriptionConcurrency": {
                        "title": "Parallel transcriptions",
                        "minimum": 1,
                        "maximum": 1,
                        "type": "integer",
                        "description": "Speech recognition is serialized for predictable memory usage and consistent long-list runs.",
                        "default": 1
                    },
                    "maxRetries": {
                        "title": "Request retries",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Retry temporarily blocked, rate-limited, or interrupted Instagram requests.",
                        "default": 5
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout",
                        "minimum": 10,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum time allowed for one Instagram or media request.",
                        "default": 35
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
