Everything an AI agent can do with the Wix API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints20
AuthenticationOAuth 2.0 / API key
Last updated23 June 2026
Orientation

How the Wix API works.

The Wix API is how an app or AI agent works with a Wix site: querying the store catalog, recording an order, adding a contact, listing members, or storing data in a content collection. Access is granted either through an installed app that holds OAuth permissions a site owner approved, or through an account API key carrying an assigned set of permissions, and each call is scoped to one site. Wix versions each business area on its own track, and it can push an event to a registered app when something on the site changes.

20Endpoints
7Capability groups
12Read
8Write
12Permissions
Authentication
Wix authenticates a third-party app through OAuth: the app holds an app ID and secret, a site owner installs it and approves its permissions, and the app exchanges those for an access token scoped to that site. An account owner can instead create an API key in the API Keys Manager, assign it a set of permissions, and call the API directly with it, sending the account ID or site ID in the request header. API keys are an account-level tool and are not available to third-party apps.
Permissions
Every method states the permission scope it needs in its reference page, like Read Products or Manage Orders. An installed app can only call methods covered by the scopes its site owner approved at install, and an API key can only call methods covered by the permissions assigned to it. A call that lacks the right permission returns a 403.
Versioning
Wix does not pin the whole platform to one dated version. Each business area is versioned on its own track, so the store catalog can sit at one major version while contacts or events sit at another, and a new major version of a module is a separate set of paths. Older module versions are deprecated with a removal date rather than changed underneath callers.
Data model
The Wix REST API is organized by business area, each at its own base path under www.wixapis.com, like the store catalog, eCommerce orders, contacts, members, bookings, the CMS data store, and events. A read that returns a list is usually a POST to a query or search method that takes paging, filtering, and sorting in the body. A site change can emit an event delivered to a registered app.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Wix determines what it can reach. There is an installed app that authenticates with OAuth, an account-level API key for direct calls, and a hosted server that exposes Wix tools to agents, and each is governed by the permissions behind it and the site it is called against.

Ways to connect

REST API

The REST API is organized by business area, each at its own base path under https://www.wixapis.com, like /stores/v3, /ecom/v1, /contacts/v4, /members/v1, /wix-data/v2, and /events/v3. Requests and responses are JSON, a read-of-many is usually a POST to a query or search method that takes paging and filtering in the body, and a call authenticates with an OAuth app token or an account API key.

Best forConnecting an app or AI agent to a Wix site.
Governed byThe OAuth permissions or the API key permissions, scoped to one site.
Docs ↗

MCP server

Wix runs a first-party hosted Model Context Protocol server at https://mcp.wix.com/mcp. It exposes tools that search the Wix REST, SDK, and app-building documentation, fetch the full request and response schema of an API method, and perform an action or query against a chosen account and site, so an AI client can both learn the API and call it. It is the official Wix MCP, built and maintained by Wix.

Best forConnecting an AI agent to Wix through MCP.
Governed byThe account and site the agent selects, and the permissions behind its connection.
Docs ↗

Webhooks

An app registers for the events it cares about and Wix POSTs a signed JSON Web Token to the app's endpoint when a matching event occurs on a site, like wix.ecom.v1.order created or a contact created. The app verifies the token with its app secret to confirm the event came from Wix, then acts on the payload, which avoids polling for changes.

Best forReceiving Wix events at an app or AI agent.
Governed byThe app's registered webhooks and its app secret.
Docs ↗
Authentication

OAuth (installed app)

A third-party app authenticates with OAuth. The app holds an app ID and secret, a site owner installs it from the Wix App Market and approves the permission scopes the app declared, and the app exchanges those for an access token tied to the app instance on that site. The token grants only the approved permissions, and a refresh token keeps it current. This is the only method available to third-party apps.

TokenOAuth access token tied to an app instance on a site
Best forPublished apps that many sites install.
Docs ↗

API key

An account owner or co-owner creates an API key in the API Keys Manager and assigns it a set of permissions that determine which APIs it can call. The key calls the API directly, bypassing OAuth, with the account ID in the header for account-level requests or the site ID for site-level requests. API keys are an account-level tool and are not available to third-party apps.

TokenAccount API key plus an account ID or site ID header
Best forAn account owner automating their own account or site.
Docs ↗
Endpoint reference

Every Wix API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Stores (catalog)

Methods for working with the store's product catalog (Catalog V3).5

Scope SCOPE.DC-STORES.READ-PRODUCTS. Catalog V1 reader; Catalog V3 uses the search method below.

Acts onproduct
Permission (capability)Read Products
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.STORES.PRODUCT_READ (or PRODUCT_READ_ADMIN). Returns up to 100 products per page.

Acts onproduct
Permission (capability)Read Products
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.STORES.PRODUCT_READ.

