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

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

# Function: createDualBackend()

> **createDualBackend**\<`T`\>(`config`, `ctors`): `T`

Defined in: [packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts:80](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts#L80)

Resolves the user's preference + config availability into a concrete
backend instance.

- Explicit `'ocapi'` returns an OCAPI backend.
- Explicit `'scapi'` returns a SCAPI backend (throws if config missing).
- `'auto'` returns a fallback Proxy that tries SCAPI first and falls back to
  OCAPI on safe capability/auth/request rejections.

## Type Parameters

### T

`T` *extends* [`BackendBase`](../interfaces/BackendBase.md)

## Parameters

### config

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

### ctors

[`DualBackendCtors`](../interfaces/DualBackendCtors.md)\<`T`\>

## Returns

`T`

## Example

```ts
export function createJobsBackend(config: JobsBackendConfig): JobsBackend {
  return createDualBackend(config, {
    domainName: 'Jobs',
    Scapi: ScapiJobsBackend,
    Ocapi: OcapiJobsBackend,
  });
}
```
