A complete history of changes to the ClauseHub APIs. We follow semantic versioning.
POST /auth/login endpoint — clients authenticate with email and password through the API, no Supabase credentials neededenergy-api-scraper repo — fetches real TIL data from Octopus, EDF, and E.ON Next via their Kraken APIs (1,054 tariffs)/auth/login and submits tariffs through the standard API using the Python client libraryGET /tariffs/changes?since=) — returns created, updated, and archived tariffs since a given timestampscripts/ingest_tariffs.py) with daily scheduled GitHub Actions workflowPATCH /admin/users/{id}/role) — assign consumer, supplier, or admin roles via Supabase app_metadatarole and supplier_id from Supabase app_metadata JWT claimsvalue, standingChargeValue, exitFees, and discounts return null. Full pricing requires authentication on a paid plan.python-jose with PyJWT to resolve high-severity ecdsa dependency vulnerabilityGET /tariffs/search/public) — no authentication requiredPOST /suppliers/{id}/tariffs/bulk) — up to 100 items per requestconsumableRange filter to search endpointsGET /{resource}/{id}/versions)updatedSince query parameter for filtering recently changed tariffsGET /tariffs/recent endpointlinks objectX-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)GET /schemaGET /health