ClimateGuard Golf API

Playing conditions for 65 golf courses across Luzon. Read-only, no key required.

Same scoring as golf.climate-guard.io — literally the same code, checked at build time — so the API and the site never disagree about the same round.

Endpoints

GET /v1/courses Every course: slug, name, province, coordinates. Optional ?province=Rizal.
GET /v1/courses/{slug} Conditions per day, for every tee time. Optional ?days=1..7 (default 7).

Example

curl https://api.golf.climate-guard.io/v1/courses/villamor-air-base-golf-course?days=1
{
  "course": { "slug": "villamor-air-base-golf-course",
              "name": "Villamor Air Base Golf Course",
              "province": "Metro Manila", "lat": 14.52493, "lon": 121.02088 },
  "round_length_hours": 4.5,
  "days": [{
    "date": "2026-09-28",
    "tees": {
      "07:00": { "verdict": "Playable", "score": 31,
                 "meaning": "Play, but take a brolly and expect a wet grip.",
                 "thunder": true, "rain_mm": 0.6, "rain_band": "Drizzle",
                 "chance_of_rain_pct": 58, "feels_c": 34, "gust_kph": 28,
                 "toughest_hole": "12th",
                 "why": "Toughest around the 12th — Drizzle · 0.6 mm, 58% chance of rain." }
    }
  }],
  "source": "UKMO via Open-Meteo"
}

Ratings

Perfect · Good · Playable · Tough · Wash-out, driven by rain first, then heat, with wind as a nuisance only. Every rating ships with a meaning string so you never have to hard-code the ladder.

thunder is a separate flag, not a rating. A forecast storm is a chance, not a certainty, and golfers play through the chance — show it as an icon, not a red light.

Tee times

Every whole hour from 05:00 to 15:00 comes back in one response. There is deliberately no tee parameter: one response per course is far kinder to the upstream forecast quota than twenty near-identical ones.

Caching

Conditions are cached 30 minutes at the edge, the catalogue for a day. Forecasts do not move faster than that, so please don't bypass it.

Non-commercial use only. The underlying forecast comes from Open-Meteo's free tier, which does not permit commercial use. Talk to us first if money is involved.