OilPriceAPI Docs
Quick Start
API Reference
  • SDKs and languages
  • Tutorials
  • Articles
  • Documentation directory
  • Quick reference
  • API explorer
  • FAQ
  • Changelog
  • Status
  • Dashboard
GitHub
Quick Start
API Reference
  • SDKs and languages
  • Tutorials
  • Articles
  • Documentation directory
  • Quick reference
  • API explorer
  • FAQ
  • Changelog
  • Status
  • Dashboard
GitHub
  • Interactive Explorer

    • Interactive API Explorer
  • Price Data

    • API Reference
    • Get Latest Prices
    • Historical Prices
    • Batch Prices
    • Excel Latest Price Gateway
    • Price Widget Endpoints
    • Price Utility Endpoints
    • Demo API (No Authentication)
    • Natural Gas Intelligence
  • Commodities

    • List Commodities
    • Get Commodity Details
    • Data Publication & Collection Schedules
  • AI Agents (MCP)

    • Get Market Brief
    • Subscriptions / Watches
    • Agent Subscriptions with MCP
  • Marine Fuels

    • Marine Fuel API
    • List Marine Fuel Ports
    • Get Port Details with Prices
    • Bunker Fuels
    • Maritime Fuels
  • Fuel Surcharges

    • Fuel Surcharge API
  • Premium Endpoints

    • All Prices API - One Call, All Commodities
    • Cushing Oil Storage Intelligence API
    • Drilling Intelligence API
    • Marine Fuels API
    • ICE Brent Futures API
    • Benchmark Close
    • Aviation Fuel Pilot
  • Spreads & Margins

    • Spreads & Margins
    • Crack Spreads
    • European Gasoil Crack
    • Basis Spreads
    • Refining Margins
    • Curve Structure
    • Physical Premiums
  • Market Indicators

    • Market Indicators
    • Fuel Switching
    • Price Context
    • Storage Analytics
    • CFTC Positioning
    • Congressional Trades
    • Market Annotations
  • Futures

    • Futures API
    • ICE Brent Futures
    • ICE WTI Futures
    • Continuous Futures (Brent, WTI)
    • ICE Gas Oil Futures
    • NYMEX Natural Gas Futures
    • ICE EUA Carbon Futures
    • EU Carbon Futures
    • TTF Gas Futures
    • LNG JKM Futures
    • UK Carbon Futures
  • Dark Data (Premium)

    • Energy Intelligence API
    • Rig Counts
    • Well Permits
    • Well Production Beta
    • Drilling Intelligence (Public)
    • Oil Inventories
    • OPEC Production
    • Drilling Productivity
    • Forecasts (STEO)
  • Well Production (Beta)

    • Well Production Data
    • Well Production API Reference
  • Analytics

    • Analytics API
  • Webhooks API

    • Webhooks API Reference
    • Webhook Endpoint Reference
  • Alerts

    • Price Alerts API
  • Account & Billing

    • Account API
    • API Keys
    • Subscriptions
    • Organizations

OPEC Production

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 wantUsePlan
Daily OPEC Reference Basket price/v1/prices/latest?by_code=OPEC_BASKET_USDAny paid plan
Monthly OPEC production volumes/v1/ei/opec_productions/* (this page)Scale

Endpoints

MethodEndpointDescription
GET/v1/ei/opec_productionsList paginated reports
GET/v1/ei/opec_productions/latestLatest report
GET/v1/ei/opec_productions/totalOPEC total production trend
GET/v1/ei/opec_productions/by_countryFilter by country
GET/v1/ei/opec_productions/historicalHistorical data
GET/v1/ei/opec_productions/top_producersRanked producers list
GET/v1/ei/opec_productions/:idSpecific report by ID

List Reports

GET /v1/ei/opec_productions

Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger10Results per page (max 50)

Latest Report

GET /v1/ei/opec_productions/latest

Response

{
  "data": {
    "report_month": "2024-12",
    "publication_month": "2024-12",
    "production_month": "2024-11",
    "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
      }
    ]
  }
}

Report periods: publication_month vs production_month

Responses carry two period fields alongside report_month, because the MOMR publishes around the 15th of each month covering the prior month's production:

FieldMeaning
publication_monthThe month the MOMR report was published (same value as report_month)
production_monthThe month the production figures actually describe — normally one month before publication_month. Where the observation month could not be established, the shape differs by response: /latest and the report list return it as null, while historical, total, by_country and the per-producer rows of top-producers omit the key entirely (those records are compacted before serialization; top-producers is mixed — its top-level period block keeps the null) — so test for presence, not for null

Verified live 2026-09-11: the latest report returned "publication_month": "2026-07-01" with "production_month": "2026-06-01". Use production_month when aligning OPEC volumes with other monthly series; report_month/publication_month tell you which report the number came from, not which month it measures.

Total Production Trend

GET /v1/ei/opec_productions/total

Parameters

ParameterTypeDefaultDescription
monthsinteger12Months of history (max 60)

Response

{
  "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
    }
  }
}

By Country

GET /v1/ei/opec_productions/by_country

Parameters

ParameterTypeRequiredDescription
countrystringNoCountry code (snake_case)
monthstringNoFormat: YYYY-MM

OPEC Countries

CodeCountry
algeriaAlgeria
angolaAngola
congoCongo
equatorial_guineaEquatorial Guinea
gabonGabon
iranIran
iraqIraq
kuwaitKuwait
libyaLibya
nigeriaNigeria
saudi_arabiaSaudi Arabia
uaeUnited Arab Emirates
venezuelaVenezuela

OPEC+ Countries (Additional)

CodeCountry
azerbaijanAzerbaijan
bahrainBahrain
bruneiBrunei
kazakhstanKazakhstan
malaysiaMalaysia
mexicoMexico
omanOman
russiaRussia
south_sudanSouth Sudan
sudanSudan

Response

{
  "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
  }
}

Top Producers

GET /v1/ei/opec_productions/top_producers

Parameters

ParameterTypeDefaultDescription
limitinteger10Number of producers (max 20)
monthstringlatestFormat: YYYY-MM

Response

{
  "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
  }
}

Historical

GET /v1/ei/opec_productions/historical

Parameters

ParameterTypeDefaultDescription
countrystringopec_totalCountry code or opec_total
monthsinteger24Months of data (max 120)

Response

{
  "data": {
    "country": "saudi_arabia",
    "data_points": [
      {
        "report_month": "2024-12",
        "production_mbpd": 9.13,
        "quota_mbpd": 9.0
      }
    ]
  }
}

Code Examples

Python - Compliance Tracking

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}]")

JavaScript - Production Trend

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}%)`);

Why OPEC Production Matters

  • 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

Related

  • Rig Counts - US drilling activity
  • Forecasts - EIA supply/demand forecasts
  • Oil Inventories - Storage levels
Last Updated: 9/11/26, 11:08 PM
Prev
Oil Inventories
Next
Drilling Productivity