{"openapi":"3.1.0","info":{"title":"Rezdy (BYOK) API","version":"0.1.0","description":"Rezdy (BYOK) lets an AI assistant read your own Rezdy data through the Rezdy API with a key you supply (Rezdy API key). Read-only: 9 tools (list_products, get_product, search_availability, list_bookings, get_booking, list_categories, list_extras, list_resources, list_vouchers). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-rezdy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rezdy/docs"},"termsOfService":"https://connectorbay.com/byok-rezdy/terms"},"servers":[{"url":"https://byok-rezdy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rezdy/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_products":{"post":{"operationId":"list_products","summary":"List the supplier's products (tours and activities) with code, name, type, short description, advertised price, currency","description":"List the supplier's products (tours and activities) with code, name, type, short description, advertised price, currency and unit label. Use for \"Which tours and activities do I have in Rezdy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text searched in product name, product code and internal code.","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"title":"list_productsArguments","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_product":{"post":{"operationId":"get_product","summary":"Get one product with long description, price options (adult, child ...), seat use per option, minimum and maximum quanti","description":"Get one product with long description, price options (adult, child ...), seat use per option, minimum and maximum quantities, currency and timezone. Use for \"Show the price options of product P12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"product_code":{"description":"Rezdy product code such as 'P12345' (from list_products).","maxLength":20,"title":"Product Code","type":"string"}},"required":["product_code"],"title":"get_productArguments","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_availability":{"post":{"operationId":"search_availability","summary":"List sessions of one product in a local time window with start and end time, total and available seats and price options","description":"List sessions of one product in a local time window with start and end time, total and available seats and price options. Use for \"How many seats are left on product P12345 during November\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"product_code":{"description":"Rezdy product code such as 'P12345'.","maxLength":20,"title":"Product Code","type":"string"},"start_time_local":{"description":"Window start in the supplier's local time, 'yyyy-MM-dd HH:mm:ss', for example '2026-11-01 00:00:00'.","maxLength":19,"title":"Start Time Local","type":"string"},"end_time_local":{"description":"Window end in local time, 'yyyy-MM-dd HH:mm:ss'.","maxLength":19,"title":"End Time Local","type":"string"},"min_availability":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sessions with at least this many seats free.","title":"Min Availability"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"required":["product_code","start_time_local","end_time_local"],"title":"search_availabilityArguments","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_bookings":{"post":{"operationId":"list_bookings","summary":"List bookings with order number, status, totals, amount paid and due, created and updated dates, source channel and the ","description":"List bookings with order number, status, totals, amount paid and due, created and updated dates, source channel and the customer's full name. No contact or card data is returned. Use for \"Which Rezdy bookings are confirmed for next week and what is still unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_status":{"anyOf":[{"enum":["PROCESSING","NEW","ON_HOLD","PENDING_SUPPLIER","PENDING_CUSTOMER","CONFIRMED","CANCELLED","ABANDONED_CART"],"type":"string"},{"type":"null"}],"default":null,"description":"Booking status filter.","title":"Order Status"},"min_tour_start_time":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only bookings whose tour starts at or after this ISO 8601 time.","title":"Min Tour Start Time"},"max_tour_start_time":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only bookings whose tour starts at or before this ISO 8601 time.","title":"Max Tour Start Time"},"updated_since":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only bookings updated after this ISO 8601 time.","title":"Updated Since"},"min_date_created":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only bookings created on or after this ISO 8601 time.","title":"Min Date Created"},"role":{"anyOf":[{"enum":["RESELLER","SUPPLIER","ALL"],"type":"string"},{"type":"null"}],"default":null,"description":"Bookings where your company is RESELLER, SUPPLIER or ALL.","title":"Role"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"title":"list_bookingsArguments","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_booking":{"post":{"operationId":"get_booking","summary":"Get one booking by order number with its items (product, start time, quantities by price option, amounts), totals, sourc","description":"Get one booking by order number with its items (product, start time, quantities by price option, amounts), totals, source and commission. No customer contact or card data is returned. Use for \"Show the items of booking RZ12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_number":{"description":"Rezdy order number such as 'RZ12345'.","maxLength":30,"title":"Order Number","type":"string"}},"required":["order_number"],"title":"get_bookingArguments","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_categories":{"post":{"operationId":"list_categories","summary":"List product categories with id, name, description and visibility. Use for \"What product categories do I have in Rezdy\".","description":"List product categories with id, name, description and visibility. Use for \"What product categories do I have in Rezdy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text searched in category names.","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"title":"list_categoriesArguments","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_extras":{"post":{"operationId":"list_extras","summary":"Search optional extras (add-ons) by name, with id, description, price and price type. Use for \"What extras can customers","description":"Search optional extras (add-ons) by name, with id, description, price and price type. Use for \"What extras can customers add to a tour, such as lunch\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search_string":{"description":"Text searched in extra names.","maxLength":100,"title":"Search String","type":"string"}},"required":["search_string"],"title":"list_extrasArguments","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_resources":{"post":{"operationId":"list_resources","summary":"List bookable resources (boats, vehicles, guides) with id, name, type and seat count. Use for \"Which resources can be as","description":"List bookable resources (boats, vehicles, guides) with id, name, type and seat count. Use for \"Which resources can be assigned to my tours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"title":"list_resourcesArguments","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_vouchers":{"post":{"operationId":"list_vouchers","summary":"Search vouchers and gift cards with code, status, issue and expiry dates, value and value type. Use for \"Which Rezdy gif","description":"Search vouchers and gift cards with code, status, issue and expiry dates, value and value type. Use for \"Which Rezdy gift vouchers are still valid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Text searched in voucher codes.","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, starting at 0, for paging.","title":"Offset"}},"title":"list_vouchersArguments","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}}}}