Oil Price API Documentation - Quick Start in 5 Minutes | REST API
GitHub
GitHub
  • Energy Market Guides

    • Baker Hughes Rig Count - What It Means for Oil Prices & Your Business [2026 Guide]
    • Natural Gas Price Forecast 2026 - Seasonal Patterns & Data-Driven Analysis
    • Dutch TTF Gas Price - Everything You Need to Know [Real-Time Data]
  • API Integration Guides

    • How to Add Real-Time Oil Prices to Your Oilfield Software [Developer Guide]
    • Get Oil Prices in Excel - Complete Guide to Commodity Data Without Code
    • Diesel Price API - Real-Time Fuel Data for Trucking & Fleet Software
    • Bunker Fuel Prices by Port - Singapore, Rotterdam, Fujairah & 7 More [Live Data]
  • Platform Comparisons

    • 7 Bloomberg Terminal Alternatives for Commodity Price Data [2026 Cost Comparison]
    • Best Financial Data APIs for Commodity Trading [2026 Comparison]
  • Trading & Enterprise

    • CTRM Software - How Commodity Trading Systems Use Price Data

Dutch TTF Gas Price: Everything You Need to Know [Real-Time Data]

The Dutch TTF (Title Transfer Facility) is Europe's most important natural gas benchmark. Whether you're managing energy costs for an industrial facility, trading European gas, or building energy software, understanding TTF pricing is essential. This guide explains TTF fundamentals and shows how to access real-time data via API.

What Is the Dutch TTF?

The Title Transfer Facility is a virtual trading point for natural gas in the Netherlands, operated by Gasunie Transport Services. It's become the de facto European benchmark for natural gas pricing, similar to how Brent is the benchmark for crude oil.

Key Characteristics

AttributeDetails
LocationNetherlands (virtual trading hub)
OperatorGasunie Transport Services
CurrencyEuro (EUR) per megawatt hour (MWh)
TradingSpot and futures contracts
ExchangeICE Endex (primary), EEX
Benchmark StatusEurope's most liquid gas hub

Why TTF Matters

TTF has surpassed the UK's NBP (National Balancing Point) as Europe's primary gas price reference:

  • Liquidity: Highest trading volumes in Europe
  • Contract base: LNG contracts increasingly TTF-indexed
  • Infrastructure: Connected to major EU pipeline networks
  • Transparency: Real-time price discovery

Historical Context: The 2021-2023 Energy Crisis

TTF prices experienced extreme volatility during the European energy crisis:

PeriodTTF Price (€/MWh)Context
Pre-crisis (2020)€10-20Normal range
August 2022 Peak€346All-time high
Post-crisis (2024)€25-40"New normal"
Current (2026)€30-45Stabilized

This volatility underscored why industrial energy consumers and traders need real-time price monitoring.

Who Needs TTF Price Data?

Industrial Energy Consumers

Manufacturing companies where natural gas is a significant cost input:

  • Chemical plants: Gas as feedstock and energy
  • Steel mills: Heating and processing
  • Cement producers: Kiln fuel
  • Food processors: Steam and heating
  • Glass manufacturers: Furnace operations

Use case: Budget forecasting, procurement timing, hedging decisions

Energy Traders

Physical and financial traders in European gas markets:

  • Utilities: Procurement and portfolio optimization
  • LNG traders: Arbitrage between regions
  • Hedge funds: Speculative positions
  • Banks: Commodity trading desks

Use case: Real-time position management, spread trading, risk management

Energy Software Companies

Building applications for the European energy sector:

  • Energy management systems: Industrial monitoring
  • Trading platforms: European gas modules
  • Procurement tools: Automated purchasing
  • Analytics dashboards: Price visualization

Use case: API integration for real-time data feeds

E&P Companies

Exploration and production companies selling gas into European markets:

  • Revenue forecasting: Linked to TTF pricing
  • Hedging programs: Lock in future prices
  • Investor relations: Market context

Use case: Benchmark prices for planning and reporting

Accessing TTF Price Data via API

OilPriceAPI provides real-time Dutch TTF natural gas prices via a simple REST API. No scraping, no manual data entry—just structured JSON responses.

Get Current TTF Price

curl "https://api.oilpriceapi.com/v1/prices/latest?by_code=DUTCH_TTF_EUR" \
  -H "Authorization: Token YOUR_API_KEY"

Response:

