{"openapi":"3.1.0","info":{"title":"Wix Portfolio Projects (your key) API","version":"0.1.0","description":"Wix Portfolio Projects (your key) lets an AI assistant read your own Wix Portfolio data through the Wix Portfolio API with a key you supply (Wix API key). Read-only: 8 tools (query_collections, get_collection, query_projects, query_collection_projects, get_project, list_project_items, get_project_item, get_portfolio_settings). The BYOK key travels with each request, is used for that one call only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wix-portfolio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wix-portfolio/docs"},"termsOfService":"https://connectorbay.com/byok-wix-portfolio/terms"},"servers":[{"url":"https://byok-wix-portfolio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wix-portfolio/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/query_collections":{"post":{"operationId":"query_collections","summary":"List portfolio collections (galleries such as Weddings or Portraits) with title, description, slug, hidden flag, sort or","description":"List portfolio collections (galleries such as Weddings or Portraits) with title, description, slug, hidden flag, sort order and page URL. Use for \"What portfolio collections does my Wix photography site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hidden":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only hidden collections, false for only visible ones; leave out for all.","title":"Hidden"},"include_page_url":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include each page's relative path and full URL.","title":"Include Page Url"},"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.","title":"Cursor"}},"title":"query_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/get_collection":{"post":{"operationId":"get_collection","summary":"Get one portfolio collection by ID with title, description, slug, hidden flag, sort order and page URL. Use for \"Show Wi","description":"Get one portfolio collection by ID with title, description, slug, hidden flag, sort order and page URL. Use for \"Show Wix portfolio collection 8046df3c-7575-4098-a5ab-c91ad8f33c47\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"collection_id":{"description":"Collection ID (a GUID from query_collections).","maxLength":64,"title":"Collection Id","type":"string"}},"required":["collection_id"],"title":"get_collectionArguments","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_projects":{"post":{"operationId":"query_projects","summary":"List portfolio projects with title, description, slug, hidden flag, collection IDs, detail labels and page URL, newest f","description":"List portfolio projects with title, description, slug, hidden flag, collection IDs, detail labels and page URL, newest first. Use for \"What projects are in my Wix portfolio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hidden":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only hidden projects, false for only visible ones; leave out for all.","title":"Hidden"},"include_page_url":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include each page's relative path and full URL.","title":"Include Page Url"},"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.","title":"Cursor"}},"title":"query_projectsArguments","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_collection_projects":{"post":{"operationId":"query_collection_projects","summary":"List the portfolio projects in one collection with title, description, slug, hidden flag, detail labels and page URL, ne","description":"List the portfolio projects in one collection with title, description, slug, hidden flag, detail labels and page URL, newest first. Use for \"Which projects are in my Wix portfolio collection Weddings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"collection_id":{"description":"Collection ID (a GUID from query_collections).","maxLength":64,"title":"Collection Id","type":"string"},"include_page_url":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include each page's relative path and full URL.","title":"Include Page Url"},"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.","title":"Cursor"}},"required":["collection_id"],"title":"query_collection_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one portfolio project by ID with title, description, slug, collection IDs, detail labels and page URL. Use for \"Show","description":"Get one portfolio project by ID with title, description, slug, collection IDs, detail labels and page URL. Use for \"Show Wix portfolio project 5b1f0c2e-1111-4222-8333-944455556666\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project ID (a GUID from query_projects).","maxLength":64,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","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_project_items":{"post":{"operationId":"list_project_items","summary":"List the items (images and videos) of one project with title, description, type, sort order and link. Media files themse","description":"List the items (images and videos) of one project with title, description, type, sort order and link. Media files themselves are not returned. Use for \"What items are in my Wix portfolio project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project ID (a GUID from query_projects).","maxLength":64,"title":"Project Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Offset"}},"required":["project_id"],"title":"list_project_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/get_project_item":{"post":{"operationId":"get_project_item","summary":"Get one project item by ID with title, description, type, sort order, project ID and link. Use for \"Show Wix portfolio i","description":"Get one project item by ID with title, description, type, sort order, project ID and link. Use for \"Show Wix portfolio item 5b1f0c2e-1111-4222-8333-944455556666\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item_id":{"description":"Project item ID (a GUID from list_project_items).","maxLength":64,"title":"Item Id","type":"string"}},"required":["item_id"],"title":"get_project_itemArguments","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_portfolio_settings":{"post":{"operationId":"get_portfolio_settings","summary":"Show the portfolio settings: where new items are added, default item name and media folder. Use for \"How is my Wix portf","description":"Show the portfolio settings: where new items are added, default item name and media folder. Use for \"How is my Wix portfolio configured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_portfolio_settingsArguments","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}}}}