Documentation
Two ways in: a REST API at data.cleantechcontent.co.uk/v1 and an MCP server at mcp.cleantechcontent.co.uk/mcp. Both return the same data and the same provenance fields.
REST API
Endpoints, filters, the response envelope, keys and paying per call.
MCP server
Connect Claude, ChatGPT, Cursor and others; what each tool is for.
EV charging prices
Networks, power bands, pricing bases, session cost comparison.
Data and sources
Coverage, verification rules, regions, freshness and the changelog.
Response envelope
Every successful response looks like this. data is a row or a list of rows; meta.as_of is the newest verified_at among the rows returned.
{
"data": [ { "...": "...", "source_url": "https://...", "verified_at": "2026-09-06", "verified_by": "...", "confidence": "verified" } ],
"meta": { "as_of": "2026-09-06", "count": 12, "attribution": "Data compiled by Cleantech Content ...", "licence_url": "https://data.cleantechcontent.co.uk/licence/" }
}
Units and conventions
- Prices are pence per kWh and pence per day, including VAT where it applies, for GB domestic customers. Money in USD only appears in payment options.
- Regions are GSP group letters A to P (no I or O), plus
GBfor a national average. Region table. - Time windows are local time in
HH:MM, for example[["23:30","05:30"]]. - Errors are JSON:
{ "error": { "code": "...", "message": "..." } }with a matching HTTP status. A 402 also listspayment_options.
Free tier and keys
25 calls a day per address with no key. POST /v1/keys/free issues a key good for 100 calls a day. Send it as Authorization: Bearer <key>. Meta endpoints (/v1/meta/*) and the freshness tool never count.
Caching
Identical requests are served from a five-minute cache (X-Cache: HIT). Paid requests are always computed fresh.