OilPriceAPI Documentation
GitHub
GitHub
  • Interactive Explorer

    • Interactive API Explorer
  • Price Data

    • API Reference
    • Get Latest Prices
    • Historical Prices
  • Commodities

    • List Commodities
    • Get Commodity Details
  • Marine Fuels

    • List Marine Fuel Ports
    • Get Port Details with Prices
  • Premium Endpoints

    • All Prices API - One Call, All Commodities
    • Cushing Oil Storage Intelligence API
    • Drilling Intelligence API
    • Marine Fuels API
    • ICE Brent Futures API

Get All Marine Fuels

Get comprehensive marine fuel prices from all ports and all fuel grades.

GET/v1/prices/marine-fuels

Request

Headers

HeaderRequiredDescription
AuthorizationYesToken authentication with your API key
AcceptNoapplication/json (default)

Query Parameters

ParameterTypeRequiredDescriptionExample
portstringNoFilter by specific port codeSGSIN, NLRTM
fuel_typestringNoFilter by fuel gradeVLSFO, MGO_05, HFO_380, HFO_180
regionstringNoFilter by regionasia, europe, americas

Response

Success Response (200 OK)

Code Examples

Port Codes

CodePortCountryRegion
SGSINSingaporeSingaporeasia
NLRTMRotterdamNetherlandseurope
USHOUHoustonUnited Statesamericas
AEFUJFujairahUAEmiddle_east
HKHKGHong KongHong Kongasia
USLAXLos AngelesUnited Statesamericas
USNYCNew YorkUnited Statesamericas
BRSSZSantosBrazilamericas

Fuel Types

CodeFull NameSulfur ContentIMO 2020 Compliant
MGO_05Marine Gas Oil 0.5%S≤ 0.5%✅ Yes
VLSFOVery Low Sulfur Fuel Oil≤ 0.5%✅ Yes
HFO_380Heavy Fuel Oil 380 CST~3.5%❌ Scrubber required
HFO_180Heavy Fuel Oil 180 CST~3.5%❌ Scrubber required

Use Cases

1. Bunker Procurement Strategy

// Find optimal bunkering port for a voyage
async function findOptimalBunkering(voyageRoute, fuelRequired) {
  const fuelType = 'VLSFO';
  const prices = await getMarineFuelPrices({ fuel_type: fuelType });
  
  // Filter ports along the route
  const routePorts = prices.filter(port => 
    voyageRoute.includes(port.port.code)
  );
  
  // Calculate total cost including deviation
  const options = routePorts.map(port => ({
    port: port.port.name,
    fuelCost: port.prices[fuelType].price * fuelRequired,
    deviationCost: calculateDeviationCost(voyageRoute, port.port.code),
    totalCost: (port.prices[fuelType].price * fuelRequired) + 
               calculateDeviationCost(voyageRoute, port.port.code)
  }));
  
  return options.sort((a, b) => a.totalCost - b.totalCost)[0];
}

2. Price Alert System

# Monitor price changes and trigger alerts
def monitor_price_changes(threshold_percent=2.0):
    api = MarineFuelAPI('YOUR_API_KEY')
    
    current_prices = api.get_marine_fuels()
    
    for port_data in current_prices:
        for fuel_type, price_data in port_data['prices'].items():
            change_percent = abs(price_data['change_percent'])
            
            if change_percent >= threshold_percent:
                send_alert({
                    'port': port_data['port']['name'],
                    'fuel': fuel_type,
                    'price': price_data['formatted'],
                    'change': f"{price_data['change_percent']:+.1f}%",
                    'timestamp': price_data['timestamp']
                })

3. Market Analysis Dashboard

// Create real-time market analysis
async function createMarketDashboard() {
  const allPrices = await getMarineFuelPrices();
  
  // Calculate market statistics
  const stats = {
    totalPorts: allPrices.length,
    priceRanges: {},
    regionalAverages: {},
    volatility: {}
  };
  
  // Price ranges by fuel type
  ['MGO_05', 'VLSFO', 'HFO_380', 'HFO_180'].forEach(fuelType => {
    const prices = allPrices
      .filter(p => p.prices[fuelType])
      .map(p => p.prices[fuelType].price);
    
    stats.priceRanges[fuelType] = {
      min: Math.min(...prices),
      max: Math.max(...prices),
      avg: prices.reduce((a, b) => a + b, 0) / prices.length,
      spread: Math.max(...prices) - Math.min(...prices)
    };
  });
  
  // Regional averages
  const regions = ['asia', 'europe', 'americas'];
  regions.forEach(region => {
    const regionPorts = allPrices.filter(p => p.port.region === region);
    stats.regionalAverages[region] = calculateRegionalStats(regionPorts);
  });
  
  return stats;
}

Related Endpoints

  • GET /v1/prices/marine-fuels/latest - Latest marine fuel prices only
  • GET /v1/prices/marine-fuels/ports - Port information without prices
  • GET /v1/prices/marine-fuels/historical - Historical marine fuel data
  • GET /v1/prices/latest - All commodity prices including marine fuels