Acts onproduct
Permission (capability)Read Products
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.STORES.PRODUCT_WRITE. Use Create Product With Inventory to set stock in the same call.

Acts onproduct
Permission (capability)Manage Products
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.STORES.PRODUCT_WRITE. Bulk Update Products changes one field across up to 100 products.

Acts onproduct
Permission (capability)Manage Products
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

eCommerce orders

Methods for reading and recording eCommerce orders.3

Scope SCOPE.DC-STORES.READ-ORDERS.

Acts onorder
Permission (capability)Read Orders
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-STORES.READ-ORDERS (or MANAGE-ORDERS).

Acts onorder
Permission (capability)Read Orders
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-STORES.MANAGE-ORDERS. Online purchases create orders automatically at checkout.

Acts onorder
Permission (capability)Manage Orders
VersionAvailable since the API’s base version
Webhook eventorder-created
Rate limitStandard limits apply

Contacts (CRM)

Methods for working with the site's contacts.3

Scope SCOPE.DC-CONTACTS.READ-CONTACTS (or a broader Manage Contacts scope).

Acts oncontact
Permission (capability)Read Contacts
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-CONTACTS.MANAGE-CONTACTS.

Acts oncontact
Permission (capability)Manage Contacts
VersionAvailable since the API’s base version
Webhook eventcontact-created
Rate limitStandard limits apply

Scope SCOPE.DC-CONTACTS.MANAGE-CONTACTS. Uses a revision to guard against conflicting updates.

Acts oncontact
Permission (capability)Manage Contacts
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Members

Methods for working with site members.3

Scope SCOPE.DC-MEMBERS.READ-MEMBERS.

Acts onmember
Permission (capability)Read Members
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-MEMBERS.READ-MEMBERS. Pass the next cursor from pagingMetadata to page.

Acts onmember
Permission (capability)Read Members
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-MEMBERS.READ-MEMBERS.

Acts onmember
Permission (capability)Read Members
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Bookings

Methods for reading and creating bookings for a site's services.2

Bookings are read with the Reader V2 API; the Writer V2 API cannot return bookings.

Acts onbooking
Permission (capability)Read Bookings
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-BOOKINGS.MANAGE-BOOKINGS. Only Manage Bookings identities can set status CONFIRMED.

Acts onbooking
Permission (capability)Manage Bookings
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Data Items (CMS)

Methods for storing and retrieving items in content collections.3

Scope SCOPE.DC-DATA.READ. The collection's own permissions also govern which roles can read.

Acts ondataItem
Permission (capability)Read Data Items
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-DATA.WRITE. The collection must already exist (create one with the Data Collections API).

Acts ondataItem
Permission (capability)Manage Data Items
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Scope SCOPE.DC-DATA.WRITE. Creates the item if the ID is new, updates it if it exists.

Acts ondataItem
Permission (capability)Manage Data Items
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Events

Methods for reading ticketed events on the site.1

Scope SCOPE.DC-EVENTS.READ-EVENTS.

Acts onevent
Permission (capability)Read Events
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Wix can notify an app when something happens on a site, like an order being created or a contact being added. It sends a signed message describing what changed, so an integration learns about activity without polling.

EventWhat it signalsTriggered by
wix.ecom.v1.order_createdAn eCommerce order was created on the site, whether through checkout or recorded by the API. The payload carries the order line items, buyer info, pricing, and payment and fulfillment status./ecom/v1/orders
Contact CreatedA new contact was added to the site's CRM, for example through a form, a checkout, or the Create Contact method./contacts/v4/contacts
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Wix throttles how fast an app can call a site, and returns a clear status when a caller sends too many requests too quickly.

Request rate

Wix throttles how many requests an app or key can send to a site in a short window. When a caller goes over, the API returns HTTP 429, and the documented guidance is to wait a minute and retry. Wix does not publish a single fixed request-per-minute number in its REST limits article, so an integration should treat 429 as the signal to back off and slow down rather than assume a fixed ceiling. Some modules, like the CMS data store, also note their own per-operation limits in their reference pages.

Pagination

A list or query method is cursor-based. A query or search call takes paging, filtering, and sorting in the request body, returns up to a documented maximum per page, and includes a pagingMetadata.cursors object whose next value is passed on the following call to fetch the next page. Page-size maximums vary by module, for example Query Contacts returns up to 1,000 contacts per request and Query Events defaults to a page of 50.

Request size

