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

[@salesforce/b2c-tooling-sdk](../../modules.md) / [clients](../index.md) / createOcapiClient

# Function: createOcapiClient()

> **createOcapiClient**(`hostname`, `auth`, `options?`): [`OcapiClient`](../type-aliases/OcapiClient.md)

Defined in: [packages/b2c-tooling-sdk/src/clients/ocapi.ts:138](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/ocapi.ts#L138)

Creates a typed OCAPI Data API client.

Returns the openapi-fetch client directly, with authentication
handled via middleware. This gives full access to all openapi-fetch
features with type-safe paths, parameters, and responses.

**Note:** This client is typically accessed via `B2CInstance.ocapi` rather
than created directly. The `B2CInstance` class handles authentication setup.

## Parameters

### hostname

`string`

B2C instance hostname

### auth

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

Authentication strategy (typically OAuth)

### options?

Optional configuration including API version and middleware registry

`string` | [`OcapiClientOptions`](../interfaces/OcapiClientOptions.md)

## Returns

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

Typed openapi-fetch client

## Examples

```ts
// Via B2CInstance (recommended)
import { resolveConfig } from '@salesforce/b2c-tooling-sdk/config';
const config = resolveConfig();
const instance = config.createB2CInstance();
const { data, error } = await instance.ocapi.GET('/sites', {});
```

```ts
// Direct instantiation (advanced)
const client = createOcapiClient('sandbox.demandware.net', authStrategy);

// Fully typed GET request
const { data, error } = await client.GET('/sites', {
  params: { query: { select: '(**)' } }
});

// Path parameters are type-checked
const { data, error } = await client.GET('/sites/{site_id}', {
  params: { path: { site_id: 'RefArch' } }
});

// Request bodies are typed
const { data, error } = await client.PATCH('/code_versions/{code_version_id}', {
  params: { path: { code_version_id: 'v1' } },
  body: { active: true }
});
```
