Score an activity at a place in a window
The core endpoint. One call returns a 0–100 score, a verdict, a per-dimension breakdown and the raw physical readings behind it.
The scoring engine is deterministic: given the same inputs and provider chain, the score is reproducible, and the audit log replays the call.
Overview
Send a location and an activity; an optional time window narrows the score to a specific range. Omit it and the engine scores the current forecast instant. Get back a single suitability score with its full breakdown. The verdict is one of excellent, favorable, fair, marginal, poor, not_feasible or unsafe. A universal hard gate (lightning ≥ 0.85 or hazardous AQI) forces unsafe regardless of the rest; a profile's own feasibility gate (e.g. no rideable wind) forces not_feasible instead — impossible, not dangerous.
Authentication
Include your API key in the X-Goable-Key header. See Authentication for key handling + rotation.
Request
[-90, +90], longitude [-180, +180]. Resolved against the bathymetry catalog for marine activities and the spot catalog for regional calibration.kitesurfing, surfing, windsurfing, sailing, scuba, ski-touring, freeride, paragliding, trail-running, climbing, …POST /v1/score/historical (climatology) or POST /v1/projections (climate).beginner, intermediate, expert. Requests skill-conditioned scoring against the difficulty atlas. Plan-gated to Pro and Scale.Response
verdict_buckets (every profile in the catalog uses this same set today): excellent 86–100 · favorable 71–85 · fair 51–70 · marginal 31–50 · poor 1–30 · not_feasible< 1 from a feasibility gate (impossible, e.g. no rideable wind — not dangerous) · unsafe< 1 from a safety gate (lightning, hazardous AQI, a profile's own safety threshold).Code samples
Same call, two ways. The TypeScript SDK (@goable-io/sdk) is the most ergonomic; cURL works anywhere.
Try it
Pick an activity, a spot and the option flags. Runs against the live engine (public demo tenant, 60 calls / hour / IP); falls back to a deterministic sample.
Display-only — the real /v1/score request has no option to omit fields; this just trims what's shown here.
Errors
issues field lists each failing path and reason.00:00 UTC.