{
  "status": "success",
  "data": {
    "price": 36.42,
    "formatted": "€36.42",
    "currency": "EUR",
    "code": "DUTCH_TTF_EUR",
    "name": "Dutch TTF Natural Gas",
    "unit": "MWh",
    "created_at": "2026-01-30T14:30:00.000Z",
    "change": 0.85,
    "change_percent": 2.39
  }
}

Get Historical TTF Prices

Analyze price trends over time:

# Past 30 days with daily intervals
curl "https://api.oilpriceapi.com/v1/prices/past_month?by_code=DUTCH_TTF_EUR&interval=1d" \
  -H "Authorization: Token YOUR_API_KEY"

# Past 7 days with hourly intervals
curl "https://api.oilpriceapi.com/v1/prices/past_week?by_code=DUTCH_TTF_EUR&interval=1h" \
  -H "Authorization: Token YOUR_API_KEY"

Compare European Gas Benchmarks

Get TTF alongside other European gas prices:

curl "https://api.oilpriceapi.com/v1/prices/latest?by_code=DUTCH_TTF_EUR,UK_NATURAL_GAS_GBP" \
  -H "Authorization: Token YOUR_API_KEY"

Set Up Price Alerts

Use webhooks to receive notifications when TTF crosses key thresholds:

# Configure webhook for TTF price alerts
curl -X POST "https://api.oilpriceapi.com/v1/webhooks" \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.com/ttf-alert",
    "commodity_code": "DUTCH_TTF_EUR",
    "threshold_type": "above",
    "threshold_value": 40.00
  }'

Integration Examples

Python: TTF Budget Monitor

import requests
from datetime import datetime

class TTFMonitor:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https://api.oilpriceapi.com/v1"
        self.headers = {"Authorization": f"Token {api_key}"}

    def get_current_price(self):
        """Get current TTF price in EUR/MWh."""
        response = requests.get(
            f"{self.base_url}/prices/latest",
            params={"by_code": "DUTCH_TTF_EUR"},
            headers=self.headers
        )
        data = response.json()
        return data["data"]["price"]

    def get_monthly_average(self):
        """Calculate 30-day average TTF price."""
        response = requests.get(
            f"{self.base_url}/prices/past_month",
            params={"by_code": "DUTCH_TTF_EUR", "interval": "1d"},
            headers=self.headers
        )
        prices = response.json()["data"]["prices"]
        avg = sum(p["price"] for p in prices) / len(prices)
        return round(avg, 2)

    def calculate_energy_cost(self, consumption_mwh, price_eur=None):
        """Calculate energy cost for given consumption."""
        if price_eur is None:
            price_eur = self.get_current_price()
        return round(consumption_mwh * price_eur, 2)

    def budget_alert(self, monthly_consumption_mwh, budget_eur):
        """Check if current prices exceed budget."""
        current = self.get_current_price()
        projected_cost = monthly_consumption_mwh * current

        return {
            "current_ttf_price": current,
            "monthly_consumption_mwh": monthly_consumption_mwh,
            "projected_monthly_cost": round(projected_cost, 2),
            "budget": budget_eur,
            "variance": round(projected_cost - budget_eur, 2),
            "over_budget": projected_cost > budget_eur
        }

# Usage for industrial facility
monitor = TTFMonitor("YOUR_API_KEY")

# Check current market conditions
print(f"Current TTF: €{monitor.get_current_price()}/MWh")
print(f"30-day Average: €{monitor.get_monthly_average()}/MWh")

# Budget alert for facility consuming 5,000 MWh/month
alert = monitor.budget_alert(
    monthly_consumption_mwh=5000,
    budget_eur=175000
)
print(f"Projected Cost: €{alert['projected_monthly_cost']:,.0f}")
print(f"Budget Variance: €{alert['variance']:+,.0f}")

JavaScript: Energy Dashboard Widget

class TTFWidget {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = "https://api.oilpriceapi.com/v1";
  }

  async getCurrentPrice() {
    const response = await fetch(
      `${this.baseUrl}/prices/latest?by_code=DUTCH_TTF_EUR`,
      { headers: { Authorization: `Token ${this.apiKey}` } },
    );
    const data = await response.json();
    return data.data;
  }

  async getPriceHistory(days = 30) {
    const endpoint = days <= 7 ? "past_week" : "past_month";
    const response = await fetch(
      `${this.baseUrl}/prices/${endpoint}?by_code=DUTCH_TTF_EUR&interval=1d`,
      { headers: { Authorization: `Token ${this.apiKey}` } },
    );
    const data = await response.json();
    return data.data.prices;
  }

  async getSparklineData() {
    const prices = await this.getPriceHistory(7);
    return prices.map((p) => p.price);
  }

  formatPrice(price) {
    return new Intl.NumberFormat("de-DE", {
      style: "currency",
      currency: "EUR",
    }).format(price);
  }

  formatChange(change, changePercent) {
    const sign = change >= 0 ? "+" : "";
    return `${sign}€${change.toFixed(2)} (${sign}${changePercent.toFixed(2)}%)`;
  }
}

