Skip to content

Releases: OilpriceAPI/python-sdk

v1.7.0 — World-class SDK Upgrade

29 Mar 18:10

Choose a tag to compare

What's New

Full Async Client

  • All 16 resources now available on AsyncOilPriceAPI (was only 2: prices + historical)
  • Async iter_pages() generator for memory-efficient pagination

New Features

  • Webhook signature verificationverify_webhook_signature() with HMAC-SHA256 and constant-time comparison
  • oilprice CLIoilprice price BRENT_CRUDE_USD, oilprice historical, oilprice commodities with --json output
  • Opt-in telemetryenable_telemetry=True on both sync and async clients
  • 429 auto-retry — honors Retry-After header (capped at 60s) instead of immediately raising

Bug Fixes

  • Fixed version triple mismatch (single source in version.py)
  • Fixed Python 3.8 syntax compatibility
  • Fixed await response.json() crash in async client (httpx .json() is synchronous)
  • Fixed get_current_price() connection leak
  • Removed unused aiohttp from [async] extra

Developer Experience

  • ValidationError, TimeoutError, ConfigurationError now exported from top-level
  • Lint/mypy now blocking in CI
  • Coverage enforcement gate (--cov-fail-under=50)
  • mkdocs + mkdocstrings API reference
  • Shared resource_validators.py to reduce sync/async duplication

Full changelog: v1.6.2...v1.7.0

v1.6.0 — Currency fix + auto-pagination

18 Mar 11:18

Choose a tag to compare

Fixes

  • Currency preservation in to_dataframe(): Fixed bug where all commodities showed USD regardless of actual currency. EUR, GBP, and other currencies now correctly preserved.
  • Auto-pagination in get_all() and to_dataframe(): Previously capped at one page of results. Now auto-paginates using X-Has-Next response header to fetch all available data.
  • New per_page parameter: Both get_all() and to_dataframe() accept per_page (default 100) to control page size.

Upgrade

pip install --upgrade oilpriceapi

v1.0.0 - Production Release

29 Sep 20:52

Choose a tag to compare

OilPriceAPI Python SDK v1.0.0

First stable release of the official OilPriceAPI Python SDK.

Features

  • ✅ Synchronous and asynchronous clients
  • ✅ Comprehensive error handling with automatic retry logic
  • ✅ Type-safe models with Pydantic v2
  • ✅ Current and historical price data access
  • ✅ Optional pandas DataFrame support
  • ✅ Production logging and observability
  • ✅ 100 passing tests with 64% coverage
  • ✅ Full documentation and examples

Installation

pip install oilpriceapi

Quick Start

from oilpriceapi import OilPriceAPI

# Initialize client
client = OilPriceAPI(api_key='your-api-key')

# Get current price
price = client.prices.get('BRENT_CRUDE_USD')
print(f'{price.commodity}: ${price.value}')

Documentation


🤖 Generated with Claude Code