Wix Client

A Wix Client is used to call functionality from the Wix JavaScript SDK. APIs from the SDK's modules, such as bookings and ecom, are called using the API Client. The client also manages the authentication of SDK calls.

Tip: To learn how work with webhooks using a WixClient, see Handle Events With Webhooks.

createClient()

Creates a client instance with a designated authentication strategy, such as OAuthStrategy, AppStrategy, or ApiKeyStrategy. For guidance on selecting the appropriate strategy, see Authorization Strategies.

Syntax

Copy
1
createClient(config: {modules: object, auth: AuthenticationStrategy, headers: Headers, host: Host}): WixClient

Parameters

NameTypeDescription
configClientConfigClient configuration.
ClientConfig
NameTypeDescription
modulesobjectSDK modules to initialize for use with this client.
authAuthenticationStrategyAuthentication strategy to use for authenticating API calls, such as OAuthStrategy, AppStrategy, or APIKeyStrategy.
headersHeadersHeaders for client calls. Can be used to set alternative authentication credentials such as authorization tokens used when creating a client to be used in a Wix App.
hostHostAn API host. You only need to set a host when using a client to call hosted modules, such as the dashboard module.

Returns

WixClient

Properties

An instance of WixClient contains the following properties:

auth

The client's authentication strategy, such as OAuthStrategy, AppStrategy, or ApiKeyStrategy.

webhooks

Use to handle webhook events. The webhooks property offers the following methods and subproperties:

process()

Processes a webhook event represented by a JSON Web Token (JWT). This method verifies the JWT signature and payload, ensuring event authenticity.

Returns a promise that resolves after all registered handlers for the incoming webhook type are executed. If any of the handlers fail, the promise is rejected.

For an example, see Handle Events With Webhooks.

processRequest()

An extension of the .process() function that accepts a standard WebRequest instance, instead of the plain body object. This simplifies invocation by integrating with standard web request objects.

apps

Offers access to the following specific app-related events:

  • AppInstalled: Triggered when an app is installed. Provides details such as the appId of the installed app and the originInstanceId associated with the installation.
  • AppRemoved: Triggered when an app is removed. Provides details about the removed app, including its appId.

Functions

The following functions are available once you have a WixClient instance.

fetch()

Fetch a resource from the Wix REST API using the client's authentication.

Note: Only use this function if the functionality you're looking for doesn't yet exist in the JavaScript SDK. Otherwise, use the SDK version.

Syntax

Copy
1
fetch(relativeUrl: string, options: RequestInit): Promise<Response>

Parameters

NameTypeDescription
relativeUrlstringURL of the Wix REST API to call.
optionsRequestInitRequest options.

Returns

Response - Standard fetch() response.

setHeaders()

Sets headers for the client.

You can use the setHeaders() function to set headers such as an authorization header to be used for authentication when using the Wix JavaScript SDK from a Wix App.

Syntax

Copy
1
setHeaders(headers: Record<string, string>): void

Parameters

NameTypeDescription
headersRecord<string, string>Header information.

use()

Binds an SDK module with the client's authentication strategy and returns an initialized module.

Syntax

Copy
1
use(module: Module): InitializedModule

Parameters

NameTypeDescription
modulesModuleAn SDK module to bind with the client's authentication strategy.

Returns

InitializedModule - An initialized module bound to the client's authentication strategy.

Example

Copy
1
import stores from '@wix/stores';
2
3
// ...
4
5
const store = myWixClient.use(stores);
6
7
const { items } = await store.products.queryProducts().find();

graphql()

Executes a GraphQL query against the Wix GraphQL API.

Syntax

Copy
1
graphql<Result, Variables>(
2
query:
3
| string
4
| TypedQueryInput<Result, Variables>,
5
variables?: Variables,
6
opts: {
7
apiVersion: string;
8
} = {
9
apiVersion: 'alpha',
10
},
11
): Promise<{
12
data: Result;
13
errors?: GraphQLFormattedError[];
14
}>

Parameters

NameTypeDescription
queryTypedQueryInput<Result, Variables>A graphql query to execute. Supports query strings decorated with type information, for Result and Variables type inference.
variablesVariablesThe variables to use in the query.
opts.apiVersionstringThe version of the Wix GraphQL API to use (default: 'alpha').

Returns

Promise<{ data: Result; errors?: GraphQLFormattedError[]; }> - A promise with data as the Result of the query, and optionally errors with a list of errors while executing the query.

Example

Copy
1
const productsQuery = graphql(`
2
query Products($filter: JSON!) {
3
storesProductsV1Products(queryInput: { query: { filter: $filter }}) {
4
items {
5
name
6
}
7
}
8
}
9
`);
10
11
const { data } = await myWixClient.graphql(productsQuery, {
12
filter: {
13
name: {
14
$startsWith: query || ''
15
}
16
},
17
});
Was this helpful?
Yes
No