# TMDB Movies, TV Shows and People Scraper (`parseforge/tmdb-movies-tv-scraper`) Actor

Search The Movie Database (TMDB) for movies, TV shows, or people. Returns title, release date, runtime, genres, overview, poster, vote average, popularity, language, IMDB ID, networks, production, budget, revenue. Multi modes: movie/tv/person/multi/popular/trending/top-rated/now-playing.

- **URL**: https://apify.com/parseforge/tmdb-movies-tv-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Videos, Education, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $14.00 / 1,000 result items

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🎬 TMDB Movies, TV Shows and People Scraper

> 🚀 **Pull movies, TV shows, and people with cast, crew, trailer, watch providers, ratings, IMDB and Wikidata links across 12 modes.**

> 🕒 **Last updated:** 2026-05-08 · **📊 46 fields** per record · **12 modes** · search, popular, top rated, now playing, upcoming, trending · cast + crew + trailer + keywords + watch providers · TMDB, IMDB, FB, IG, X IDs

The **TMDB Movies, TV Shows and People Scraper** pulls rich entertainment metadata for movies, TV series, and people from The Movie Database. Output includes title, poster, backdrop, overview, runtime, certification, genres, keywords, cast (top 20 with character + photo), directors, writers, producers, trailer URL, watch providers (flatrate / rent / buy + link), spoken languages, production companies + countries, budget, revenue, IMDB ID, Facebook / Instagram / X IDs, and per-record poster + backdrop galleries.

Twelve modes in one Actor: search movies, TV, people, multi-search, popular movies, popular TV, top-rated movies, top-rated TV, now playing, upcoming, trending day, and trending week. Detail enrichment runs automatically per record. The dataset draws from TMDB, the canonical open community-maintained movie database used by Plex, Emby, Jellyfin, Stremio and many more.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Streaming UIs, recommendation engines, journalists, fan apps, ML datasets, cinephile communities, content marketing teams | Movie + TV recommender training, content marketing, what-to-watch tools, retrospectives and best-of lists, analytics dashboards, ML embeddings |

---

### 📋 What the TMDB Movies, TV Shows and People Scraper does

Five filtering workflows in a single run:

- 🔍 **Search modes.** Movies, TV, people, multi (mixed media).
- 🔥 **Browse modes.** Popular, top-rated, now playing, upcoming.
- 📈 **Trending.** Day and week trending across all media types.
- 🎭 **Cast + crew + trailer.** Top 20 cast with photos, directors, writers, producers, YouTube trailer.
- 🎯 **Watch providers.** Flatrate, rent, and buy services per region.

> 💡 **Why it matters:** clean, server-side filtering and fresh data on every run.

---
### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan up to 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>string</td><td><code>"movie"</code></td><td>movie, tv, person, multi, popular_movies, popular_tv, top_rated_movies, top_rated_tv, now_playing, upcoming, trending_day, trending_week.</td></tr>
<tr><td><code>query</code></td><td>string</td><td><code>""</code></td><td>Search term (required for search modes).</td></tr>
<tr><td><code>year</code></td><td>integer</td><td><code>""</code></td><td>Filter movies by release year (search-movie mode).</td></tr>
<tr><td><code>language</code></td><td>string</td><td><code>"en-US"</code></td><td>BCP-47 locale code, controls language of all text.</td></tr>
<tr><td><code>tmdbApiKey</code></td><td>string</td><td><code>""</code></td><td>Optional: bring your own TMDB API key. Default uses public read key.</td></tr>
</tbody>
</table>

**Example: search Christopher Nolan films.**

