UTC --:--:--
Docs·API reference·GET /v1/public/sustainability-index

The Sustainability Index, as JSON

Public sibling of the platform-admin sustainability-index endpoint — no auth, CC BY 4.0, edge-cached. The same document our own landing page consumes; the same document any researcher or regulator can wget, cite, or embed.

GEThttps://api.goable.io/v1/public/sustainability-index

When to use

The Goable Sustainability Index is a session-weighted, per-zone measure of how much reported activity is carbon-neutral (wind / wave / gravity / ski-touring / paragliding) versus carbon-positive (motorised access, lift-served snow, boat excursions). Every zone that clears the k-anonymity floor is released with its neutral share, its electrification signal (when equipment data is present), and a folded 0–100 index.

Reach for this endpoint when you need the machine-readable artefact — annual regulatory filings, academic citation, dashboard embeds, or an ESG data-sourcing pipeline. The JSON is JSON-LD (Schema.org-typed), so it drops straight into a graph store or a knowledge-base ingestion loop.

Request

Query params (all times ISO 8601 UTC):

from
required
Start of the window. Anything before this instant is excluded.
to
required
End of the window. Clamped down to now − 90 days before aggregation — the publication lag is enforced server-side, so you can safely pass 'now' and let the server floor it.
zoneKm
optional (default 25)
Zone grid size in km. Larger cells release more zones (more contributors per cell); smaller cells give finer geographic resolution but suppress more.
k
optional (default 10)
k-anonymity threshold. Zones with fewer than k distinct sessions are suppressed. Do not lower without a governance justification.

Example request:

curl "https://api.goable.io/v1/public/sustainability-index?from=2025-07-01T00:00:00Z&to=2026-04-05T00:00:00Z"

No Authorization header, no X-Goable-Key — the sustainability index is deliberately open. The endpoint is edge-cached (cache-control: public, max-age=300) so heavy embedders do not amplify upstream compute.

Response

Content-Type: application/ld+json. Shape:

{
 "@context": "https://schema.org",
 "@type": "GoableSustainabilityIndex",
 "generatedAt": "2026-07-04T09:12:04.812Z",
 "period": {
 "from": "2025-07-01T00:00:00Z",
 "to": "2026-04-05T00:00:00Z"
 },
 "methodology": {
 "indexFormula": "zoneIndex = 100 × (0.7 × carbonNeutralShare + …)",
 "weights": {
    "carbonNeutralShare": 0.7,
    "electrificationShare": 0.3
 },
 "suppression": "Zones with < 10 sessions are suppressed …",
 "notes": "Carbon-neutral = wind/wave/gravity …"
 },
 "overall": {
 "index": 72.4,
 "totalSessions": 14210,
 "carbonNeutralSessions": 10864,
 "carbonPositiveSessions": 3346,
 "carbonNeutralShare": 0.764,
 "zonesReleased": 18,
 "zonesSuppressed": 7
 },
 "zones": [
 {
 "zoneKey": "36.00,-5.50",
 "label": null,
 "centroid": { "lat": 36.005, "lng": -5.505 },
 "totalSessions": 1240,
 "carbonNeutralShare": 0.921,
 "electrificationShare": 0.14,
 "seasonalConcentration": null,
 "zoneIndex": 68.7
 }
 ],
 "license": "CC BY 4.0",
 "attribution": "Goable Sustainability Index (goable.io/research)"
}

Anonymisation

Three privacy safeguards are enforced inside the use case — you cannot bypass them by tuning the query:

  • k-anonymity floor ≥ 10 sessions per zone. Zones below the threshold are suppressed and counted in overall.zonesSuppressed.
  • Spatial truncation. Sessions are snapped to a zoneKm-sided grid before any aggregation — exact coordinates never leave the server.
  • Publication lag of 90 days. The upper bound to is clamped server-side to no closer than 90 days ago, so no single recent session can be timestamp-reconstructed.

License + citation

Published under Creative Commons Attribution 4.0 International (CC BY 4.0). Free to cite, embed, remix — the only ask is the attribution string carried on the document itself (attribution field). Recommended citation:

Goable Sustainability Index. Published {generatedAt}.
CC BY 4.0. https://goable.io/sustainability-index

Errors

422 VALIDATION_ERROR — malformed query (missing from / to, non-ISO datetime, zoneKm or k outside allowed range). 503 SERVICE_UNAVAILABLE — the research reader is not wired on this deployment (transient — the endpoint returns automatically once the reader is available).