Page-size ceilings are set per method, not globally. Bulk write methods cap the batch, for example Bulk Update Products acts on up to 100 products in one call. A query or search call returns at most the documented maximum for that method, after which the cursor is used to read the next page.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400INVALID_ARGUMENTOne or more request parameters is wrong or missing, or the request failed validation.Read the message and details (an applicationError or validationError object), correct the parameters, and resend. The request is not retryable as-is.
401UNAUTHENTICATEDWix could not authenticate the caller, for example a missing, invalid, or expired token or key.Confirm a valid OAuth token or API key is being sent, refresh an expired app token, and retry.
403PERMISSION_DENIEDThe caller was authenticated but lacks the permission scope this method requires.Grant the method's required scope to the app at install, or assign the permission to the API key, then retry.
404NOT_FOUNDThe requested resource was not found or does not exist on this site.Verify the resource ID and that the call targets the correct site.
409ALREADY_EXISTS / FAILED_PRECONDITIONA conflict with server state, for example a resource that already exists or a revision mismatch on an update.Re-read the current resource and its revision, reconcile, and retry the write.
428PRECONDITION_REQUIREDA precondition must be met before the request can succeed, such as a required revision on an update.Supply the required precondition, like the current revision, and resend.
429RESOURCE_EXHAUSTEDThe caller was throttled for sending too many requests in a short period.Wait a minute, slow the request rate, and retry with backoff.
500INTERNALAn error occurred on Wix's server. It may also appear as 503 or 504.Retry later with backoff, and contact Wix if it persists.
Versioning & freshness

Version history.

Wix versions each business area on its own track rather than pinning the whole platform to one dated version, so a module like the store catalog can move to a new major version while others stay put.

Version history

What changed, and when

Latest versionCurrent
CurrentCurrent version
Wix REST API (per-module versioning)

Wix does not pin the whole platform to one dated version. Each business area is versioned on its own track, so paths carry a per-module major version, like /stores/v3, /contacts/v4, /members/v1, /wix-data/v2, /ecom/v1, and /events/v3. A module's new major version is a separate set of paths, and an older version is deprecated with a published removal date rather than changed underneath callers. Changes ship through the API changelog.

What changed
  • Stores Catalog V3 is the current product catalog, with a search-based products method.
  • Contacts is on v4; eCommerce orders on v1; members on v1; CMS data items on v2.
  • Wix Events V3 replaced the V1 Query Events method.
2024-11-06Requires migration
Wix Events V1 Query Events removed

The V1 Query Events method was replaced by the Wix Events V3 Query Events method and removed on this date, an example of Wix retiring an older module version on a published timeline rather than changing it in place.

What changed
  • Events V1 Query Events removed in favor of Events V3.

Pin to a module's current major version and move up when that module ships a new one.

Wix API changelog ↗
Questions

Wix API, answered.

Should an integration use OAuth or an API key?+
It depends on who is building. A third-party app published for many sites authenticates with OAuth: the app holds an app ID and secret, a site owner installs it and approves its permissions, and the app receives a token scoped to that site. API keys are not available to third-party apps. An account owner automating their own account or site can instead create an API key in the API Keys Manager, assign it permissions, and call the API directly, sending the account ID or site ID in the header.
How do permission scopes work?+
Each method lists the permission scope it requires in the Permissions section of its reference page, like Read Products or Manage Orders. For an app, a site owner approves the scopes at install, and the app can call only those methods. For an API key, an account owner assigns the permissions when the key is created. A call that is authenticated but lacks the needed permission returns a 403.
Does Wix have one API version to pin?+
No. Wix versions each business area on its own track rather than pinning the whole platform to a single dated version. The store catalog, contacts, members, bookings, the CMS, and events each have their own major versions, and a new major version of a module is a separate set of paths. Older versions are deprecated with a published removal date, so a caller moves module by module on its own timeline.
How does an agent get a list of records, like products or orders?+
Most read-of-many methods are a POST to a query or search method, not a GET, because the filter, sort, and paging are sent in the request body. For example, listing products is a POST to the catalog query or search method, and listing orders is a POST to the eCommerce orders search method. The response carries a cursor used to read the next page.
How does an app receive Wix events instead of polling?+
An app registers for the webhooks it wants, and Wix sends an HTTP POST to the app's endpoint when a matching event occurs on a site, like an order being created or a contact being added. The payload is delivered as a signed JSON Web Token, which the app verifies with its app secret to confirm the event came from Wix before acting on it.
What does a 429 response mean?+
A 429 means the caller has been throttled for sending too many requests in a short period. The documented guidance is to wait a minute and then retry. An integration should slow its request rate and back off when it sees a 429, rather than retrying immediately.
Related

More e-commerce API guides for agents

What is Bollard AI?

Control what every AI agent can do in Wix.

Bollard AI sits between a team's AI agents and Wix. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Wix key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Wix
Storefront Agent
View orders ResourceOffReadFull use
Create orders ActionOffReadFull use
Products ResourceOffReadFull use
Contacts ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Wix