Monthly OPEC production data from the Official OPEC Monthly Oil Market Report (MOMR).
Source: OPEC Monthly Oil Market Report Release: Around the 15th of each month Plan Required: Scale (see pricing)
Production volumes, not the basket price
This is the OPEC MOMR production dataset — monthly crude production volumes by OPEC member country, published in the OPEC Monthly Oil Market Report.
It is not the OPEC Reference Basket price. If you want the daily basket price, use the OPEC_BASKET_USD commodity code against /v1/prices/latest — see OPEC Basket (OPEC_BASKET_USD).
| You want | Use | Plan |
|---|
| Daily OPEC Reference Basket price | /v1/prices/latest?by_code=OPEC_BASKET_USD | Any paid plan |
| Monthly OPEC production volumes | /v1/ei/opec_productions/* (this page) | Scale |
| Method | Endpoint | Description |
|---|
| GET | /v1/ei/opec_productions | List paginated reports |
| GET | /v1/ei/opec_productions/latest | Latest report |
| GET | /v1/ei/opec_productions/total | OPEC total production trend |
| GET | /v1/ei/opec_productions/by_country | Filter by country |
| GET | /v1/ei/opec_productions/historical | Historical data |
| GET | /v1/ei/opec_productions/top_producers | Ranked producers list |
| GET | /v1/ei/opec_productions/:id | Specific report by ID |
GET /v1/ei/opec_productions
| Parameter | Type | Default | Description |
|---|
page | integer | 1 | Page number |
per_page | integer | 10 | Results per page (max 50) |
GET /v1/ei/opec_productions/latest
{
"data": {
"report_month": "2024-12",
"opec_total_mbpd": 27.84,
"month_over_month": -0.15,
"headline": "OPEC production decreased by 150,000 b/d in December",
"countries": [
{
"country": "saudi_arabia",
"name": "Saudi Arabia",
"production_mbpd": 9.13,
"quota_mbpd": 9.0,
"compliance_pct": 98.6
}
]
}
}
GET /v1/ei/opec_productions/total
| Parameter | Type | Default | Description |
|---|
months | integer | 12 | Months of history (max 60) |
{
"data": {
"latest": {
"report_month": "2024-12",
"production_mbpd": 27.84,
"month_over_month": -0.15
},
"history": [
{
"report_month": "2024-12",
"production_mbpd": 27.84
},
{
"report_month": "2024-11",
"production_mbpd": 27.99
}
],
"trend": {
"direction": "decreasing",
"change_mbpd": -0.65,
"change_pct": -2.3
}
}
}
GET /v1/ei/opec_productions/by_country
| Parameter | Type | Required | Description |
|---|
country | string | No | Country code (snake_case) |
month | string | No | Format: YYYY-MM |
| Code | Country |
|---|
algeria | Algeria |
angola | Angola |
congo | Congo |
equatorial_guinea | Equatorial Guinea |
gabon | Gabon |
iran | Iran |
iraq | Iraq |
kuwait | Kuwait |
libya | Libya |
nigeria | Nigeria |
saudi_arabia | Saudi Arabia |
uae | United Arab Emirates |
venezuela | Venezuela |
| Code | Country |
|---|
azerbaijan | Azerbaijan |
bahrain | Bahrain |
brunei | Brunei |
kazakhstan | Kazakhstan |
malaysia | Malaysia |
mexico | Mexico |
oman | Oman |
russia | Russia |
south_sudan | South Sudan |
sudan | Sudan |
{
"data": {
"report_month": "2024-12",
"country": "saudi_arabia",
"name": "Saudi Arabia",
"production_mbpd": 9.13,
"quota_mbpd": 9.0,
"compliance_pct": 98.6,
"spare_capacity_mbpd": 3.0,
"month_over_month": 0.05
}
}
GET /v1/ei/opec_productions/top_producers
| Parameter | Type | Default | Description |
|---|
limit | integer | 10 | Number of producers (max 20) |
month | string | latest | Format: YYYY-MM |
{
"data": {
"report_month": "2024-12",
"producers": [
{
"rank": 1,
"country": "saudi_arabia",
"name": "Saudi Arabia",
"production_mbpd": 9.13,
"month_over_month": 0.05,
"share_of_opec": 32.8
},
{
"rank": 2,
"country": "iraq",
"name": "Iraq",
"production_mbpd": 4.25,
"month_over_month": -0.1,
"share_of_opec": 15.3
}
],
"opec_total": 27.84
}
}
GET /v1/ei/opec_productions/historical
| Parameter | Type | Default | Description |
|---|
country | string | opec_total | Country code or opec_total |
months | integer | 24 | Months of data (max 120) |
{
"data": {
"country": "saudi_arabia",
"data_points": [
{
"report_month": "2024-12",
"production_mbpd": 9.13,
"quota_mbpd": 9.0
}
]
}
}
import requests
response = requests.get(
"https://api.oilpriceapi.com/v1/ei/opec_productions/latest",
headers={"Authorization": "Token YOUR_API_KEY"}
)
data = response.json()
print(f"OPEC Total: {data['data']['opec_total_mbpd']} mb/d")
for country in data['data']['countries']:
if country.get('compliance_pct'):
status = "OK" if country['compliance_pct'] >= 100 else "OVER"
print(f"{country['name']}: {country['compliance_pct']}% compliance [{status}]")
const response = await fetch(
"https://api.oilpriceapi.com/v1/ei/opec_productions/total?months=6",
{ headers: { Authorization: "Token YOUR_API_KEY" } },
);
const data = await response.json();
const trend = data.data.trend;
console.log(`OPEC Trend: ${trend.direction}`);
console.log(`Change: ${trend.change_mbpd} mb/d (${trend.change_pct}%)`);
- Supply Control: OPEC+ controls ~40% of global oil supply
- Quota Compliance: Actual vs target production affects prices
- Spare Capacity: Saudi spare capacity is market safety valve
- Geopolitics: Sanctions, conflicts affect production