The Numbers API: Get movie financials
Looks up a film on The Numbers by title (and optional release year) and returns its budget, box office, physical disc sales and release details.
Unofficial. Not affiliated with or endorsed by The Numbers.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Year optional
year Release year when films have the same title, for example 1954.
Not set
Whole number.
- Title, required
title Movie title, for example Oppenheimer.
Oppenheimer
Input as JSON
{ "title": "Oppenheimer"}Output
{ "title": "Oppenheimer", "currency": "USD", "age_rating": "R", "release_year": 2023, "running_time": "180 minutes", "the_numbers_link": "https://www.the-numbers.com/movie/Oppenheimer-(2023)" , "production_budget": 100000000, "domestic_dvd_sales": 7196529, "domestic_box_office": 330078895, "worldwide_box_office": 983148052, "domestic_release_date": "2023-07-21", "domestic_blu_ray_sales": 22831206, "domestic_opening_weekend": 82455420, "international_box_office": 653069157}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"the-numbers.com/get_movie_financials","input":{"title":"Oppenheimer"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "the-numbers.com/get_movie_financials" , "input": { "title": "Oppenheimer" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "the-numbers.com/get_movie_financials" , "input": { "title": "Oppenheimer" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run the-numbers.com/get_movie_financials# with {"title":"Oppenheimer"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "title" ], "properties": { "year": { "type": "integer", "description": "Release year when films have the same title, for example 1954." }, "title": { "type": "string", "description": "Movie title, for example Oppenheimer." } }}Output schema
{ "type": "object", "required": [ "title", "release_year", "currency", "domestic_release_date", "age_rating", "running_time", "the_numbers_link", "production_budget", "domestic_box_office", "international_box_office", "worldwide_box_office", "domestic_opening_weekend", "domestic_dvd_sales", "domestic_blu_ray_sales" ], "properties": { "title": { "type": "string" }, "currency": { "enum": [ "USD" ], "type": "string" }, "age_rating": { "type": [ "string", "null" ] }, "release_year": { "type": [ "integer", "null" ] }, "running_time": { "type": [ "string", "null" ] }, "the_numbers_link": { "type": "string", "format": "uri" }, "production_budget": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "domestic_dvd_sales": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "domestic_box_office": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "worldwide_box_office": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "domestic_release_date": { "type": [ "string", "null" ], "format": "date" }, "domestic_blu_ray_sales": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "domestic_opening_weekend": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." }, "international_box_office": { "type": [ "number", "null" ], "description": "Amount in US dollars; null if unavailable." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
the-numbers.com/get_movie_financials- Returns
- title, release year, budget, domestic/international/worldwide box office, opening weekend, DVD and Blu-ray sales, release date, rating, running time, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method the-numbers.com/get_movie_financials with the inputs above.
Ask your agent
- What was the production budget and worldwide gross for Barbie (2023)?
- Pull up The Numbers data on Dune: Part Two — opening weekend, domestic and international box office.
- How much did the 1954 Godzilla make at the box office, and what's its running time and rating?
- Find DVD and Blu-ray sales figures for Frozen, along with its release date.
- Check the-numbers.com for Top Gun: Maverick's budget versus its total worldwide earnings.
See more
Finds a movie on Box Office Mojo by title, with an optional year, and returns its box office totals, release details, theater counts and markets.
boxofficemojo.com/get_movie_box_officeLists the highest-grossing movies of a calendar year, ranked by domestic or worldwide gross, with release dates and distributors.
boxofficemojo.com/list_top_grossing_moviesFinds a movie on TMDB by exact title (optionally its release year) or by TMDB movie link, and returns its details, cast, crew, trailers, and the release date, age rating and streaming services for a chosen country.
themoviedb.org/get_movieGets a movie or TV show's IMDb details from its name, IMDb title link or title ID; a year picks between titles with the same name. Unavailable details are null.
imdb.com/get_movie_or_showGets Rotten Tomatoes critic and audience scores and title details for a movie or TV show, optionally for one TV season. Audience rating counts may be unavailable for series.
rottentomatoes.com/get_scoresReturns the domestic US and Canada daily box office rankings for a date, or the latest reported day when no date is given.
boxofficemojo.com/get_daily_box_officeGets one Netflix movie or series by its exact name or Netflix title URL: title details, publicly shown seasons and episodes, and whether it is available in a given country's catalogue (checked against public JustWatch listings).
netflix.com/get_movie_or_showReturns ranked box office grosses for a weekend in a market. Defaults to the latest reported US and Canada weekend; international markets use their own weekend calendar.
boxofficemojo.com/get_weekend_box_office