Pull the same report the site shows, as JSON, or connect it to your own agent over MCP. The
report generation pipeline, the MCP server and the account API are live in this
build. The account, key and usage endpoints under /v1/* are deployed and enforcing
auth; the wider endpoint catalogue below is still a shape.
api.fishingreportagent.com — the account, key and usage endpoints under
/v1/* are live and enforcing auth (an unauthenticated call returns 401). The wider
endpoint catalogue below still describes intended behavior and may change. Report generation, the
artifact store, the MCP server and the account surface are built and working; see
AI & MCP for the live surface. Nothing below is a commitment to a schema.
Free tier, 10 report calls a day per account. Email verification would be required before the first call.
One key per tool you connect. Keys are per account, but the daily allowance is shared across them.
Send a launch point and a destination (or a single spot) and get back a structured report.
Requests carry an API key in the Authorization header. No key exists in this build,
and no key belongs in client-side code — the example below is a placeholder shape only.
The full fishing report: verdict, wave ladder, tides, solunar, water temp.
2026-09-12T05:30/2026-09-12T15:00.imperial (default) or metric.json (default) or text for a readable report.One point, one time: wind, seas, swell, air and water temperature. The building block behind the ladder.
Highs and lows for a station near a point, with the current stage between them.
Sunrise, sunset, moon phase and the major/minor feeding windows. Computed, not forecast.
Current allowance and consumption. This is what draws the usage meter in the app.
One component, used on the dashboard and the pricing page. It reads the shape above and shows used / limit / reset. Interactive here so you can see both states.
The MCP server ships in this repository and runs over stdio today. It reads stored report artifacts — it never regenerates and never calls upstream. Full detail, including auth, quota and the disclosure rules, is on AI & MCP. Tools as built:
Every result — success, refusal or error — carries the attribution and the safety disclaimer, so an agent cannot quietly present these numbers as a clearance to go.
| Status | Code | Meaning |
|---|---|---|
| 401 | missing_key | No bearer key on the request. |
| 403 | key_revoked | Key no longer valid. |
| 422 | bad_coordinates | Point is not in a supported marine area. |
| 429 | quota_exceeded | Daily allowance used up. |
| 503 | upstream_unavailable | A required forecast source is down; the report is refused rather than served with holes. |
Only sources that actually exist are named. Multiple sources are shown per value so you can see where they agree and where they don't, rather than hiding the spread behind one number.
| Piece | State | Notes |
|---|---|---|
| This website | Built | One token layer, zero inline styles. Marketing panels still show labelled sample content. |
| Report generation | Working | Real reports from live upstreams, published to /report.html and /reports/<slug>.html. |
| Verdict engine | Working | Fixed vocabulary: go / go small / go inside / stay home. |
| Render-once artifact store | Working | Standalone HTML + JSON. Re-views cost zero API calls and zero tokens. |
| MCP server | Live over stdio | Reads the artifact store. Hosted HTTP/SSE not built. |
| Tides & astro | Working | NOAA CO-OPS and USNO, both public domain. Solunar computed locally. |
| Wave ladder | Partial | Works where a wave-capable buoy is in range; Gulf routes often have none, and the gap is reported rather than filled. |
| Hosted REST API | Not deployed | Shapes documented above. |
| Accounts, verification, hosted quota | Not built | Next up. Auth and quota hooks already exist in the MCP layer. |
| Inland mode, reefs/ramps/MPAs, red tide, regulatory | Not started | Designed, not built. |
Marine forecasts are uncertain, and the sea is indifferent to your plans. This product is informational only. It is not a marine forecast service, it is not a clearance to depart, and it is not a substitute for official marine warnings or your own judgment. Responsibility for deciding whether to leave the dock always rests with the skipper. The generated report carries this notice itself, so it travels with the report.