temsor API
← Guides

Historical fuel prices in Türkiye: what diesel cost on any past date

Today’s pump price is on a public page; the archive is not. How to get the petrol or diesel price in force in any Turkish province on any date back to 2009.

Updated 2026-07-26

Fleet reconciliation, expense audits, freight surcharge clauses and cost forecasts all ask the same question: what did diesel cost in this province on this date? Distributors publish today's price on a web page and quietly overwrite it tomorrow. The number you need is the one nobody keeps.

Why "just scrape it daily" is harder than it looks

The price in force on a past date

curl "https://api.temsor.com/v1/tr/fuel/prices?province=Ankara&product=motorin&asOf=2018-03-12"
{
  "province": { "plate": 6, "name": "Ankara" },
  "asOf": "2018-03-12",
  "currency": "TRY",
  "prices": [{
    "product": "motorin",
    "label": "Diesel",
    "price": 5.17,
    "unit": "TRY/L",
    "effectiveFrom": "2018-02-24",
    "observedAt": "2018-03-09",
    "carriedForward": true,
    "source": {
      "url": "https://www.tppd.com.tr/gecmis-akaryakit-fiyatlari?id=6&county=...",
      "contentHash": "181cc956feadf0a897308331b08a86bb..."
    }
  }]
}

Three fields carry the honesty of the answer:

Changes in a window, with the percentage move

curl "https://api.temsor.com/v1/tr/fuel/prices?province=34&product=benzin&from=2026-01-01&to=2026-06-30"
{
  "changes": [
    { "product": "benzin", "at": "2026-05-11", "price": 65.60, "changePct": 0.12 },
    { "product": "benzin", "at": "2026-05-22", "price": 66.84, "changePct": 1.80 },
    { "product": "benzin", "at": "2026-06-02", "price": 64.71, "changePct": -3.19 }
  ]
}

Only actual changes are returned — days where the price stayed flat are omitted rather than repeated. That is what you want for a chart of moves, a surcharge trigger, or a "how many hikes this quarter" count.

Coverage

Fuel cost of a trip, at the time it happened

import Client from 'temsor-api';
const api = new Client();

async function tripCost({ province, litres, date }) {
  const r = await api.trFuelPrices({ province, product: 'motorin', asOf: date });
  const p = r.prices[0];
  if (!p?.price) throw new Error('no price on record for that date');
  return {
    cost: +(p.price * litres).toFixed(2),
    pricePerLitre: p.price,
    inForceSince: p.effectiveFrom,   // put this on the expense line
    evidence: p.source.url,          // and this in the audit trail
  };
}

Leave the province out to see what is stored

curl "https://api.temsor.com/v1/tr/fuel/prices"

Returns the coverage table: every province, how many products are tracked and the first and last date on record. Check it before assuming a date is available — an archive that starts after your date is a different answer from a price that did not change.

Frequently asked

How far back does the fuel price history go?

Price-change events go back to 2009, and a daily observation is recorded going forward. Ask with an empty province to see the exact first and last date on record for each province.

What happens if there was no price change on the date I ask for?

The last price in force is returned, flagged with carriedForward: true and an effectiveFrom date. No value is interpolated or invented.

Are these station prices or reference prices?

Reference prices published by the distributor per province (and per district where it differs). Individual stations may deviate slightly.

Can I use this for an audit?

Every stored point carries the source URL and a hash of the page content it was read from, so a figure can be traced back to what the source published on that date.

Endpoints used here

/v1/tr/fuel/prices

Open the reference, run it in the browser, no key required.

/v1/series/history

Open the reference, run it in the browser, no key required.