REST API · JSON · ZAR

South Africa's official fuel prices, one API call away.

Every grade, every pricing zone, sourced directly from DMPR's monthly regulated circular — no scraping your own, no manual PDF lookups, and every response tagged with the exact effective date it came from.

Keys are emailed within seconds of checkout — no waitlist.

GET /v1/prices/current 200 OK
$ curl "https://fuel.buildyard.co.za/v1/prices/current" \ -H "X-Api-Key: sfp_live_••••••••••••••••••••••••"
{
  "effective_date": "2026-08-05",
  "currency": "ZAR",
  "unit": "per_litre",
  "count": 4,
  "data": [
    { "grade": "93 ULP", "region": "Coastal",
      "price_rands": 24.55 },
    { "grade": "93 ULP", "region": "Gauteng",
      "price_rands": 25.42 },
    { "grade": "95 ULP", "region": "Coastal",
      "price_rands": 24.71 },
    { "grade": "95 ULP", "region": "Gauteng",
      "price_rands": 25.58 }
  ]
}
Live production data
See it in action

A real call, not a mockup

The example above isn't illustrative — this is the same GET /v1/prices/current call, captured live against the production API through its interactive docs.

Screen recording of a GET /v1/prices/current request executed against the live production API via its interactive Swagger docs, returning a 200 response with current 93 ULP and 95 ULP prices for the Coastal and Gauteng zones.

Coastal & Gauteng · 93 ULP & 95 ULP · effective 2026-08-05 200 OK — 4 live prices returned

How a price gets here

From government circular to API response

Every price traces back to the same four-step pipeline, re-run every month — deterministic, not estimated.

01

Fetch the right document

DMPR publishes two similarly-named monthly PDFs each month; the scraper specifically targets the official "Breakdown of Prices" table, not the prose "Media Statement" press release, and finds it the day it's published.

02

Extract the table structurally

Structural grid extraction reads the actual table the PDF renders, not scrambled plain text — so a column order that shifts month to month doesn't break parsing.

03

Classify by content

Each cell is identified as a date, a cents-per-litre figure, or a region label by what it contains, not where it sits — DMPR's own layout isn't consistent month to month.

04

Publish instantly

Parsed prices land in the database the same run and are live over the API within minutes — current price, month-on-month change, and full history, all from the one pipeline.

Five endpoints

Current prices, history, and the change between them

GET/v1/prices/current

Latest DMPR-effective price for every grade and pricing zone, filterable by region and/or grade.

GET/v1/prices/change

Cents-per-litre change between the two most recent effective dates, per grade and region — built for price-change alerts.

GET/v1/history/prices

Full historical time series for any grade/region combination.

GET/v1/history/dates

Every effective date the API has data for.

GET/v1/history/compare

Compare prices between any two specific effective dates you choose.

Where the numbers come from

Government-regulated, not modeled

South Africa's fuel prices aren't market-set — the Department of Mineral & Petroleum Resources (DMPR) publishes a regulated price for every fuel grade and pricing zone once a month, effective from a fixed date. There's no estimation step: the API returns exactly what DMPR published, tagged with the effective_date it came from.

Numbers are extracted directly from DMPR's own official "Breakdown of Prices" circular using structural table parsing, not OCR guesswork or manual entry — every figure traces back to a real government PDF, not a third party's summary of one.

93 ULPCoastal · Gauteng
95 ULPCoastal · Gauteng
Diesel 0.05%Coastal · Gauteng
Diesel 0.005%Coastal · Gauteng
ParaffinCoastal · Gauteng
Plans

Priced by call volume

Every plan includes all five endpoints and full historical data. A new key is emailed within seconds of checkout.

Basic
R99/mo
1,000 calls / month
Subscribe
Pro
R299/mo
15,000 calls / month
Subscribe
Enterprise
R999/mo
150,000 calls / month
Subscribe

Billing via Lemon Squeezy. Prices in ZAR.