DEMO BUILD — the API is not deployed. Every request and response below is a shape, not a live call, and all example payloads are sample data.
Developers

API & docs

Pull the same report the site shows, as JSON, or connect it to your own agent over MCP. These are the endpoint shapes we intend to ship — nothing here is live yet.

Not live. There is no deployed API behind api.fishingreportagent.com in this build. The endpoints, parameter names and payloads below describe intended behavior and may change before launch. Nothing here is a commitment to a schema.

Quickstart (intended)

Create an account

Free tier, 10 report calls a day per account. Email verification would be required before the first call.

Make a key

One key per tool you connect. Keys are per account, but the daily allowance is shared across them.

Call the report endpoint

Send a launch point and a destination (or a single spot) and get back a structured report.

Authentication

Bearer key

Not live

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.

// shape only — no such key exists Authorization: Bearer fra_live_<your-key>

Endpoints

GET /v1/report key required

The full fishing report: verdict, wave ladder, tides, solunar, water temp.

lat, lon
Destination or spot coordinates.
launch_lat, launch_lon
Optional. If given, the wave ladder is computed along the route.
legs
Number of legs to sample between launch and destination (default 4).
window
ISO 8601 trip window, e.g. 2026-09-12T05:30/2026-09-12T15:00.
units
imperial (default) or metric.
format
json (default) or text for a readable report.
GET /v1/report?launch_lat=30.14&launch_lon=-85.70&lat=29.71&lon=-85.86&legs=4&units=imperial // 200 OK — sample payload, not a real forecast { "verdict": { "call": "marginal", "score": 5.4, "headline": "Marginal — go small, or fish inside 20 nm", "drivers": ["short_period_sea", "sea_state_builds_offshore"] }, "wave_ladder": [ { "leg": "launch", "nm": 0, "height_ft": 1.2, "period_s": 4, "direction_deg": 158 }, { "leg": "10nm", "nm": 10, "height_ft": 2.1, "period_s": 5, "direction_deg": 160 }, { "leg": "20nm", "nm": 20, "height_ft": 2.9, "period_s": 6, "direction_deg": 172 }, { "leg": "30nm", "nm": 30, "height_ft": 3.4, "period_s": 7, "direction_deg": 178 }, { "leg": "destination", "nm": 38, "height_ft": 3.8, "period_s": 7, "direction_deg": 184 } ], "water_temp_f": 78.4, "sources": ["wave_model_a", "point_forecast_b"], "sample": true }
GET /v1/marine/point key required

One point, one time: wind, seas, swell, air and water temperature. The building block behind the ladder.

lat, lon
Point to sample.
at
ISO 8601 timestamp. Defaults to now.
// 200 OK — sample payload { "at": "2026-09-12T10:00:00-05:00", "wind": { "speed_kt": 12, "gust_kt": 17, "direction_deg": 158 }, "seas": { "height_ft": 3.8, "period_s": 7, "direction_deg": 184 }, "swell": { "height_ft": 1.1, "period_s": 11, "direction_deg": 138 }, "air_temp_f": 76, "water_temp_f": 78.4 }
GET /v1/tides key required

Highs and lows for a station near a point, with the current stage between them.

// 200 OK — sample payload { "station": "St. Andrew Bay entrance", "datum": "MLLW", "events": [ { "time": "2026-09-12T06:12-05:00", "type": "low", "height_ft": 0.4 }, { "time": "2026-09-12T13:47-05:00", "type": "high", "height_ft": 1.6 }, { "time": "2026-09-12T20:05-05:00", "type": "low", "height_ft": 0.9 } ], "stage": "rising" }
GET /v1/solunar key required

Sunrise, sunset, moon phase and the major/minor feeding windows. Computed, not forecast.

// 200 OK — sample payload { "sun": { "rise": "07:12", "set": "19:24", "legal_light": "06:44" }, "moon": { "phase": "waxing_gibbous", "illumination": 0.78 }, "windows": [ { "start": "05:40", "end": "07:40", "type": "major" } ] }
GET /v1/usage key required

Current allowance and consumption. This is what draws the usage meter in the app.

// 200 OK — sample payload { "period": "day", "used": 3, "limit": 10, "resets_at": "2026-09-13T00:00:00-05:00", "scope": "account" }

Usage meter component

How it renders

Sample data

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.

3 of 10 calls today resets 00:00 CT
Within free tier scope: account

MCP endpoint

For your own agent

Not live

The same data is intended to be exposed over MCP so an assistant can answer fishing questions without you writing an integration. Intended tools:

get_report
Full report for a run or spot.
get_marine_point
Wind, seas, swell and temperatures at one point and time.
get_tides
Tide events and current stage near a point.
get_solunar
Light and feeding windows for a date and place.
get_usage
Remaining allowance for the account.

Every MCP response would carry the safety disclaimer, so an agent can't quietly present these numbers as a clearance to go.

Errors (intended)

Shape

{ "error": { "code": "quota_exceeded", "message": "Daily free-tier allowance reached (10/day per account).", "resets_at": "2026-09-13T00:00:00-05:00" } }
StatusCodeMeaning
401missing_keyNo bearer key on the request.
403key_revokedKey no longer valid.
422bad_coordinatesPoint is not in a supported marine area.
429quota_exceededDaily allowance used up.
503upstream_unavailableA required forecast source is down; the report is refused rather than served with holes.

Data sources

What feeds the report

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.

Build status

Honest state of things

Demo build
PieceStateNotes
This websiteBuiltUI only. Sample data throughout.
APINot deployedShapes documented above.
Accounts, verification, quotaNot builtNext up.
Point forecast data sliceVerified against live feedsNot wired to this UI.
Wave-model ingestNot startedNeeded for the wave ladder.
TidesNot started
Report generationNot startedSample wording on the report page.

Safety disclaimer

Read this

Marine forecasts are uncertain, and the sea is indifferent to your plans. This product is informational only. It is not a forecast in this build, 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.

Get a key (not live yet) → See the report structure