```json
{
    "maxItems": 20,
    "mode": "movie",
    "query": "Christopher Nolan"
}
````

**Example: top 20 popular TV shows.**

```json
{
    "maxItems": 20,
    "mode": "popular_tv"
}
```

***

### 📊 Output

Each record contains **46 fields**. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `posterUrl` | string | `"https://image.tmdb.org/t/p/w500/..."` |
| 🆔 `tmdbId` | number | `550` |
| 🎭 `mediaType` | string | `"movie"` |
| 📛 `title` | string | `"Fight Club"` |
| 📛 `originalTitle` | string | `"Fight Club"` |
| 📝 `tagline` | string | `"Mischief. Mayhem. Soap."` |
| 📜 `overview` | string | `"A ticking-time-bomb insomniac..."` |
| 📅 `releaseDate` | string | `"1999-10-15"` |
| ⏱️ `runtime` | number | `139` |
| 🔞 `certification` | string | `"R"` |
| 🏷️ `genres` | array | `["Drama","Thriller"]` |
| 🔑 `keywords` | array | `["dual identity","insomnia"]` |
| ⭐ `voteAverage` | number | `8.4` |
| 🗳️ `voteCount` | number | `27500` |
| 🔥 `popularity` | number | `45.2` |
| 🎭 `directors` | array | `["David Fincher"]` |
| 🎬 `cast` | array of objects | `[{"name":"Brad Pitt","character":"Tyler Durden","profileUrl":"...","order":0}]` |
| 📺 `trailerUrl` | string | `"https://www.youtube.com/watch?v=SUXWAEX2jlg"` |
| 📺 `watchProvidersFlatrate` | array | `["Netflix","Hulu"]` |
| 🆔 `imdbId` | string | `"tt0137523"` |
| 🆔 `facebookId` | string | `null` |
| 🌐 `tmdbUrl` | string | `"https://www.themoviedb.org/movie/550"` |

#### 📦 Sample records

<details>
<summary><strong>🎬 Inception (movie)</strong></summary>

```json
{"tmdbId":27205,"title":"Inception","releaseDate":"2010-07-15","runtime":148,"voteAverage":8.4,"directors":["Christopher Nolan"],"trailerUrl":"https://www.youtube.com/watch?v=YoHD9XEInc0","imdbId":"tt1375666"}
```

</details>

<details>
<summary><strong>📺 Breaking Bad (TV)</strong></summary>

```json
{"tmdbId":1396,"title":"Breaking Bad","firstAirDate":"2008-01-20","numberOfSeasons":5,"voteAverage":8.9,"creators":["Vince Gilligan"],"trailerUrl":"https://www.youtube.com/watch?v=HhesaQXLuRY"}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎭 | **Real cast + crew.** Top 20 cast with character, photo URL, and order; full director / writer / producer credits. |
| 📺 | **Trailers automatic.** First official YouTube trailer per title. |
| 🌐 | **Watch providers.** JustWatch-powered streaming availability per record. |
| 🆔 | **Cross-platform IDs.** TMDB + IMDB + Facebook + Instagram + X identifiers for joins. |
| 🆓 | **No API key required.** Uses TMDB's public read key by default. Bring your own for higher limits. |

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ This Actor** | $5 free credit | **Movies, TV, people** | Live per run | 12 modes | ⚡ 2 min |
| OMDb API (paid) | $1+/1k requests | Movies + TV | Live | Limited | 🐢 Account |
| IMDB scraping | Free | All | Live | DIY | 🐢 Days |
| TMDB direct | Free with key | All | Live | DIY pagination | 🐢 Hours |

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Find the TMDB Movies, TV Shows and People Scraper on the Apify Store.
3. 🎯 **Set input.** Pick filters and `maxItems`.
4. 🚀 **Run it.** Click **Start**.
5. 📥 **Download.** Grab results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 🎬 Streaming + Media

- What-to-watch UIs with watch-provider data
- Movie / TV recommender training
- Editorial content (best-of lists)
- Cinephile newsletters and apps

</td>
<td width="50%" valign="top">

#### 📊 Analytics + ML

- Embedding training on overview + keywords
- Box-office vs rating analysis
- Genre clustering
- Cast-graph extraction

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📰 Journalism + Content

- Movie reviews with rich metadata
- Award-season retrospectives
- Box-office trend pieces
- Director / actor filmography pages

</td>
<td width="50%" valign="top">

#### 🎨 Hobby + Side Projects

- Personal Letterboxd-style apps
- Family movie-night picker
- Watchlist managers
- Trivia generators

</td>
</tr>
</table>

***

### 🔌 Automating TMDB Movies, TV Shows and People Scraper

Control the scraper programmatically:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Film studies datasets
- Reproducible movie-rating snapshots
- Network analysis on cast / crew
- Genre-temporal studies

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal watchlist apps
- Movie-blog backbones
- Side projects with film data
- Trivia and quiz games

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Library + museum cinema programs
- Community film clubs
- Free educational film catalogs
- Heritage cinema preservation

</td>
<td width="50%">

#### 🧪 Experimentation

- Train cast-graph embeddings
- Prototype recommender systems
- Test conversational movie agents
- Build trailer-discovery tools

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20TMDB%20Movies%2C%20TV%20Shows%20and%20People%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20TMDB%20Movies%2C%20TV%20Shows%20and%20People%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20TMDB%20Movies%2C%20TV%20Shows%20and%20People%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20TMDB%20Movies%2C%20TV%20Shows%20and%20People%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick a mode (search or browse), supply a query if needed, and the Actor pulls results from TMDB. Each record is enriched with a detail call appending credits, videos, images, external IDs, keywords, release dates, and watch providers.

#### 📊 How many fields per record?

46 for movies and TV (cast, crew, trailer, providers, IDs, galleries). Person mode returns 21 fields plus credits.

#### 🎬 Does it return the full cast?

Top 20 cast members with character name, photo, and billing order. Full crew is summarized to directors / writers / producers.

#### 📺 Are trailer URLs included?

Yes. The first official YouTube trailer per title (when available) is returned as a clean watch URL.

#### 🌐 What about watch-provider data?

