All guides

How to read the PPAC metro petrol and diesel price series

Data · 5 min read · Published 2026-10-24

What a row in the PPAC metro fuel price table means, how the API stores it, and how to average a year of Delhi petrol prices with one request.

What PPAC publishes

PPAC, the Petroleum Planning & Analysis Cell of the Ministry of Petroleum and Natural Gas, posts one table of retail selling prices for petrol and diesel in Delhi, Mumbai, Chennai and Kolkata. Each row has a date, headed Date of Revision, and eight figures in rupees per litre: four cities for petrol and four for diesel. A footnote reads "RSP of Petrol/Diesel is for IOC", so the figures are Indian Oil Corporation's retail selling prices. The table starts on 16 June 2017, the first day of daily price revisions in India.

The API stores that table as published. In the table posted on 23 October 2026 the series ran from 16 June 2017 to 23 October 2026 with a row for each of its 3,417 days. No date is missing and none is repeated.

What the date means

date is PPAC's Date of Revision, copied as printed. A note under the table says a daily price change applies from 6:00 AM. The API does not turn that into a claim about what a pump charged at a given hour, and an app that shows these figures should not either. Present them as the published price for that date.

One request for a year

curl
curl "https://india-petroleum-api.vercel.app/v1/prices?city=delhi&fuel=petrol&from=2021-01-01&to=2021-12-31"

This returns 365 rows, one per day. Because you asked for one city and one fuel, each row is { date, petrol: { delhi } }. Leave out city to get all four cities and leave out fuel to get both fuels. A request may span at most 3,660 days; ask for longer histories in ranges.

JavaScript
const url = 'https://india-petroleum-api.vercel.app/v1/prices?city=delhi&fuel=petrol&from=2021-01-01&to=2021-12-31';
const { data } = await (await fetch(url)).json();
const average = data.reduce((sum, row) => sum + row.petrol.delhi, 0) / data.length;
console.log(data.length, average.toFixed(2)); // 365 96.19

Delhi petrol averaged 96.19 rupees per litre in 2021. It started that year at 83.71 and ended at 95.41, with a peak of 110.04 on 2 November, so the average describes no single day well. Pick the statistic that fits your question.

Reading the answer

Every successful response carries meta.attribution, meta.source_posted_date (the date printed on PPAC's table) and meta.latest_fetched_at (when this service last downloaded it). Show the attribution wherever you show the figures: PPAC's terms allow reuse free of charge if the material is reproduced accurately and the source is prominently acknowledged.

Why a row can look unchanged

A price holds until the next revision, so most consecutive rows are identical. The table has a row for every day whether or not a price moved. To list only the days that moved, use /v1/prices/changes, covered in Petrol and diesel price revisions since 2017.