{"openapi":"3.1.0","info":{"title":"ADMIRALTY Tidal (BYOK) API","version":"0.1.0","description":"ADMIRALTY Tidal (BYOK) lets an AI assistant read your own ADMIRALTY Tidal data through the ADMIRALTY Tidal API with a key you supply (ADMIRALTY API subscription key). Read-only: 10 tools (list_stations, get_station, get_tidal_events, list_stations_foundation, get_tidal_events_foundation, get_tidal_stream_events, get_tidal_events_for_date_range, get_tidal_height, get_tidal_heights,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-admiralty.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-admiralty/docs"},"termsOfService":"https://connectorbay.com/byok-admiralty/terms"},"servers":[{"url":"https://byok-admiralty.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-admiralty/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_stations":{"post":{"operationId":"list_stations","summary":"Discovery plan: list UK tidal stations (ports) as GeoJSON features with station number, name, country and whether contin","description":"Discovery plan: list UK tidal stations (ports) as GeoJSON features with station number, name, country and whether continuous heights are available; optionally filter by name. Use for \"Which UK tidal stations are named Dover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Optional part of the station name to filter by, for example 'Dover'.","title":"Name"}},"title":"list_stationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_station":{"post":{"operationId":"get_station","summary":"Discovery plan: get one UK tidal station as a GeoJSON feature (name, country, location and whether continuous heights ar","description":"Discovery plan: get one UK tidal station as a GeoJSON feature (name, country, location and whether continuous heights are available). Use for \"Where is tidal station 0113 and what is its name\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"}},"required":["station_id"],"title":"get_stationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_events":{"post":{"operationId":"get_tidal_events","summary":"Discovery plan: get high and low water times and heights for a station for today plus up to six more days (duration 1 to","description":"Discovery plan: get high and low water times and heights for a station for today plus up to six more days (duration 1 to 7). Use for \"When is high tide at Dover this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"},"duration":{"anyOf":[{"maximum":7,"minimum":1,"type":"integer"},{"type":"null"}],"default":7,"description":"Number of days of events, 1 to 7 (default 7).","title":"Duration"}},"required":["station_id"],"title":"get_tidal_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stations_foundation":{"post":{"operationId":"list_stations_foundation","summary":"Foundation or Premium plan: list tidal stations (ports, tidal stream stations or both) as GeoJSON features, optionally f","description":"Foundation or Premium plan: list tidal stations (ports, tidal stream stations or both) as GeoJSON features, optionally filtered by name. Use for \"Which tidal stream stations are there\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Optional part of the station name to filter by, for example 'Dover'.","title":"Name"},"type":{"anyOf":[{"enum":["Ports","Streams","Both"],"type":"string"},{"type":"null"}],"default":"Ports","description":"Station type: Ports (default), Streams or Both.","title":"Type"}},"title":"list_stations_foundationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_events_foundation":{"post":{"operationId":"get_tidal_events_foundation","summary":"Foundation plan: get high and low water times and heights for a station for today plus up to 13 more days (duration 1 to","description":"Foundation plan: get high and low water times and heights for a station for today plus up to 13 more days (duration 1 to 14). Use for \"What are the tide times at Dover for the next two weeks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"},"duration":{"anyOf":[{"maximum":14,"minimum":1,"type":"integer"},{"type":"null"}],"default":7,"description":"Number of days of events, 1 to 14 (default 7).","title":"Duration"}},"required":["station_id"],"title":"get_tidal_events_foundationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_stream_events":{"post":{"operationId":"get_tidal_stream_events","summary":"Foundation plan: get maximum ebb or flood and slack water events (time, speed in m/s, bearing) for a tidal stream statio","description":"Foundation plan: get maximum ebb or flood and slack water events (time, speed in m/s, bearing) for a tidal stream station. Use for \"When is slack water at tidal stream station 0001 today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Tidal stream station number (list stations with type Streams or Both), for example '0001'.","maxLength":200,"title":"Station Id","type":"string"},"duration":{"anyOf":[{"maximum":336,"minimum":1,"type":"number"},{"type":"null"}],"default":24,"description":"Number of hours of events (default 24).","title":"Duration"}},"required":["station_id"],"title":"get_tidal_stream_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_events_for_date_range":{"post":{"operationId":"get_tidal_events_for_date_range","summary":"Premium plan: get high and low water events for a station between two dates (history back to 1752 and up to one year ahe","description":"Premium plan: get high and low water events for a station between two dates (history back to 1752 and up to one year ahead; at most one year per request). Use for \"What were the tide times at Dover from 1 to 7 September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"},"start_date":{"description":"Start as 'YYYY-MM-DD HH:MM:SS' (UTC), for example '2026-09-01 00:00:00'.","maxLength":200,"title":"Start Date","type":"string"},"end_date":{"description":"End as 'YYYY-MM-DD', for example '2026-09-07'.","maxLength":200,"title":"End Date","type":"string"}},"required":["station_id","start_date","end_date"],"title":"get_tidal_events_for_date_rangeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_height":{"post":{"operationId":"get_tidal_height","summary":"Premium plan: get the predicted tidal height in metres above chart datum at one station for one date and time. Use for \"","description":"Premium plan: get the predicted tidal height in metres above chart datum at one station for one date and time. Use for \"How high will the tide be at Dover at noon on 20 October 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"},"date_time":{"description":"Date and time as 'YYYY-MM-DD HH:MM:SS' (UTC).","maxLength":200,"title":"Date Time","type":"string"}},"required":["station_id","date_time"],"title":"get_tidal_heightArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_heights":{"post":{"operationId":"get_tidal_heights","summary":"Premium plan: get predicted tidal heights at a fixed interval (1 to 120 minutes) between two date-times for a station. U","description":"Premium plan: get predicted tidal heights at a fixed interval (1 to 120 minutes) between two date-times for a station. Use for \"Give me tide heights at Dover every 30 minutes on 20 October 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"UK tidal station number from list_stations, for example '0113' (Dover).","maxLength":200,"title":"Station Id","type":"string"},"start_date_time":{"description":"Start as 'YYYY-MM-DD HH:MM:SS' (UTC).","maxLength":200,"title":"Start Date Time","type":"string"},"end_date_time":{"description":"End as 'YYYY-MM-DD HH:MM:SS' (UTC), at most one year after the start.","maxLength":200,"title":"End Date Time","type":"string"},"interval_in_minutes":{"description":"Minutes between predictions, 1 to 120.","maximum":120,"minimum":1,"title":"Interval In Minutes","type":"integer"}},"required":["station_id","start_date_time","end_date_time","interval_in_minutes"],"title":"get_tidal_heightsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tidal_stream_rates":{"post":{"operationId":"get_tidal_stream_rates","summary":"Premium plan: get predicted tidal stream speed (m/s) and bearing at a stream station at a fixed interval over a number o","description":"Premium plan: get predicted tidal stream speed (m/s) and bearing at a stream station at a fixed interval over a number of hours. Use for \"What is the tidal stream rate at station 0001 for the next day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Tidal stream station number (list stations with type Streams or Both), for example '0001'.","maxLength":200,"title":"Station Id","type":"string"},"date_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start time as 'YYYY-MM-DD HH:MM:SS' (UTC); default is now.","title":"Date Time"},"duration":{"anyOf":[{"maximum":720,"minimum":1,"type":"number"},{"type":"null"}],"default":24,"description":"Number of hours to cover (default 24).","title":"Duration"},"interval":{"anyOf":[{"maximum":120,"minimum":1,"type":"integer"},{"type":"null"}],"default":60,"description":"Minutes between predictions (default 60).","title":"Interval"}},"required":["station_id"],"title":"get_tidal_stream_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}