A free, public API for fuel prices in Pakistan, aggregated from PSO, Shell, and PakWheels. There's no official government API for this — so we built one.
| Source▾ | Product▾ | City▾ | Price▾ | Scraped at▾ |
|---|
Base URL: https://fuel.trackmate.page/api. Public, no API key needed. Rate limited to keep it fair for everyone — see below. Paste "Copy docs for AI" into an LLM/agent to give it full context on this API.
/api/pricesLatest known price for every source/product/city combination.
curl https://fuel.trackmate.page/api/prices
{
"count": 2,
"prices": [
{ "source": "pso", "product": "petrol", "price_pkr": 299.5, "unit": "litre", "city": null, "effective_date": null, "scraped_at": "2026-07-04T16:21:28.663Z" },
{ "source": "shell", "product": "hsd", "price_pkr": 309.5, "unit": "litre", "city": null, "effective_date": null, "scraped_at": "2026-07-04T16:21:28.663Z" }
]
}
/api/prices/:sourceLatest prices from one source only. :source is one of pso, shell, pakwheels.
curl https://fuel.trackmate.page/api/prices/pso
{
"count": 2,
"prices": [
{ "source": "pso", "product": "petrol", "price_pkr": 299.5, "unit": "litre", "city": null, "effective_date": null, "scraped_at": "2026-07-04T16:21:28.663Z" },
{ "source": "pso", "product": "octane_plus", "price_pkr": 340, "unit": "litre", "city": "Karachi", "effective_date": null, "scraped_at": "2026-07-04T16:21:28.663Z" }
]
}
/api/history?product=petrol&days=30Historical snapshots. product and source are optional filters; days defaults to 30, max 365.
curl "https://fuel.trackmate.page/api/history?product=hsd&days=90"
{
"count": 2,
"days": 1,
"prices": [
{ "source": "pso", "product": "petrol", "price_pkr": 299.5, "unit": "litre", "city": null, "effective_date": null, "scraped_at": "2026-07-04T16:18:48.887Z" },
{ "source": "pakwheels", "product": "petrol", "price_pkr": 297.53, "unit": "litre", "city": null, "effective_date": "04-July-2026", "scraped_at": "2026-07-04T16:18:49.736Z" }
]
}
/api/healthScraper status — when it last ran and which sources succeeded/failed.
curl https://fuel.trackmate.page/api/health
{
"status": "ok",
"last_scrape": {
"ran_at": "2026-07-04T16:21:37.862Z",
"ok_sources": ["shell", "pakwheels", "pso"],
"failed_sources": []
}
}
Rate limits: ~60 requests/minute per IP, with a small burst allowance. Exceeding it returns 429 with a Retry-After header. Please cache responses client-side — prices only change a few times a month.
Prices are scraped periodically from public pages on psopk.com, shell.com.pk, and pakwheels.com. This is an independent, unofficial aggregation — not affiliated with OGRA, PSO, Shell, or PakWheels. Always confirm at the pump for anything time-sensitive.
Source code: github.com/KashifKhn/fuel-api — issues and PRs welcome.