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 Tier Required: Reservoir Mastery
| Method | Endpoint | Description |
|---|
| GET | /v1/dark_data/opec_productions | List paginated reports |
| GET | /v1/dark_data/opec_productions/latest | Latest report |
| GET | /v1/dark_data/opec_productions/total | OPEC total production trend |
| GET | /v1/dark_data/opec_productions/by_country | Filter by country |
| GET | /v1/dark_data/opec_productions/historical | Historical data |
| GET | /v1/dark_data/opec_productions/top_producers | Ranked producers list |
| GET | /v1/dark_data/opec_productions/:id | Specific report by ID |
GET /v1/dark_data/opec_productions
| Parameter | Type | Default | Description |
|---|
page | integer | 1 | Page number |
per_page | integer | 10 | Results per page (max 50) |
GET /v1/dark_data/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.00,
"compliance_pct": 98.6
}
]
}
}
GET /v1/dark_data/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/dark_data/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.00,
"compliance_pct": 98.6,
"spare_capacity_mbpd": 3.0,
"month_over_month": 0.05
}
}
GET /v1/dark_data/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.10,
"share_of_opec": 15.3
}
],
"opec_total": 27.84
}
}
GET /v1/dark_data/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.00
}
]
}
}
import requests
response = requests.get(
"https://api.oilpriceapi.com/v1/dark_data/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/dark_data/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