{"openapi":"3.1.0","info":{"title":"Impala (BYOK) API","version":"0.1.0","description":"Impala (BYOK) lets an AI assistant read your own Impala data through the Impala API with a key you supply (Impala API key). Read-only: 5 tools (list_hotels, get_hotel, get_hotel_rates, list_rate_plans, get_rate_plan). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.impala.travel. Unofficial connector by...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-impala.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-impala/docs"},"termsOfService":"https://connectorbay.com/byok-impala/terms"},"servers":[{"url":"https://byok-impala.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-impala/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_hotels":{"post":{"operationId":"list_hotels","summary":"List hotels on the Impala platform with name, star rating, address, coordinates and images; filter by name, country, rat","description":"List hotels on the Impala platform with name, star rating, address, coordinates and images; filter by name, country, rating, area or update time. Use for \"Find 4 and 5 star hotels in Thailand on Impala\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_like":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive name search, for example 'palace'.","title":"Name Like"},"country":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Country as ISO 3166-1 alpha-3 code, for example THA, IND, BRA or ARE.","title":"Country"},"min_star_rating":{"anyOf":[{"maximum":5,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Minimum star rating (0 to 5).","title":"Min Star Rating"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"WGS 84 latitude to search around.","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"WGS 84 longitude to search around.","title":"Longitude"},"radius":{"anyOf":[{"maximum":500000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Search radius in metres around latitude/longitude.","title":"Radius"},"hotel_ids":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated hotel ids to restrict to.","title":"Hotel Ids"},"sort_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort: name, rating or distance_m (with latitude/longitude), optionally ':asc' or ':desc'; default createdAt:desc.","title":"Sort By"},"size":{"anyOf":[{"maximum":300,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Hotels per page (1 to 300).","title":"Size"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of hotels to skip, for paging.","title":"Offset"}},"title":"list_hotelsArguments","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_hotel":{"post":{"operationId":"get_hotel","summary":"Get one hotel in detail: description, address, coordinates, check-in/out times, amenities, room count, terms and last up","description":"Get one hotel in detail: description, address, coordinates, check-in/out times, amenities, room count, terms and last update. Use for \"Give me the details of Impala hotel 60a06628-2c71-44bf-9685-efbd2df4179e\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hotel_id":{"description":"Impala hotel id (UUID) from list_hotels.","maxLength":200,"title":"Hotel Id","type":"string"}},"required":["hotel_id"],"title":"get_hotelArguments","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_hotel_rates":{"post":{"operationId":"get_hotel_rates","summary":"Get a hotel with its room types and the rates sellable for a stay window (room type, occupancy, rate id, dates, rooms se","description":"Get a hotel with its room types and the rates sellable for a stay window (room type, occupancy, rate id, dates, rooms sellable, retail rate). Use for \"What rooms and rates does Impala hotel 60a06628-2c71-44bf-9685-efbd2df4179e have from 2026-12-01 to 2026-12-03\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hotel_id":{"description":"Impala hotel id (UUID) from list_hotels.","maxLength":200,"title":"Hotel Id","type":"string"},"start":{"description":"Arrival day, YYYY-MM-DD.","maxLength":10,"title":"Start","type":"string"},"end":{"description":"Departure day, YYYY-MM-DD.","maxLength":10,"title":"End","type":"string"}},"required":["hotel_id","start","end"],"title":"get_hotel_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}},"/v1/tools/list_rate_plans":{"post":{"operationId":"list_rate_plans","summary":"List a hotel's rate plans (rate calendar, beta): descriptions, cancellation conditions, length-of-stay limits and per-da","description":"List a hotel's rate plans (rate calendar, beta): descriptions, cancellation conditions, length-of-stay limits and per-date room availability. Use for \"Which rate plans does Impala hotel 60a06628-2c71-44bf-9685-efbd2df4179e offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hotel_id":{"description":"Impala hotel id (UUID) from list_hotels.","maxLength":200,"title":"Hotel Id","type":"string"},"size":{"anyOf":[{"maximum":300,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Rate plans per page.","title":"Size"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of rate plans to skip.","title":"Offset"}},"required":["hotel_id"],"title":"list_rate_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_rate_plan":{"post":{"operationId":"get_rate_plan","summary":"Get one rate plan of a hotel with adjustments, included components, conditions and per-date room availability. Use for \"","description":"Get one rate plan of a hotel with adjustments, included components, conditions and per-date room availability. Use for \"Show Impala rate plan 77 of hotel 60a06628-2c71-44bf-9685-efbd2df4179e\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hotel_id":{"description":"Impala hotel id (UUID) from list_hotels.","maxLength":200,"title":"Hotel Id","type":"string"},"rate_plan_id":{"description":"Rate plan id from list_rate_plans.","title":"Rate Plan Id","type":"integer"}},"required":["hotel_id","rate_plan_id"],"title":"get_rate_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}}}}