---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [instance](../index.md) / B2CInstance

# Class: B2CInstance

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:88](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L88)

Represents a connection to a B2C Commerce instance.

Provides lazy-loaded, typed API clients for WebDAV and OCAPI operations.
Authentication is handled automatically based on the configured credentials.

## Example

```ts
// From configuration (recommended)
import { resolveConfig } from '@salesforce/b2c-tooling-sdk/config';

const config = resolveConfig({
  clientId: process.env.SFCC_CLIENT_ID,
  clientSecret: process.env.SFCC_CLIENT_SECRET,
});
const instance = config.createB2CInstance();

// WebDAV uses Basic auth if available, falls back to OAuth
await instance.webdav.mkcol('Cartridges/v1');

// OCAPI always uses OAuth
const { data } = await instance.ocapi.GET('/sites', {});
```

## Constructors

### Constructor

> **new B2CInstance**(`config`, `auth`): `B2CInstance`

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:98](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L98)

Creates a new B2CInstance.

#### Parameters

##### config

[`InstanceConfig`](../interfaces/InstanceConfig.md)

Instance configuration (hostname, code version)

##### auth

[`AuthConfig`](../../auth/interfaces/AuthConfig.md)

Authentication configuration

#### Returns

`B2CInstance`

## Properties

### auth

> `readonly` **auth**: [`AuthConfig`](../../auth/interfaces/AuthConfig.md)

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:100](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L100)

Authentication configuration

***

### config

> `readonly` **config**: [`InstanceConfig`](../interfaces/InstanceConfig.md)

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:99](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L99)

Instance configuration (hostname, code version)

## Accessors

### ocapi

#### Get Signature

> **get** **ocapi**(): [`OcapiClient`](../../clients/type-aliases/OcapiClient.md)

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:146](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L146)

OCAPI Data API client.

Returns the openapi-fetch client directly with full type safety.
Always uses OAuth authentication.

##### Example

```ts
const { data, error } = await instance.ocapi.GET('/sites', {});
const { data, error } = await instance.ocapi.PATCH('/code_versions/{code_version_id}', {
  params: { path: { code_version_id: 'v1' } },
  body: { active: true }
});
```

##### Returns

[`OcapiClient`](../../clients/type-aliases/OcapiClient.md)

***

### webdav

#### Get Signature

> **get** **webdav**(): [`WebDavClient`](../../clients/classes/WebDavClient.md)

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:122](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L122)

WebDAV client for file operations.

Uses Basic auth if username/password are configured,
otherwise falls back to OAuth.

##### Example

```ts
await instance.webdav.mkcol('Cartridges/v1');
await instance.webdav.put('Cartridges/v1/app.zip', content);
const entries = await instance.webdav.propfind('Cartridges');
```

##### Returns

[`WebDavClient`](../../clients/classes/WebDavClient.md)

***

### webdavHostname

#### Get Signature

> **get** **webdavHostname**(): `string`

Defined in: [packages/b2c-tooling-sdk/src/instance/index.ts:107](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/instance/index.ts#L107)

The hostname to use for WebDAV operations.
Falls back to main hostname if not specified.

##### Returns

`string`
