Real-time oil and commodity price data for Python - Professional-grade API at 98% less cost than Bloomberg Terminal
Get Free API Key β’ Documentation β’ Examples β’ Pricing
The official Python SDK for OilPriceAPI - Real-time and historical oil prices for Brent Crude, WTI, Natural Gas, and more.
Quick start:
pip install oilpriceapipip install oilpriceapifrom oilpriceapi import OilPriceAPI
# Initialize client (uses OILPRICEAPI_KEY env var by default)
client = OilPriceAPI()
# Get latest Brent Crude price
brent = client.prices.get("BRENT_CRUDE_USD")
print(f"Brent Crude: ${brent.value:.2f}")
# Output: Brent Crude: $71.45
# Get multiple prices
prices = client.prices.get_multiple(["BRENT_CRUDE_USD", "WTI_USD", "NATURAL_GAS_USD"])
for price in prices:
print(f"{price.commodity}: ${price.value:.2f}")# Get historical data as DataFrame
df = client.prices.to_dataframe(
commodity="BRENT_CRUDE_USD",
start="2024-01-01",
end="2024-12-31",
interval="daily"
)
# Add technical indicators
df = client.analysis.with_indicators(
df,
indicators=["sma_20", "sma_50", "rsi", "bollinger_bands"]
)
# Calculate spread between Brent and WTI
spread = client.analysis.spread("BRENT_CRUDE_USD", "WTI_USD", start="2024-01-01")- β Simple API - Intuitive methods for all endpoints
- β Type Safe - Full type hints for IDE autocomplete
- β Pandas Integration - First-class DataFrame support
- β Async Support - High-performance async client
- β Smart Caching - Reduce API calls automatically
- β Rate Limit Handling - Automatic retries with backoff
- β Technical Indicators - Built-in SMA, RSI, MACD, etc.
- β CLI Tool - Command-line interface included
Complete SDK Documentation β | Online Docs β
# Method 1: Environment variable (recommended)
export OILPRICEAPI_KEY="your_api_key"
client = OilPriceAPI()
# Method 2: Direct initialization
client = OilPriceAPI(api_key="your_api_key")
# Method 3: With configuration
client = OilPriceAPI(
api_key="your_api_key",
timeout=30,
max_retries=3,
cache="memory",
cache_ttl=300
)BRENT_CRUDE_USD- Brent Crude OilWTI_USD- West Texas IntermediateNATURAL_GAS_USD- Natural GasDIESEL_USD- DieselGASOLINE_USD- GasolineHEATING_OIL_USD- Heating Oil- View all commodities
from oilpriceapi.exceptions import OilPriceAPIError, RateLimitError, DataNotFoundError
try:
price = client.prices.get("INVALID_CODE")
except DataNotFoundError as e:
print(f"Commodity not found: {e}")
except RateLimitError as e:
print(f"Rate limited. Resets in {e.seconds_until_reset}s")
except OilPriceAPIError as e:
print(f"API error: {e}")import asyncio
from oilpriceapi import AsyncOilPriceAPI
async def get_prices():
async with AsyncOilPriceAPI() as client:
prices = await asyncio.gather(
client.prices.get("BRENT_CRUDE_USD"),
client.prices.get("WTI_USD"),
client.prices.get("NATURAL_GAS_USD")
)
return prices
# Run async function
prices = asyncio.run(get_prices())# Get current price
oilprice get BRENT_CRUDE_USD
# Export historical data
oilprice export WTI_USD --start 2024-01-01 --format csv -o wti_2024.csv
# Watch prices in real-time
oilprice watch BRENT_CRUDE_USD --interval 60The SDK includes utilities for testing your applications:
from oilpriceapi.testing import MockClient
def test_my_strategy():
client = MockClient()
client.set_price("BRENT_CRUDE_USD", 75.50)
result = my_trading_strategy(client)
assert result.action == "BUY"See EXAMPLES.md for comprehensive examples including:
- π Trading Strategies - Moving averages, spread analysis, risk management
- π Data Analysis - Seasonal patterns, correlations, forecasting
- π» Web Applications - Dashboards, REST APIs, monitoring systems
- π€ Data Export - Excel reports, database integration, alerts
Check out the examples/ directory for:
# Clone repository
git clone https://github.com/oilpriceapi/python-sdk
cd python-sdk
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black .
# Type checking
mypy oilpriceapiMIT License - see LICENSE file for details.
Contributions are welcome! Please see our Contributing Guide for details.
- π§ Email: support@oilpriceapi.com
- π Issues: GitHub Issues
- π Docs: Documentation
OilPriceAPI provides professional-grade commodity price data at 98% less cost than Bloomberg Terminal ($24,000/year vs $45/month). Trusted by energy traders, financial analysts, and developers worldwide.
- β‘ Real-time data updated every 5 minutes
- π Historical data for trend analysis and backtesting
- π 99.9% uptime with enterprise-grade reliability
- π 5-minute integration with this Python SDK
- π° Free tier with 1,000 requests/month to get started
Start Free β | View Pricing β | Read Docs β
Made with β€οΈ by the OilPriceAPI Team