{"openapi":"3.1.0","info":{"title":"Wix (BYOK) API","version":"0.1.0","description":"Wix (BYOK) lets an AI assistant read your own Wix data through the Wix API with a key you supply (Wix API key). Read-only: 9 tools (get_site_properties, query_products, query_inventory_items, search_orders, query_blog_posts, query_blog_categories, query_bookings_services, list_data_collections, query_data_items). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wix.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wix/docs"},"termsOfService":"https://connectorbay.com/byok-wix/terms"},"servers":[{"url":"https://byok-wix.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wix/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/get_site_properties":{"post":{"operationId":"get_site_properties","summary":"Show the Wix site's display name, business name, description, language, locale, currency and time zone. Use for \"What is","description":"Show the Wix site's display name, business name, description, language, locale, currency and time zone. Use for \"What is my Wix site's name, language and currency\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_site_propertiesArguments","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/query_products":{"post":{"operationId":"query_products","summary":"List store products (catalog version 3) with name, type, visibility, price range and dates, newest first; filter by visi","description":"List store products (catalog version 3) with name, type, visibility, price range and dates, newest first; filter by visibility. Needs the store read permission. Use for \"What products does my Wix store sell\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only visible products, false for only hidden ones; leave out for all.","title":"Visible"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next-page value; leave out for the first page. Leave every filter empty when you pass a cursor.","title":"Cursor"}},"title":"query_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/query_inventory_items":{"post":{"operationId":"query_inventory_items","summary":"List stock records per product variant and location with availability (in stock, out of stock or preorder). Filter by av","description":"List stock records per product variant and location with availability (in stock, out of stock or preorder). Filter by availability or one product. Use for \"Which of my Wix products are out of stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"availability_status":{"anyOf":[{"enum":["IN_STOCK","OUT_OF_STOCK","PREORDER"],"type":"string"},{"type":"null"}],"default":null,"description":"Only items with this availability: IN_STOCK, OUT_OF_STOCK or PREORDER.","title":"Availability Status"},"product_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only stock records of this product ID.","title":"Product Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next-page value; leave out for the first page. Leave every filter empty when you pass a cursor.","title":"Cursor"}},"title":"query_inventory_itemsArguments","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_orders":{"post":{"operationId":"search_orders","summary":"List store orders with number, date, status, payment and fulfillment status and price totals, newest first. Buyer and ad","description":"List store orders with number, date, status, payment and fulfillment status and price totals, newest first. Buyer and address details are left out. Use for \"Which Wix orders are paid but not yet fulfilled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["INITIALIZED","APPROVED","CANCELED","PENDING","REJECTED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this status: INITIALIZED, APPROVED, CANCELED, PENDING or REJECTED.","title":"Status"},"payment_status":{"anyOf":[{"enum":["NOT_PAID","PAID","PARTIALLY_REFUNDED","FULLY_REFUNDED","PENDING","PARTIALLY_PAID","PENDING_MERCHANT","CANCELED","DECLINED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this payment status, for example PAID, NOT_PAID, PARTIALLY_REFUNDED or FULLY_REFUNDED.","title":"Payment Status"},"fulfillment_status":{"anyOf":[{"enum":["NOT_FULFILLED","PARTIALLY_FULFILLED","FULFILLED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this fulfillment status: NOT_FULFILLED, PARTIALLY_FULFILLED or FULFILLED.","title":"Fulfillment Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next-page value; leave out for the first page. Leave every filter empty when you pass a cursor.","title":"Cursor"}},"title":"search_ordersArguments","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/query_blog_posts":{"post":{"operationId":"query_blog_posts","summary":"List blog posts with title, excerpt, slug, category IDs, featured and pinned flags and publish dates. Optionally match t","description":"List blog posts with title, excerpt, slug, category IDs, featured and pinned flags and publish dates. Optionally match titles that start with some text. Use for \"What blog posts have I published on my Wix site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title_starts_with":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only posts whose title starts with this text.","title":"Title Starts With"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next-page value; leave out for the first page. Leave every filter empty when you pass a cursor.","title":"Cursor"}},"title":"query_blog_postsArguments","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/query_blog_categories":{"post":{"operationId":"query_blog_categories","summary":"List blog categories with label, slug, post count, description and menu position. Use for \"Which blog categories does my","description":"List blog categories with label, slug, post count, description and menu position. Use for \"Which blog categories does my Wix site have and how many posts are in each\".","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 categories 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, for paging (0 or more).","title":"Offset"}},"title":"query_blog_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/query_bookings_services":{"post":{"operationId":"query_bookings_services","summary":"List Wix Bookings services (classes, appointments, courses) with name, type, tag line, capacity and hidden flag. Can sho","description":"List Wix Bookings services (classes, appointments, courses) with name, type, tag line, capacity and hidden flag. Can show only visible services. Use for \"What bookable services does my Wix site offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hidden":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"False for only services shown to customers, true for only hidden ones; leave out for all.","title":"Hidden"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many services 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, for paging (0 or more).","title":"Offset"}},"title":"query_bookings_servicesArguments","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_data_collections":{"post":{"operationId":"list_data_collections","summary":"List the site's CMS data collections (Wix Data) with their IDs, display names, types and namespaces. Use the ID with que","description":"List the site's CMS data collections (Wix Data) with their IDs, display names, types and namespaces. Use the ID with query_data_items. Use for \"Which CMS collections does my Wix site have\".","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 collections to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many collections to skip, for paging.","title":"Offset"}},"title":"list_data_collectionsArguments","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/query_data_items":{"post":{"operationId":"query_data_items","summary":"Read the items of one CMS data collection (Wix Data), with each item's fields, paged by offset. Collections can hold any","description":"Read the items of one CMS data collection (Wix Data), with each item's fields, paged by offset. Collections can hold anything the site owner stored, so check the collection first. Use for \"Show items from my Wix CMS collection 'Events'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"data_collection_id":{"description":"ID of the collection to read, from list_data_collections, for example 'Events'.","maxLength":256,"title":"Data Collection Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items 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, for paging (0 or more).","title":"Offset"},"count_total":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to also return the total number of items in the collection.","title":"Count Total"}},"required":["data_collection_id"],"title":"query_data_itemsArguments","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}}}}