Put Cape Town's dam level on your website
A free widget for any website or blog. Pick what to show, copy one line of code, and it keeps itself up to date whenever the City publishes a new reading. Or take the data and build your own.
- 1Choose what to show and how it looks.
- 2Copy the line of code.
- 3Paste it into your page's HTML, where the widget should go.
Choose your widget
The headline and one line of detail.
The credit to the City of Cape Town always shows. This adds a link to the full dashboard.
Preview
This is the live widget, with today's figures.
Embed code
Paste this into your page's HTML where the widget should go. It fits the width you give it and sets its own height.
<script src="https://www.waterdashboard.co.za/widget.js" data-variant="level" async></script>Build your own
Want it to match your site, or to use the figures in a blog post, a newsletter or an app? The same data is free as JSON. No key and no sign-up, and any website can call it. Please credit the City of Cape Town.
- /api/v1/summary
Today's level, how it compares with last year and normal, the outlook, the City's restriction level and this week's tip.
- /api/v1/dams
Each of the six big dams: its latest level and the same date last year.
- /api/v1/history?from=2025-01-01
Combined storage by date, back to 2000. Use from and to as YYYY-MM-DD.
A minimal example
fetch("https://www.waterdashboard.co.za/api/v1/summary")
.then((r) => r.json())
.then((d) => {
document.querySelector("#dams").textContent =
`Cape Town's dams are ${Math.round(d.percent)}% full. Data: City of Cape Town.`
})Good to know
- Free for any website or blog. Please keep the credit to the City of Cape Town.
- The figures come from the City's published dam readings. We check for new ones twice a day.
- No cookies, no tracking scripts and no other code on your page: the widget is one small script and an iframe.