# IMDb Scraper — Ratings, Cast, Box Office, Awards & Top 250 (`sian.agency/imdb-scraper`) Actor

Extract structured IMDb movie and TV data by title ID or URL — ratings, Metacritic, certificate, runtime, genres, full billed cast, box-office grosses and budget, awards and Oscar wins, plot and user reviews. Pull the Top 250 Movies and Top 250 TV charts. Export clean JSON or CSV, no login.

- **URL**: https://apify.com/sian.agency/imdb-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Videos, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 chart ranking extracteds

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/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

## IMDb Scraper — Ratings, Cast, Box Office, Awards & Top 250 🎬

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Store-Douban Movie Scraper](https://img.shields.io/badge/Store-Douban%20Movie%20Scraper-1AE392)](https://apify.com/sian.agency/douban-movie-scraper?fpr=sian) [![Store-Bilibili Scraper](https://img.shields.io/badge/Store-Bilibili%20Scraper-00A1D6)](https://apify.com/sian.agency/bilibili-video-scraper?fpr=sian) [![Store-Instagram AI Transcript](https://img.shields.io/badge/Store-Instagram%20AI%20Transcript-E4405F)](https://apify.com/sian.agency/instagram-ai-transcript-extractor?fpr=sian)

#### 🎉 One enriched row per title — ratings, full cast, box office AND awards, merged in a single call
##### Built for data teams, researchers and app builders who need clean, structured IMDb data — by ID or URL, no login, no rental.

---

### 📋 Overview

**Turn any IMDb title into a clean structured dataset.** Feed a title ID or an IMDb URL and get back one enriched row per title — ratings, Metacritic, certificate, runtime, genres, plot, billed cast, box-office grosses and awards. Or pull the entire Top 250 chart, or mine featured user reviews. Export JSON, CSV or Excel in seconds.

**Why data teams choose this scraper:**
- ✅ **One row, every field**: ratings, full billed cast with characters, box office AND awards merged into a single row — the fields other scrapers split across separate tools.
- ⚡ **ID or URL in, clean data out**: paste `tt0111161` or `https://www.imdb.com/title/tt0111161/` — the title ID is parsed for you. Single or bulk.
- 🎯 **Top 250 charts**: export the full Top 250 Movies or Top 250 TV ranking — rank, rating and votes per row — in one call.
- 💰 **Pay-per-result, best-in-class price**: only pay for rows you receive. No $50/month rental, no login, no API key.
- 💎 **Box office + awards moat**: budget, opening weekend, domestic & worldwide gross, total wins, nominations and Oscar counts — data most IMDb scrapers leave out.
- ✨ **Movie & TV, worldwide**: films, series, episodes and shorts, localized across 11 language/country options.

---

### ✨ Features

- 🎞️ **Enriched Title Profile**: ratings, Metacritic, certificate, runtime, genres, plot, watchlist size and production status — one row per title.
- 🌟 **Full Billed Cast**: principal cast with the characters they play, plus the top cast list and total cast-credit count.
- 💰 **Box Office**: budget, opening-weekend gross with date, domestic gross and worldwide gross, with currency.
- 🏆 **Awards & Oscars**: total wins and nominations plus prestigious-award (Oscar) wins and nominations, and all-time ranking.
- 🏅 **Top 250 Charts**: export the Top 250 Movies or Top 250 TV chart — 250 ranked titles per run.
- 📝 **Featured User Reviews**: full review text, summary, author rating, helpful up/down votes, date and spoiler flag.
- 🚀 **Single or Bulk**: process one title or thousands — IDs or IMDb URLs, de-duplicated automatically.
- 🌐 **Localized Output**: 11 language/country presets (English, French, German, Hindi, Italian, Portuguese, Spanish).
- 📤 **Clean Exports**: JSON, CSV, Excel and API — ready for spreadsheets, databases and pipelines.

---

### 🎬 Quick Start

Pick an operation, provide a title ID (or a chart), and run. Results land in a structured dataset you can export or pull via API. No account on any third-party site required.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~imdb-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"operation": "titleProfile", "titleId": "tt0111161"}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose an operation

