API
Free, read-only JSON. No key, no sign-in. Plans, places on the water and public time trials.
The basics
- Every endpoint is a plain
GETthat answers JSON, with CORS open to any site. - Units are in the field names (
distance_km,duration_s). Times are ISO 8601 with an offset. Route lines are GeoJSON ([lng, lat]); everything else is{lat, lng}. - Every response lists its sources in
attribution. Show those credits wherever you show the data: OpenStreetMap is ODbL, the navigation authorities' data has its own licences. - Errors look like
{"error": {"code": "not_connected", "message": "…"}}. - The full description, for tools: /api/v1/openapi.json (OpenAPI 3.1).
- For planning only. paddlesnitch is not a navigation authority: check closures, river levels and the tide.
For AI assistants: MCP
The same data as a read-only MCP (Model Context Protocol) server, no sign-in: https://paddlesnitch.com/mcp (Streamable HTTP). Tools: search_places, plan_route, list_trials, get_trial, get_leaderboard. Each returns what the matching endpoint below returns.
Plan a paddle
GET /api/v1/plan
A route between two points on the water, with every lock, weir, portage, access point and facility along it, timed at your pace. The same parameters as a /plan link.
- from *
- "lat,lng", or a place name such as "Cropredy Lock".
- to *
- "lat,lng", or a place name.
- waterway
- Keep named ends to this waterway, e.g. "oxford-canal".
- shape
- return: out to `to` and back to `from`. One of one_way, return. Default one_way.
- pace
- Moving pace, km/h. Default 8.
- portage
- Minutes added at each portage. Default 3.
- at
- Start time; with it every stop gets an `eta`.
Try: /api/v1/plan?from=cropredy-lock&to=banbury&shape=return&pace=7
Find places on the water
GET /api/v1/places
Locks, wharves, slipways, portages and towns by name, each with its waterway: for choosing a plan's ends.
- q *
- near
- "lat,lng": nearer matches first among equals.
- waterway
- Only places on this waterway.
Public time trials
One public time trial
GET /api/v1/trials/{trialId}
- trialId *
- In the path.
A public trial's results
GET /api/v1/trials/{trialId}/leaderboard
- trialId *
- In the path.
- boat_class
- e.g. K1, 1X, 8+