{"openapi":"3.1.0","info":{"title":"Flight Plan Database (BYOK) API","version":"0.1.0","description":"Flight Plan Database (BYOK) lets an AI assistant read your own Flight Plan Database data through the Flight Plan Database API with a key you supply (Flight Plan Database API key). Read-only: 12 tools (search_plans, get_plan, list_user_plans, get_user, search_users, get_my_profile, list_tags, get_airport, get_airport_weather, list_nat_tracks, list_pacots_tracks, search_navaids). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-flightplandatabase.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-flightplandatabase/docs"},"termsOfService":"https://connectorbay.com/byok-flightplandatabase/terms"},"servers":[{"url":"https://byok-flightplandatabase.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-flightplandatabase/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/search_plans":{"post":{"operationId":"search_plans","summary":"Search flight simulation flight plans by airports, flight number, tags or distance. Distances are in nautical miles and ","description":"Search flight simulation flight plans by airports, flight number, tags or distance. Distances are in nautical miles and altitudes in feet. Data is for flight simulation only, not real-world navigation. Use for \"Find flight plans from Amsterdam to New York\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free search over airport ICAO and name, username, tags and flight number.","title":"Q"},"from_icao":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Departure airport ICAO code, for example EHAM.","title":"From Icao"},"to_icao":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Destination airport ICAO code, for example KJFK.","title":"To Icao"},"flight_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Flight number to match.","title":"Flight Number"},"distance_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minimum route distance in nautical miles.","title":"Distance Min"},"distance_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Maximum route distance in nautical miles.","title":"Distance Max"},"tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated tag names.","title":"Tags"},"page":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Page of results to fetch (starting at 1).","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Plans per page (1 to 100).","title":"Limit"},"sort":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":"created","description":"Sort order such as created or popularity; see the API's pagination notes.","title":"Sort"}},"title":"search_plansArguments","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_plan":{"post":{"operationId":"get_plan","summary":"Get one flight plan by its numeric ID with airports, distance, altitude, waypoint count, popularity, tags and notes. Use","description":"Get one flight plan by its numeric ID with airports, distance, altitude, waypoint count, popularity, tags and notes. Use for \"Show flight plan 59970\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric flight plan ID.","title":"Id","type":"integer"}},"required":["id"],"title":"get_planArguments","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_user_plans":{"post":{"operationId":"list_user_plans","summary":"List the flight plans created by one user, newest first by default. Use for \"What plans has example_pilot published\".","description":"List the flight plans created by one user, newest first by default. Use for \"What plans has example_pilot published\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"username":{"description":"Flight Plan Database username.","maxLength":200,"title":"Username","type":"string"},"page":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Page of results to fetch (starting at 1).","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Plans per page (1 to 100).","title":"Limit"},"sort":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":"created","description":"Sort order such as created or popularity; see the API's pagination notes.","title":"Sort"}},"required":["username"],"title":"list_user_plansArguments","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_user":{"post":{"operationId":"get_user","summary":"Show a user's public profile: join date, last seen, plan count, total distance, downloads and likes. Use for \"How many p","description":"Show a user's public profile: join date, last seen, plan count, total distance, downloads and likes. Use for \"How many plans has example_pilot created\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"username":{"description":"Flight Plan Database username.","maxLength":200,"title":"Username","type":"string"}},"required":["username"],"title":"get_userArguments","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/search_users":{"post":{"operationId":"search_users","summary":"Search users by name. Use for \"Find users called pilot\".","description":"Search users by name. Use for \"Find users called pilot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Search text for the username.","maxLength":200,"title":"Q","type":"string"}},"required":["q"],"title":"search_usersArguments","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_my_profile":{"post":{"operationId":"get_my_profile","summary":"Show the profile and plan statistics of the account that owns the API key. Use for \"Which Flight Plan Database account i","description":"Show the profile and plan statistics of the account that owns the API key. Use for \"Which Flight Plan Database account is my key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_my_profileArguments","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_tags":{"post":{"operationId":"list_tags","summary":"List plan tags with their description, plan count and popularity. Use for \"Which flight plan tags are most popular\".","description":"List plan tags with their description, plan count and popularity. Use for \"Which flight plan tags are most popular\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_tagsArguments","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_airport":{"post":{"operationId":"get_airport","summary":"Get an airport by ICAO code: name, IATA code, elevation in feet, coordinates, time zone, sun times, runways, frequencies","description":"Get an airport by ICAO code: name, IATA code, elevation in feet, coordinates, time zone, sun times, runways, frequencies and current METAR and TAF. Use for \"What runways and frequencies does EGLC have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"icao":{"description":"Airport ICAO code, for example EGLC.","maxLength":200,"title":"Icao","type":"string"}},"required":["icao"],"title":"get_airportArguments","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_airport_weather":{"post":{"operationId":"get_airport_weather","summary":"Get the current METAR and TAF text reports for an airport by ICAO code. Use for \"What is the METAR at EHAM\".","description":"Get the current METAR and TAF text reports for an airport by ICAO code. Use for \"What is the METAR at EHAM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"icao":{"description":"Airport ICAO code, for example EHAM.","maxLength":200,"title":"Icao","type":"string"}},"required":["icao"],"title":"get_airport_weatherArguments","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_nat_tracks":{"post":{"operationId":"list_nat_tracks","summary":"List the currently published North Atlantic Tracks (NATs) with identifier, validity window and route nodes. Use for \"Whi","description":"List the currently published North Atlantic Tracks (NATs) with identifier, validity window and route nodes. Use for \"Which North Atlantic tracks are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_nat_tracksArguments","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_pacots_tracks":{"post":{"operationId":"list_pacots_tracks","summary":"List the currently published Pacific Organized Track System (PACOTS) tracks with identifier, validity window and route n","description":"List the currently published Pacific Organized Track System (PACOTS) tracks with identifier, validity window and route nodes. Use for \"Which Pacific tracks are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_pacots_tracksArguments","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/search_navaids":{"post":{"operationId":"search_navaids","summary":"Search navigation aids and airports by identifier or name, with type, coordinates, elevation in feet and the associated ","description":"Search navigation aids and airports by identifier or name, with type, coordinates, elevation in feet and the associated airport and runway. Use for \"Find the VOR near Amsterdam called SPL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Identifier or name to look for.","maxLength":200,"title":"Q","type":"string"},"types":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated navaid types to include; leave empty for all types.","title":"Types"}},"required":["q"],"title":"search_navaidsArguments","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}}}}