ClauseHub provides three intermediary API products — Energy, Telecoms, and Banking — each standardising a different mandated disclosure format into a uniform, programmatic interface. Suppliers publish their data, consumers retrieve it. All data follows the JSON:API specification.
Each API targets a specific UK regulator's mandated disclosure document and transforms it into a queryable, versioned data layer.
Standardises Ofgem Tariff Information Labels (SLC 31). Unit rates, standing charges, exit fees, contract terms, payment methods, and PES region breakdowns.
Standardises Ofcom Contract Summaries (General Condition C1). SIM-only, broadband, mobile bundles, mid-contract price rises, early termination fees. National pricing — no regional variation.
Standardises FCA Summary Boxes (BCOBS 2 Annex 1R) and Fee Information Documents. Savings accounts, current accounts, cash ISAs, overdraft terms, and APR disclosures. Fills the gap Open Banking does not cover.
The Energy API data model. Every resource uses immutable versioning. Updates create new rows. Deletes create archived versions. No data is ever physically deleted.
The following features are demonstrated using the Energy API. The same patterns — JSON:API envelope, immutable versioning, role-based auth — will apply to the Telecoms and Banking APIs.
All requests and responses use application/vnd.api+json. Uniform envelope, predictable URL structure, consistent error format across all 47 endpoints.
links.next / links.prev
Updates insert new rows with an incremented version number. Deletes create a final row with status: archived. No data is ever physically deleted. Full audit trail via version endpoints.
GET /tariffs/recent?modifiedSince= for change feeds
The search endpoint filters tariffs by tariff type, fuel type, payment method, and region. The recent endpoint returns tariffs modified since a given timestamp — ideal for building change feeds and sync pipelines.
GET /tariffs/search?region=east_england&fuelType=dual
GET /tariffs/recent?modifiedSince=2026-03-01T00:00:00Z
GET /schema returns full OpenAPI spec for agent discovery
Three roles control who can read, write, and search. Suppliers can only modify their own data — the supplier_id is derived from the JWT, not user input.
All endpoints return application/vnd.api+json. Client libraries auto-generated for Python and TypeScript.
# Search tariffs by region and fuel type GET /v1/tariffs/search?region=east_england&fuelType=dual HTTP/1.1 Host: api.clausehub.co.uk Authorization: Bearer <supabase-jwt> Accept: application/vnd.api+json # 200 OK { "links": { "self": "/tariffs/search?region=east_england&fuelType=dual", "next": "/tariffs/search?...&page[after]=t_48f2a9b1" }, "data": [ { "type": "tariffs", "id": "t_48f2a9b1", "attributes": { "name": "Flexible Oct 2025", "consumableRange": "Dual", "version": 3, "status": "active", "createdAt": "2026-03-15T10:00:00Z" } } ] }
The Energy API is live now. Telecoms and Banking APIs are in development. Authenticate via Supabase JWT. Full OpenAPI spec at GET /schema.