{"openapi":"3.1.0","info":{"title":"aviowiki (BYOK) API","version":"0.1.0","description":"aviowiki (BYOK) lets an AI assistant read your own aviowiki data through the aviowiki API with a key you supply (aviowiki API token). Read-only: 11 tools (search_airports_free, get_airport_by_icao_free, get_airport_by_iata_free, search_airports, get_airport, list_runways, list_airport_providers, list_airport_authorities, get_airport_weather, get_airport_sun_times, list_operational_notes). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-aviowiki.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-aviowiki/docs"},"termsOfService":"https://connectorbay.com/byok-aviowiki/terms"},"servers":[{"url":"https://byok-aviowiki.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-aviowiki/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_airports_free":{"post":{"operationId":"search_airports_free","summary":"Search airports by free text (name, city, code) using the free endpoint, which works with a free API token; returns page","description":"Search airports by free text (name, city, code) using the free endpoint, which works with a free API token; returns paged results. Use for \"Find London Heathrow airport\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Search text such as a name, city or code, for example 'London'.","maxLength":100,"title":"Query","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number starting at 0.","title":"Page"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (default 10).","title":"Size"}},"required":["query"],"title":"search_airports_freeArguments","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_by_icao_free":{"post":{"operationId":"get_airport_by_icao_free","summary":"Get an airport's core record by ICAO code using the free endpoint (works with a free API token). Use for \"Tell me about ","description":"Get an airport's core record by ICAO code using the free endpoint (works with a free API token). Use for \"Tell me about airport EGLL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"icao":{"description":"Four-letter ICAO airport code, for example 'EGLL'.","maxLength":200,"title":"Icao","type":"string"}},"required":["icao"],"title":"get_airport_by_icao_freeArguments","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_by_iata_free":{"post":{"operationId":"get_airport_by_iata_free","summary":"Get an airport's core record by IATA code using the free endpoint (works with a free API token). Use for \"Tell me about ","description":"Get an airport's core record by IATA code using the free endpoint (works with a free API token). Use for \"Tell me about airport LHR\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"iata":{"description":"Three-letter IATA airport code, for example 'LHR'.","maxLength":200,"title":"Iata","type":"string"}},"required":["iata"],"title":"get_airport_by_iata_freeArguments","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_airports":{"post":{"operationId":"search_airports","summary":"Search airports with text and filters: airport type, accepted traffic, country, runway length, elevation, or distance ar","description":"Search airports with text and filters: airport type, accepted traffic, country, runway length, elevation, or distance around a point (needs a full API token). Use for \"Which airports within 100 km of London have a runway longer than 2000 m\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text such as name or city.","title":"Query"},"types":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated airport types: AIRPORT, HELIPORT, AIRSTRIP, WATER.","title":"Types"},"accepts":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated traffic types: SCHEDULED, NON_SCHEDULED, GENERAL_AVIATION, TRAINING, BUSINESS_AVIATION, MILITARY, HELICOPTER.","title":"Accepts"},"country":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Country filter (ISO 3166 alpha-2 code).","title":"Country"},"minimum_runway_length":{"anyOf":[{"maximum":20000,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Minimum TORA in metres of at least one runway.","title":"Minimum Runway Length"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"Latitude of a reference point.","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"Longitude of a reference point.","title":"Longitude"},"distance":{"anyOf":[{"maximum":20000,"minimum":1,"type":"number"},{"type":"null"}],"default":null,"description":"Maximum great-circle distance in km from the reference point (default 100).","title":"Distance"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number starting at 0.","title":"Page"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (default 10).","title":"Size"}},"title":"search_airportsArguments","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 the full airport record by aviowiki ID: names, codes, location, type, operator, access rules and weight/wingspan/pas","description":"Get the full airport record by aviowiki ID: names, codes, location, type, operator, access rules and weight/wingspan/passenger limits (needs a full API token). Use for \"Give me the full record of airport APT-KS1J-8E0L\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"}},"required":["aid"],"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/list_runways":{"post":{"operationId":"list_runways","summary":"List all runways and helipads of an airport with bearing, width, take-off and landing distances, surface, lighting and t","description":"List all runways and helipads of an airport with bearing, width, take-off and landing distances, surface, lighting and threshold coordinates (needs a full API token). Use for \"What runways does airport APT-KS1J-8E0L have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"}},"required":["aid"],"title":"list_runwaysArguments","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_airport_providers":{"post":{"operationId":"list_airport_providers","summary":"List service providers at an airport (handlers, fuel, catering and others) with category, name, website and country (nee","description":"List service providers at an airport (handlers, fuel, catering and others) with category, name, website and country (needs a full API token). Use for \"Which service providers operate at airport APT-KS1J-8E0L\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"}},"required":["aid"],"title":"list_airport_providersArguments","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_airport_authorities":{"post":{"operationId":"list_airport_authorities","summary":"List the authorities at an airport (customs, owner, operator and similar) (needs a full API token). Use for \"Which autho","description":"List the authorities at an airport (customs, owner, operator and similar) (needs a full API token). Use for \"Which authorities are present at airport APT-KS1J-8E0L\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"}},"required":["aid"],"title":"list_airport_authoritiesArguments","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 latest METAR and TAF for an airport, with an optional fall back to the nearest station (needs a full API token).","description":"Get the latest METAR and TAF for an airport, with an optional fall back to the nearest station (needs a full API token). Use for \"What is the current weather and forecast at airport APT-KS1J-8E0L\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"},"fallback":{"anyOf":[{"enum":["NONE","NEAREST"],"type":"string"},{"type":"null"}],"default":"NONE","description":"NONE (default) or NEAREST to use the nearest available report when the airport has none.","title":"Fallback"}},"required":["aid"],"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/get_airport_sun_times":{"post":{"operationId":"get_airport_sun_times","summary":"Get sunrise, sunset, zenith and nadir times at an airport for a given local date (needs a full API token). Use for \"When","description":"Get sunrise, sunset, zenith and nadir times at an airport for a given local date (needs a full API token). Use for \"When is sunset at airport APT-KS1J-8E0L today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"},"local":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True for the airport's local time, false (default) for UTC.","title":"Local"},"date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Local date as YYYY-MM-DD; today when omitted.","title":"Date"}},"required":["aid"],"title":"get_airport_sun_timesArguments","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_operational_notes":{"post":{"operationId":"list_operational_notes","summary":"List operational notes (closures, delays, restrictions) valid now or at a given time for an airport, including country-l","description":"List operational notes (closures, delays, restrictions) valid now or at a given time for an airport, including country-level notes (needs a full API token). Use for \"Are there any operational restrictions at airport APT-KS1J-8E0L right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"aid":{"description":"aviowiki airport ID such as 'APT-KS1J-8E0L' (the aid field from an airport search).","maxLength":200,"title":"Aid","type":"string"},"date_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 date and time the notes must be valid at; now when omitted.","title":"Date Time"}},"required":["aid"],"title":"list_operational_notesArguments","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}}}}