Box Office Mojo API endpoint
Returns estimate-vs-actual rows from Box Office Mojo's domestic weekend estimates chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.
/boxofficemojo/weekend/domestic/estimatesQuery parameters:
year - Required domestic weekend year, from 1982 through 2100.week - Required weekend number, from 1 through 53.Notable response behavior:
| Field | Filled in, of 28 checked | Values in the sample |
|---|---|---|
| estimated_rank | 28 | 1 to 28, median 14 |
| actual_rank | 28 | 1 to 42, median 14 |
| release | 28 | “Avatar: Fire and Ash” and 27 other values |
| release_path | 28 | “/release/rl3389031937/” and 27 other values |
| release_url | 28 | boxofficemojo.com |
| estimated_gross | 28 | 1,147 to 63,866,342, median 221,212 |
| estimated_gross_raw | 28 | “$63,866,342” and 27 other values |
| actual_gross | 26 | 12,591 to 63,087,667, median 228,302 |
| actual_gross_raw | 28 | “$63,087,667” and 26 other values |
| gross_diff | 26 | -778,675 to 4,912,953, median 1,655 |
| gross_diff_raw | 28 | “-$778,675” and 26 other values |
| gross_diff_percent | 25 | -0.53 to 0.79, median 0.02 |
| theaters | 28 | 2 to 3,800, median 170 |
| estimated_total | 23 | 36,500 to 331,623,190, median 15,512,475 |
| estimated_total_raw | 28 | “$217,693,465” and 23 other values |
| actual_total | 26 | 29,566 to 331,684,695, median 10,367,755 |
| actual_total_raw | 28 | “$216,914,790” and 26 other values |
| weekend_in_release | 28 | 1 to 11, median 3 |
| distributor | 28 | “20th Century Studios” and 15 other values |
| rank_diff | 14 | -1 to 14, median 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| year | integer | Yes | Domestic weekend year, from 1982 through 2100 | 2025 | |
| week | integer | Yes | Weekend number, 1 through 53 | 52 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/boxofficemojo/weekend/domestic/estimates?year=2025&week=52" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"year": 2025,
"week": 52,
"results": [
{
"estimated_rank": 1,
"release": "Avatar: Fire and Ash",
"estimated_gross_raw": "$62,000,000",
"actual_gross_raw": "$63,087,667"
}
],
"public_page_derived": true
}
}Request schema
No body schema
Response schema
#/definitions/boxofficemojo.weekendEstimatesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | boxofficemojo.WeekendEstimatesResponse | No | ||||
| data.date_range | string | No | December 26-28, 2025 | Weekend dates, for example `December 26-28, 2025`. | ||
| data.fetched_at | string | No | 2026-06-07T14:46:16Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.public_page_derived | boolean | No | true | Always `true`; the values come from Box Office Mojo's public pages. | ||
| data.results | array | No | Rows comparing estimated and actual weekend figures, one per release. | |||
| data.results[].actual_gross | integer | No | 63087667 | Actual weekend gross, in US dollars. | ||
| data.results[].actual_gross_raw | string | No | $63,087,667 | Actual weekend gross, as Box Office Mojo displays it, for example `$63,087,667`. | ||
| data.results[].actual_rank | integer | No | 1 | Position on the chart once actual figures were reported. | ||
| data.results[].actual_total | integer | No | 216914790 | Actual domestic gross to date, in US dollars. | ||
| data.results[].actual_total_raw | string | No | $216,914,790 | Actual domestic gross to date, as Box Office Mojo displays it, for example `$216,914,790`. | ||
| data.results[].distributor | string | No | 20th Century Studios | Studio or distributor handling the release. | ||
| data.results[].estimated_gross | integer | No | 62000000 | Estimated weekend gross, in US dollars. | ||
| data.results[].estimated_gross_raw | string | No | $62,000,000 | Estimated weekend gross, as Box Office Mojo displays it, for example `$62,000,000`. | ||
| data.results[].estimated_rank | integer | No | 1 | Position on the chart by estimated weekend gross. | ||
| data.results[].estimated_total | integer | No | 215000000 | Estimated domestic gross to date, in US dollars. | ||
| data.results[].estimated_total_raw | string | No | $215,000,000 | Estimated domestic gross to date, as Box Office Mojo displays it, for example `$215,000,000`. | ||
| data.results[].gross_diff | integer | No | 1087667 | Actual weekend gross minus estimated weekend gross, in US dollars. | ||
| data.results[].gross_diff_percent | number | No | 0.018 | Gross difference as a fraction (0.018 is 1.8%). | ||
| data.results[].gross_diff_raw | string | No | $1,087,667 | Gross difference, as Box Office Mojo displays it, for example `$1,087,667`. | ||
| data.results[].rank_diff | integer | No | 0 | Difference between the estimated rank and the actual rank. | ||
| data.results[].release | string | No | Avatar: Fire and Ash | Release name as shown on the estimates chart. | ||
| data.results[].release_path | string | No | /release/rl3389031937/ | Path of the release page on Box Office Mojo, for example `/release/rl3389031937/`. | ||
| data.results[].release_url | string | No | https://www.boxofficemojo.com/release/rl3389031937/ | Full URL of the release page on Box Office Mojo. | ||
| data.results[].theaters | integer | No | 3800 | Number of theaters showing the release that weekend. | ||
| data.results[].weekend_in_release | integer | No | 2 | Weekend number of the release's run, as shown in the Weekend column. | ||
| data.source_url | string | No | https://www.boxofficemojo.com/weekend/2025W52/estimates/ | URL of the Box Office Mojo page the data was read from. | ||
| data.week | integer | No | 52 | Week number of the requested weekend within the year. | ||
| data.year | integer | No | 2025 | Year of the requested weekend. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/boxofficemojo/weekend/domestic/estimates?year=2025&week=52" \
-H "x-api-key: $CRAWLORA_API_KEY"