Yes. Flatrate (Netflix, Disney+, etc), rent, and buy lists per record, defaulting to US region.

#### 🆔 Which external IDs are returned?

TMDB, IMDB, Facebook, Instagram, and X (formerly Twitter) for joining with other datasets.

#### 🌍 Which language?

Default is en-US. Override via the language input (any TMDB-supported BCP-47 code).

#### 🔁 Can I schedule runs?

Yes. Apify Schedules supports any cron interval.

#### ⚖️ Is this data free to use?

TMDB is free for personal and non-commercial use. Commercial use requires attribution; consult TMDB's terms.

#### 💳 Do I need a paid Apify plan?

No. The free plan covers preview runs (10 records). A paid plan unlocks higher item counts and scheduling.

***

### 🔌 Integrate with any app

TMDB Movies, TV Shows and People Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets to Sheets

***

### 🔗 Recommended Actors

- [**🎞️ Letterboxd Film Database**](https://apify.com/parseforge/letterboxd-films-scraper) - Pull Letterboxd films with cast, themes, ratings, IMDB IDs
- [**🍳 Meal Recipes**](https://apify.com/parseforge/themealdb-recipes-scraper) - Recipes with ingredients, instructions, image, video
- [**🍹 Cocktail Drinks**](https://apify.com/parseforge/thecocktaildb-drinks-scraper) - Cocktail recipes with ingredients, glass, IBA, image
- [**🃏 Yu-Gi-Oh! Card Database**](https://apify.com/parseforge/yugioh-card-database-scraper) - Yu-Gi-Oh! cards with stats, archetypes, sets, prices
- [**🧠 Open Trivia DB Questions**](https://apify.com/parseforge/opentdb-trivia-scraper) - Trivia questions across 24 categories with answers

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by The Movie Database (TMDB), JustWatch, IMDB, or any production studio or distributor. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

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

movie/tv/person = search by name, multi = search across all types, popular\_movies / popular\_tv / trending = browse curated lists.

## `query` (type: `string`):

Required for movie/tv/person/multi modes. Ignored for popular/trending/top-rated/now-playing/upcoming.

## `year` (type: `integer`):

Restrict movie search to release year.

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

ISO 639-1 + region code (e.g. en-US, es-ES, fr-FR, pt-BR).

## `tmdbApiKey` (type: `string`):

Optional v3 API key. Free signup at themoviedb.org/signup → Settings → API.

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "movie",
  "query": "inception",
  "language": "en-US"
}
```

# Actor output Schema

## `overview` (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 = {
    "maxItems": 10,
    "mode": "movie",
    "query": "inception",
    "year": 0,
    "language": "en-US",
    "tmdbApiKey": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/tmdb-movies-tv-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 = {
    "maxItems": 10,
    "mode": "movie",
    "query": "inception",
    "year": 0,
    "language": "en-US",
    "tmdbApiKey": "",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/tmdb-movies-tv-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 '{
  "maxItems": 10,
  "mode": "movie",
  "query": "inception",
  "year": 0,
  "language": "en-US",
  "tmdbApiKey": ""
}' |
apify call parseforge/tmdb-movies-tv-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TMDB Movies, TV Shows and People Scraper",
        "description": "Search The Movie Database (TMDB) for movies, TV shows, or people. Returns title, release date, runtime, genres, overview, poster, vote average, popularity, language, IMDB ID, networks, production, budget, revenue. Multi modes: movie/tv/person/multi/popular/trending/top-rated/now-playing.",
        "version": "1.0",
        "x-build-id": "zfrO3uZWxUgUWbTwY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~tmdb-movies-tv-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-tmdb-movies-tv-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/parseforge~tmdb-movies-tv-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-tmdb-movies-tv-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/parseforge~tmdb-movies-tv-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-tmdb-movies-tv-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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "movie",
                            "tv",
                            "person",
                            "multi",
                            "popular_movies",
                            "popular_tv",
                            "trending_day",
                            "trending_week",
                            "top_rated_movies",
                            "top_rated_tv",
                            "now_playing",
                            "upcoming"
                        ],
                        "type": "string",
                        "description": "movie/tv/person = search by name, multi = search across all types, popular_movies / popular_tv / trending = browse curated lists.",
                        "default": "movie"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Required for movie/tv/person/multi modes. Ignored for popular/trending/top-rated/now-playing/upcoming."
                    },
                    "year": {
                        "title": "Year filter (movie mode)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Restrict movie search to release year."
                    },
                    "language": {
                        "title": "Result language",
                        "type": "string",
                        "description": "ISO 639-1 + region code (e.g. en-US, es-ES, fr-FR, pt-BR)."
                    },
                    "tmdbApiKey": {
                        "title": "TMDB API key",
                        "type": "string",
                        "description": "Optional v3 API key. Free signup at themoviedb.org/signup → Settings → API."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
