Python Quick Start
Get started with the OilPriceAPI Python SDK in under 5 minutes.
Installation
pip install oilpriceapi
Basic Usage
from oilpriceapi import OilPriceAPI
# Initialize with your API key
client = OilPriceAPI("YOUR_API_KEY")
# Get latest WTI price
price = client.prices.latest(by_code="WTI_USD")
print(f"WTI: ${price.data.price}")
Get Your API Key
- Sign up for free
- Copy your API key from the dashboard
- Replace
YOUR_API_KEYin the code above
Common Examples
Get Multiple Commodities
from oilpriceapi import OilPriceAPI
client = OilPriceAPI("YOUR_API_KEY")
# Get multiple commodities at once
commodities = ["WTI_USD", "BRENT_CRUDE_USD", "NATURAL_GAS_USD"]
prices = client.prices.latest(by_code=",".join(commodities))
for code, data in prices.data.items():
print(f"{code}: ${data['price']}")
Historical Prices
from oilpriceapi import OilPriceAPI
client = OilPriceAPI("YOUR_API_KEY")
# Get past week of WTI prices
history = client.prices.past_week(by_code="WTI_USD")
for point in history.data:
print(f"{point['created_at']}: ${point['price']}")
Async Support
import asyncio
from oilpriceapi import AsyncOilPriceAPI
async def get_prices():
client = AsyncOilPriceAPI("YOUR_API_KEY")
# Fetch multiple endpoints concurrently
wti, brent = await asyncio.gather(
client.prices.latest(by_code="WTI_USD"),
client.prices.latest(by_code="BRENT_CRUDE_USD")
)
print(f"WTI: ${wti.data.price}")
print(f"Brent: ${brent.data.price}")
asyncio.run(get_prices())
Error Handling
from oilpriceapi import OilPriceAPI
from oilpriceapi.exceptions import APIError, RateLimitError
client = OilPriceAPI("YOUR_API_KEY")
try:
price = client.prices.latest(by_code="WTI_USD")
print(f"WTI: ${price.data.price}")
except RateLimitError:
print("Rate limit exceeded. Try again later.")
except APIError as e:
print(f"API error: {e.message}")
SDK Features
- Type hints - Full typing support for IDE autocomplete
- Async support -
AsyncOilPriceAPIfor concurrent requests - Auto-retry - Automatic retry with exponential backoff
- Response models - Structured response objects