Pick **Title Profile** (enriched dossier), **Chart Rankings** (Top 250), or **Title Reviews** (featured reviews).

#### Step 2: Provide input

For Title Profile / Reviews, paste a title ID (`tt0111161`) or an IMDb URL — single or bulk. For Chart Rankings, choose Top 250 Movies or Top 250 TV.

#### Step 3: Run and export

Start the run and download your data as JSON, CSV or Excel — or pull it straight from the API.

**That's it! In under a minute, you'll have:**

- Clean, structured IMDb rows with 40+ fields
- Ratings, cast, box office and awards in one place
- Data ready for analysis, apps and pipelines

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | string | No | `titleProfile` (default), `chartRankings`, or `titleReviews` |
| `titleId` | string | No | A single IMDb title ID (`tt0111161`) or title URL |
| `titleIds` | array | No | Many title IDs or URLs for bulk processing |
| `chart` | string | No | `TOP_250` (default) or `TOP_250_TV` — for Chart Rankings |
| `includeCast` | boolean | No | Add billed cast to each Title Profile row (default `true`) |
| `includeBoxOffice` | boolean | No | Add box-office data to each Title Profile row (default `true`) |
| `includeAwards` | boolean | No | Add awards data to each Title Profile row (default `true`) |
| `includeDetails` | boolean | No | Add countries, languages and links (default `false`) |
| `languageCountry` | string | No | Localization preset (default `en_US`) |
| `maxResults` | integer | No | Optional cap on rows per run |

**Enriched title profile:**

```json
{
  "operation": "titleProfile",
  "titleId": "tt0111161",
  "includeCast": true,
  "includeBoxOffice": true,
  "includeAwards": true
}
```

**Bulk titles (IDs or URLs):**

```json
{
  "operation": "titleProfile",
  "titleIds": ["tt0111161", "https://www.imdb.com/title/tt0068646/", "tt0903747"]
}
```

**Top 250 chart:**

```json
{ "operation": "chartRankings", "chart": "TOP_250" }
```

***

### 📤 Output

Results are saved to the Apify dataset with **40+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| `imdbId` | string | IMDb title ID (`tt…`) |
| `movieTitle` | string | Title text |
| `titleTypeText` | string | Movie, TV Series, etc. |
| `releaseYear` | number | Release year |
| `ratingValue` | number | Aggregate IMDb rating |
| `ratingCount` | number | Vote count |
| `metacriticScore` | number | Metacritic metascore |
| `topRank` | number | Chart / all-time rank |
| `genres` | array | Genre labels |
| `plot` | string | Plot summary |
| `stars` | array | Billed cast (name + character + photo) |
| `castCreditTotal` | number | Total cast credits |
| `budgetAmount` | number | Production budget |
| `worldwideGross` | number | Worldwide box-office gross |
| `totalWins` | number | Total award wins |
| `prestigiousAward` | string | Top award (e.g. Oscar) |
| `reviewText` | string | Full user-review text (Title Reviews) |

**Example (Title Profile):**

```json
{
  "operation": "titleProfile",
  "imdbId": "tt0111161",
  "movieTitle": "The Shawshank Redemption",
  "releaseYear": 1994,
  "titleTypeText": "Movie",
  "ratingValue": 9.3,
  "ratingCount": 3209429,
  "metacriticScore": 82,
  "certificate": "R",
  "runtimeMinutes": 142,
  "genres": ["Epic", "Prison Drama", "Drama"],
  "stars": [{ "name": "Tim Robbins", "character": "Andy Dufresne", "personId": "nm0000209" }],
  "budgetAmount": 25000000,
  "worldwideGross": 29423730,
  "totalWins": 21,
  "totalNominations": 43,
  "prestigiousAward": "Oscar",
  "prestigiousNominations": 7,
  "imdbUrl": "https://www.imdb.com/title/tt0111161/"
}
```

***

### 💼 Use Cases & Examples

#### 1. Movie & TV Metadata Enrichment

**Data teams and app builders filling a content catalog with authoritative IMDb fields.**