// Render dashboard widget
const widget = new TTFWidget(process.env.OILPRICE_API_KEY);
const current = await widget.getCurrentPrice();

console.log(`TTF Natural Gas: ${widget.formatPrice(current.price)}`);
console.log(
  `Change: ${widget.formatChange(current.change, current.change_percent)}`,
);

Use Cases

1. Industrial Budget Forecasting

Large energy consumers track TTF to forecast costs:

  • Set procurement budgets based on forward curves
  • Trigger hedging decisions when prices cross thresholds
  • Report energy cost exposure to management

2. Energy Procurement Automation

Automated systems that buy gas at optimal times:

  • Monitor TTF in real-time for procurement windows
  • Execute purchases when prices dip below targets
  • Alert procurement teams to unusual market conditions

3. Trading Spread Analysis

Traders monitor TTF spreads against other benchmarks:

  • TTF vs NBP: Europe regional spread
  • TTF vs JKM: Europe-Asia LNG arbitrage
  • TTF vs Henry Hub: Atlantic Basin spread

4. Energy Management Software

Software vendors embedding TTF data in products:

  • Display current prices in dashboards
  • Calculate costs for customer facilities
  • Provide market context alongside operational data

5. LNG Contract Pricing

LNG sellers and buyers reference TTF for contract terms:

  • Index long-term contracts to TTF
  • Calculate netback values for export decisions
  • Benchmark spot cargo pricing

TTF vs Other Gas Benchmarks

BenchmarkRegionCurrencyLiquidity
Dutch TTFEuropeEUR/MWhHighest in Europe
NBPUKGBP/thermDeclining post-Brexit
Henry HubUSUSD/MMBtuHighest globally
JKMAsiaUSD/MMBtuGrowing LNG benchmark

Conversion Reference

FromToApproximate Factor
€/MWh$/MMBtu÷ 3.41 × EUR/USD rate
GBP/thermEUR/MWh× 34.12 × GBP/EUR rate

Market Hours and Data Freshness

AttributeDetails
Trading HoursICE Endex: 00:00-22:00 CET (continuous)
SettlementDaily settlement at market close
API Update FrequencySub-minute during trading hours
WeekendFriday close available, market closed

Getting Started

  1. Sign up at oilpriceapi.com/signup - free tier available
  2. Get your API key from the dashboard
  3. Test the TTF endpoint with the examples above
  4. Build your integration using our code samples

The free tier includes 1,000 API requests monthly—enough to build and test your TTF price integration before committing to a paid plan.

Frequently Asked Questions

What is TTF price quoted in?

Dutch TTF natural gas is quoted in Euros per megawatt hour (€/MWh). This is the standard convention for European gas trading. To convert to USD/MMBtu (US convention), divide by approximately 3.41 and multiply by the current EUR/USD exchange rate.

How often is TTF price data updated?

OilPriceAPI updates TTF prices throughout trading hours with sub-minute latency. ICE Endex trades nearly 24 hours (00:00-22:00 CET), and our data reflects the current market price during active trading.

Can I get historical TTF data for analysis?

Yes, historical TTF data is available through the /past_week and /past_month endpoints. Premium tiers include access to deeper historical data going back multiple years for backtesting and trend analysis.

How does TTF relate to my gas bill?

Industrial gas contracts in Europe are often indexed to TTF. Your actual price may include delivery charges, taxes, and margin. TTF gives you the wholesale benchmark that drives the variable component of your costs.

What causes TTF price volatility?

Key drivers include: storage levels, LNG cargo flows, pipeline supply (Russia, Norway), weather demand, and renewable generation. The 2022 crisis was primarily driven by reduced Russian pipeline flows and competition for LNG cargoes.

Related Resources

  • Natural Gas Price Forecast - Forward-looking analysis
  • Energy Intelligence Endpoints - Additional energy data
  • Industrial Energy Solutions - Trading desk integration
  • Webhook Configuration - Real-time price alerts
  • UK Natural Gas API - NBP pricing data
Last Updated: 2/3/26, 1:30 AM
Prev
Natural Gas Price Forecast 2026 - Seasonal Patterns & Data-Driven Analysis