Use cases by activity
One model, many questions. This page says, activity by activity, what KaiCast answers and how directly it is modeled — so an agent never presents a proxy as a purpose-built forecast. The same levels are machine-readable in every decision response (activity.model) and in GET /api/v1/coverage.
| Activity | activity id | Decisions | Model | Useful facts |
|---|---|---|---|---|
| Snorkeling | snorkel | Ranked spots, best day | Native | visibility, swell, wind, tide |
| Scuba diving | dive | Ranked spots, best day | Proxy | visibility, swell, tide, water temp |
| Freediving | freedive | Ranked spots, best day | Proxy | visibility, wind, swell |
| Spearfishing | spearfish | Ranked spots, best day | Proxy | visibility, swell, tide |
| Surfing | surf | Declined (activity_not_modeled) | Not modeled | swell height/period/direction, wind |
| Kiteboarding, windsurfing, wing | — | Not offered | Not modeled | wind speed and direction, swell |
Native means the condition score was built and calibrated for that activity. Proxy means the shared, snorkel-calibrated score is a reasonable stand-in: picks carry a caveat and a confidence haircut. Not modeled means the decision tools decline and point you at the facts.
Dive visibility API #
The headline number is underwater visibility in feet per 3-hour period, up to 7 days ahead, with visibility_source telling you whether it came from satellite ocean color or a calibrated estimate. Visibility is also a hard ceiling on the condition rating, so a murky day can't be rated "great" because the wind is light.
curl "https://kaicast.com/api/v1/conditions?spot=electric-beach&from=2026-10-06&to=2026-10-07"Snorkel forecast API #
Snorkeling is KaiCast's native model. Ask for the best spots in a region on a day, or the best day at a spot:
curl "https://kaicast.com/api/v1/recommendations?region=us-hi-maui&activity=snorkel&date=2026-10-06"Scuba diving conditions #
activity=dive ranks with the shared condition score and breaks ties on visibility. Every pick carries a proxy_activity_model caveat; relay it. Conditions at depth (current, thermocline) are not scored.
Freediving conditions #
activity=freedive favors visibility, then calm wind. Depth, current and thermocline are not scored, and every pick says so. Never dive alone.
Spearfishing conditions #
activity=spearfish ranks on the shared score and visibility, and excludes spots inside Hawaiʻi DAR marine managed areas closed to spearfishing (Marine Life Conservation Districts such as Hanauma Bay, Molokini and Pūpūkea, Natural Area Reserves, and similar). Excluded spots are listed in considered.excluded with reason: closed_to_spearfishing and the closing areas named. Spots inside rules-only areas carry a regulated_area caveat. Closed seasons and bag limits are not modeled — every pick carries verify_fishing_rules. If the closure data can't be read, nothing is excluded and picks say regulations_not_checked instead.
Surf forecast data #
KaiCast does not model surf breaks, so recommend_spot and best_day return activity_not_modeled for surf rather than inventing a ranking. The facts are still there: swell height, period and direction, and wind speed and direction, per spot and period, from get_conditions.
Kiteboarding and wind sports #
There is no kite or windsurf decision model. Wind speed (knots) and direction (degrees, where it blows from) are published for every covered spot every 3 hours — enough for an agent to reason about a session, with the usual caveat that spot-level wind is a forecast, not a station reading.
Trip planners, travel and concierge agents #
Give the agent the destination and the dates; let it call best_day and recommend_spot. Answers come with confidence, caveats and a spot card to render in chat, and with an honest not_covered when the destination is outside coverage — so the agent can say so instead of hallucinating a forecast.
Marine conditions MCP server for AI assistants #
Connect https://kaicast.com/mcp to Claude, ChatGPT, Cursor, VS Code or your own agent — see MCP server. Tools mirror the REST endpoints exactly.
Anywhere in the world #
Every tool takes a latitude/longitude. KaiCast answers with numbers where it has calibrated coverage and says not_covered (with the nearest covered spot) everywhere else. Need a region? Email dawson@kaicast.com — requests shape the expansion order.