**Input:** A list of title IDs or IMDb URLs
**Output:** One enriched row per title — ratings, cast, genres, runtime, box office, awards
**Use:** Populate a media database or streaming catalog without hand-collecting fields.

#### 2. Box-Office & Awards Research

**Analysts and journalists studying film performance and reception.**

**Input:** Title IDs of the films you're studying
**Output:** Budget, opening weekend, domestic & worldwide gross, wins, nominations, Oscar counts
**Use:** Build box-office models and awards-season datasets with fields most tools omit.

#### 3. Ratings & Review Sentiment Analysis

**Researchers and data scientists modeling audience reception.**

**Input:** Title IDs (Title Reviews) or a list of titles (Title Profile)
**Output:** Aggregate ratings, Metacritic, and featured reviews with text, rating and helpful votes
**Use:** Feed sentiment models and reception dashboards.

#### 4. Recommendation & Discovery Datasets

**ML engineers training recommendation engines and discovery apps.**

**Input:** Bulk title IDs
**Output:** Genres, cast, ratings, runtime and metadata per title
**Use:** Train models or benchmark a catalog against IMDb data.

#### 5. Top 250 Chart Tracking

**Content strategists and media analysts monitoring the all-time rankings.**

**Input:** `chartRankings` with Top 250 Movies or Top 250 TV
**Output:** 250 ranked rows — rank, title, year, rating, votes
**Use:** Schedule daily runs to track how the rankings shift over time.

#### 6. Competitive & Market Intelligence

**Studios and agencies benchmarking titles and franchises.**

