Set Up a Wix Client

A Wix client is an object you create in your code to make authenticated calls to the Wix JavaScript SDK from self-hosted environments, such as self-hosted apps or headless projects. The client manages authentication and provides access to the SDK modules you specify.

When you need a client

You need to create a Wix client in these environments:

You don't need to create a client if you are developing in these Wix-hosted environments:

In these cases, you can call the SDK's APIs directly and authentication is handled automatically.

Create a client

In cases where you need to create a client, call the createClient() method and provide values for:

Refer to the examples below to see how to create a client using these parameters for a number of different scenarios.

Authorization strategies (auth)

The correct strategy depends on your context and the identity you want to use. To learn more about identities, see About Identities.

The following strategies are available:

  • AppStrategy: For Wix apps. Requires app credentials and instance ID.
  • OAuthStrategy: For visitors or members in headless projects. Requires a client ID and tokens.
  • ApiKeyStrategy: Use for admin access in headless, channel, or enterprise contexts. Requires an API key and site or account ID.
  • Host module auth: For dashboard, editor, and site pages in Wix apps. Auth is handled by the host module.

The strategy you should use depends on your context. The following table outlines the supported authorization strategies, the cases they apply to, and the parameters needed to create the strategies:

ContextIdentityStrategy
Wix app (backend extension)App, Visitor, MemberAppStrategy
Wix app (dashboard page)Wix userHost module auth
Wix app (editor/site page)Visitor, MemberHost module auth
Headless site or appVisitor, MemberOAuthStrategy
Headless site or appAdminApiKeyStrategy
Wix Channel/Enterprise appAdminApiKeyStrategy

Learn more about Authorization Strategies.

Hosted context (host)

Depending on the context in which you are making API calls, you may need to specify a host.

  • In self-hosted apps:
    • When working in a hosted context, such as the dashboard or editor, use the relevant host module's host() method to specify the host when creating a client.
    • When working in a non-hosted context, such as your app backend, don't specify a host when creating a client.
  • In Headless sites and apps, you never need to specify a host when creating a client.
  • In apps created with the Wix CLI, you don't use a client, so you never need to specify a host.

Each hosted context has its own host module. The host modules are:

SDK modules (modules)

In all cases, when creating a client, you need to specify which SDK modules you want to call using that client. Simply list the imported modules you want to call.

Code examples

The following code examples show how to create a client in different contexts and with different authorization strategies.

Headless as a visitor (OAuthStrategy)

Create a client to call Bookings Services APIs as a site visitor using the OAuthStrategy for a Headless site or app:

Copy

Headless or Wix App as an admin (ApiKeyStrategy)

Copy

Wix app as a Wix app (AppStrategy)

Create a client to call Bookings Services APIs as the Wix app identity using the AppStrategy for a Wix app:

Copy

Wix app as a Wix user in the dashboard

Create a client to call Bookings Services and Dashboard APIs as a Wix user using the dashboard host for a Wix app:

Copy

Wix app as a site visitor or member in the editor (or site)

Create a client to call Bookings Services and Editor APIs as a site visitor or member using the editor host for a Wix app:

Copy

Wix app as a visitor or member in the backend

Call Bookings Services APIs as a site visitor or member in the backend of a Wix app. To do so, you need to pass a visitor or member access token from the frontend:

Copy
Copy

See also

Did this help?