Query Sites

Download skillThe skill is a reference md and part of wix-manage skill. You can use the following command to add the full wix-manage skill to your project:
Copy

This recipe demonstrates how to list and query the sites associated with a Wix account.

Prerequisites

  • Account-level API access (authenticated as a Wix user or using an account-level API key)
  • Permission SITE_LIST.READ (scope SCOPE.ACC-DC-OS.READ-SITE)

Required APIs

  • Query Sites API: REST

Returns up to 100 sites per request. Use cursor paging (below) to retrieve more.


Query Sites

Endpoint: POST https://www.wixapis.com/site-list/v2/sites/query

The request takes a query object that supports filter, sort, and cursorPaging.

Request Body:

Copy

All three fields are optional — { "query": { "cursorPaging": { "limit": 50 } } } lists every site.

Request:

Copy

Response Structure

The response has the sites array plus two paging objects: a top-level cursorPaging (echoes the applied limit and the next cursor) and metadata (count, cursors.next, hasNext).

⚠️ There is no pagingMetadata field. Read paging info from metadata.

Copy

Site object fields

Each entry in sites has these fields (from the Site schema):

FieldTypeNotes
idstringSite ID — use for site-level API calls
htmlAppIdstringInternal HTML app ID
namestringURL slug / internal name
displayNamestringHuman-readable site name
createdDate / updatedDatedatetime
trashedDatedatetimePresent only if the site is in the trash
publishedbooleanWhether the site is published
premiumbooleanWhether the site has a Wix Premium (paid) plan
viewUrlstringPublic site address; empty string when unpublished. There is no siteUrl field.
editUrlstringRelative editor path; prefix with https://manage.wix.com to open
thumbnailstringRelative thumbnail path
ownerAccountIdstring
contributorAccountIdsstring[]
editorTypestringe.g. EDITOR, ODEDITOR — also a valid filter field
blockedboolean
folderId / parentIdstringSet for sites organized in folders / parent-child setups
namespacestringe.g. WIX
domainConnectedboolean
parentChildRolestringe.g. NONE

Pagination

Cursor-based. Read the next cursor from metadata.cursors.next and stop when metadata.hasNext is false.

The cursor does not carry the page limit, and it already encodes the filter/sort from the first request. On follow-up pages send only the cursor (plus limit if you want a non-default page size) — do not repeat filter or sort.

First request:

Copy

Next page (cursor from metadata.cursors.next):

Copy

Loop:

Copy

Common Use Cases

List all sites

Omit filter and page through with cursorPaging until metadata.hasNext is false.

Find a specific site

Prefer server-side filter (e.g. { "editorType": "EDITOR" }) and sort over fetching everything and filtering client-side. Filterable fields match the site object (e.g. name, displayName, editorType, published).


Next Steps

After finding a site:

Last updated: 30 June 2026

Did this help?