**Input:** Titles across competitors or a franchise
**Output:** Ratings, box office, awards and cast in one comparable table
**Use:** Feed market-intelligence reports and pitch decks.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/imdb-scraper').call({
  operation: 'titleProfile',
  titleId: 'tt0111161'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/imdb-scraper').call(
    run_input={'operation': 'chartRankings', 'chart': 'TOP_250'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~imdb-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "titleReviews", "titleId": "tt0111161"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle JSON results
4. **Action**: Save to a sheet/DB, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **Up to 5 rows** per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small samples

#### PAID Tier (Production Ready)

- **Unlimited** rows per run
- Bulk titles and full Top 250 charts
- Pay-per-result: only charged for successful rows

💰 **Best price on the market** — transparent pay-per-event, no monthly rental, no API key.

🔗 [View current pricing](https://apify.com/sian.agency/imdb-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Can I search IMDb by keyword?**
A: This actor works by title ID or IMDb URL (and the Top 250 charts), not free-text search. Grab the `tt…` ID from any IMDb page and paste it — or the full URL.

**Q: How many titles can I process?**
A: FREE tier returns up to 5 rows per run. PAID tier is unlimited — bulk titles and full charts.

**Q: Does it cover TV shows as well as movies?**
A: Yes — movies, TV series, episodes and shorts, plus a Top 250 TV chart.

**Q: What box-office and awards data do I get?**
A: Budget, opening-weekend gross, domestic and worldwide gross, plus total wins, nominations and Oscar counts.

**Q: What output formats are available?**
A: JSON, CSV and Excel — export directly from the Apify dataset, or pull via API.

**Q: Is this legal?**
A: Yes — the actor only extracts publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**"No valid IMDb title ID found"**

- Make sure the input contains a `tt` ID (e.g. `tt0111161`) or a full IMDb title URL.
- For Chart Rankings, no ID is needed — set `operation` to `chartRankings`.

**"Title not found"**

- The `tt` ID may be invalid or removed. Verify it opens on imdb.com.

**Only 5 rows returned**

- You're on the FREE tier (capped at 5 rows). Upgrade to a paid Apify plan for unlimited rows.

**A box-office or awards field is empty**

- Not every title has box-office or awards data (e.g. unreleased or small titles). The row is still returned; those fields are simply omitted.

***

### ⚠️ Trademark Disclaimer

This is an independent tool and is **not affiliated with, endorsed by, or sponsored by IMDb.com, Inc. or Amazon.com, Inc.** "IMDb" and related marks are trademarks of their respective owners. This actor accesses publicly available information for legitimate data-analysis purposes under nominative fair use. Users are responsible for ensuring their use complies with applicable laws and the target platform's terms of service.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's Issues tab
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- ✉️ <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

🎯 **Pick one operation per run.**

- **🎞️ Title Profile** — one enriched dossier per title: ratings, Metacritic, certificate, runtime, genres, plot, billed cast, box office and awards. Needs a title ID or IMDb URL.
- **🏆 Chart Rankings** — the Top 250 Movies or Top 250 TV chart (250 ranked titles). No ID needed.
- **📝 Title Reviews** — featured user reviews for a title (full text, rating, helpful votes). Needs a title ID or IMDb URL.

## `titleId` (type: `string`):

🎬 **SINGLE TITLE:** For **Title Profile** and **Title Reviews**. Enter one title ID or a full title URL.

🔎 **Accepted formats:**

- `tt0111161`
- `https://www.imdb.com/title/tt0111161/`

💡 **TIP:** To process many titles at once, use the **Bulk Title IDs** field below.

✅ Movies, TV series, episodes, and shorts are all supported.

## `titleIds` (type: `array`):

🚀 **BULK MODE:** For **Title Profile** and **Title Reviews**. Provide many title IDs or URLs — one row is produced per title (Title Profile) or per review (Title Reviews).

🎟️ **TIER-BASED LIMITS:**

- **FREE users:** up to 5 titles per run
- **PAID users:** unlimited

📋 **BULK EDIT:** Click "Bulk edit" to paste IDs/URLs (one per line), upload a .txt file, or use + Add.

📌 If both single and bulk are provided, they are merged and de-duplicated.

## `chart` (type: `string`):

🏆 **CHART RANKINGS ONLY:** Which chart to export.

- **Top 250 Movies** — the 250 highest-rated feature films.
- **Top 250 TV** — the 250 highest-rated TV shows.

## `includeCast` (type: `boolean`):

🎭 Add the billed principal cast (actors + the characters they play) and the top cast list to each Title Profile row.

## `includeBoxOffice` (type: `boolean`):

💰 Add budget, opening-weekend gross, domestic gross and worldwide gross to each Title Profile row.

## `includeAwards` (type: `boolean`):

🏅 Add total wins and nominations plus prestigious-award (e.g. Oscar) wins and nominations to each Title Profile row.

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

🌍 Add countries of origin, spoken languages, official links, and alternate-title / filming-location counts to each Title Profile row. Off by default (one extra lookup per title).

## `languageCountry` (type: `string`):

🌐 Localizes titles, plot and certificates. Defaults to English (US).

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

🔢 Optional cap on the number of rows returned in a run (across all titles / chart positions). Leave empty for no cap. FREE runs are always capped at 5 rows regardless of this value.

## Actor input object example

```json
{
  "operation": "titleProfile",
  "titleId": "tt0111161",
  "chart": "TOP_250",
  "includeCast": true,
  "includeBoxOffice": true,
  "includeAwards": true,
  "includeDetails": false,
  "languageCountry": "en_US"
}
```

# Actor output Schema

## `output` (type: `string`):

One clean row per title (Title Profile), per ranked title (Chart Rankings), or per review (Title Reviews) — ratings, cast, box office, awards, plot and review text with curated camelCase fields.

## `report` (type: `string`):

HTML report with run status, success/error row counts, success rate, upstream calls, duration, and the inputs used — written even on fatal crash.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/imdb-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/imdb-scraper").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 '{}' |
apify call sian.agency/imdb-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/imdb-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IMDb Scraper — Ratings, Cast, Box Office, Awards & Top 250",
        "description": "Extract structured IMDb movie and TV data by title ID or URL — ratings, Metacritic, certificate, runtime, genres, full billed cast, box-office grosses and budget, awards and Oscar wins, plot and user reviews. Pull the Top 250 Movies and Top 250 TV charts. Export clean JSON or CSV, no login.",
        "version": "1.0",
        "x-build-id": "y2FsYFOylVEbV1Wea"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~imdb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-imdb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/sian.agency~imdb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-imdb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/sian.agency~imdb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-imdb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "operation": {
                        "title": "🎬 Operation",
                        "enum": [
                            "titleProfile",
                            "chartRankings",
                            "titleReviews"
                        ],
                        "type": "string",
                        "description": "🎯 **Pick one operation per run.**\n\n- **🎞️ Title Profile** — one enriched dossier per title: ratings, Metacritic, certificate, runtime, genres, plot, billed cast, box office and awards. Needs a title ID or IMDb URL.\n- **🏆 Chart Rankings** — the Top 250 Movies or Top 250 TV chart (250 ranked titles). No ID needed.\n- **📝 Title Reviews** — featured user reviews for a title (full text, rating, helpful votes). Needs a title ID or IMDb URL.",
                        "default": "titleProfile"
                    },
                    "titleId": {
                        "title": "🎬 Title ID or URL",
                        "type": "string",
                        "description": "🎬 **SINGLE TITLE:** For **Title Profile** and **Title Reviews**. Enter one title ID or a full title URL.\n\n🔎 **Accepted formats:**\n- `tt0111161`\n- `https://www.imdb.com/title/tt0111161/`\n\n💡 **TIP:** To process many titles at once, use the **Bulk Title IDs** field below.\n\n✅ Movies, TV series, episodes, and shorts are all supported.",
                        "default": "tt0111161"
                    },
                    "titleIds": {
                        "title": "🚀 Bulk Title IDs or URLs (Multiple Titles)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "🚀 **BULK MODE:** For **Title Profile** and **Title Reviews**. Provide many title IDs or URLs — one row is produced per title (Title Profile) or per review (Title Reviews).\n\n🎟️ **TIER-BASED LIMITS:**\n- **FREE users:** up to 5 titles per run\n- **PAID users:** unlimited\n\n📋 **BULK EDIT:** Click \"Bulk edit\" to paste IDs/URLs (one per line), upload a .txt file, or use + Add.\n\n📌 If both single and bulk are provided, they are merged and de-duplicated.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "chart": {
                        "title": "🏆 Chart",
                        "enum": [
                            "TOP_250",
                            "TOP_250_TV"
                        ],
                        "type": "string",
                        "description": "🏆 **CHART RANKINGS ONLY:** Which chart to export.\n\n- **Top 250 Movies** — the 250 highest-rated feature films.\n- **Top 250 TV** — the 250 highest-rated TV shows.",
                        "default": "TOP_250"
                    },
                    "includeCast": {
                        "title": "🎭 Include cast",
                        "type": "boolean",
                        "description": "🎭 Add the billed principal cast (actors + the characters they play) and the top cast list to each Title Profile row.",
                        "default": true
                    },
                    "includeBoxOffice": {
                        "title": "💰 Include box office",
                        "type": "boolean",
                        "description": "💰 Add budget, opening-weekend gross, domestic gross and worldwide gross to each Title Profile row.",
                        "default": true
                    },
                    "includeAwards": {
                        "title": "🏅 Include awards",
                        "type": "boolean",
                        "description": "🏅 Add total wins and nominations plus prestigious-award (e.g. Oscar) wins and nominations to each Title Profile row.",
                        "default": true
                    },
                    "includeDetails": {
                        "title": "🌍 Include extra details",
                        "type": "boolean",
                        "description": "🌍 Add countries of origin, spoken languages, official links, and alternate-title / filming-location counts to each Title Profile row. Off by default (one extra lookup per title).",
                        "default": false
                    },
                    "languageCountry": {
                        "title": "🌐 Language / Country",
                        "enum": [
                            "en_US",
                            "en_CA",
                            "fr_FR",
                            "fr_CA",
                            "de_DE",
                            "hi_IN",
                            "it_IT",
                            "pt_BR",
                            "es_ES",
                            "es_US",
                            "es_MX"
                        ],
                        "type": "string",
                        "description": "🌐 Localizes titles, plot and certificates. Defaults to English (US).",
                        "default": "en_US"
                    },
                    "maxResults": {
                        "title": "🔢 Max results (optional)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🔢 Optional cap on the number of rows returned in a run (across all titles / chart positions). Leave empty for no cap. FREE runs are always capped at 5 rows regardless of this value."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
