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

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

# Function: createOdsClient()

> **createOdsClient**(`config`, `auth`): [`OdsClient`](../type-aliases/OdsClient.md)

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

Creates a typed ODS (On-Demand Sandbox) 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.

## Parameters

### config

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

ODS client configuration

### auth

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

Authentication strategy (typically OAuth)

## Returns

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

Typed openapi-fetch client

## Examples

```ts
// Create ODS client with OAuth auth
const oauthStrategy = new OAuthStrategy({
  clientId: 'your-client-id',
  clientSecret: 'your-client-secret',
});

const client = createOdsClient({}, oauthStrategy);

// Get user info
const { data, error } = await client.GET('/me', {});
if (data) {
  console.log('User:', data.data?.user?.name);
  console.log('Realms:', data.data?.realms);
}
```

```ts
// Get system info
const { data, error } = await client.GET('/system', {});
if (data) {
  console.log('Region:', data.data?.region);
  console.log('Sandbox IPs:', data.data?.sandboxIps);
}
```

```ts
// List all sandboxes
const { data, error } = await client.GET('/sandboxes', {});
if (data) {
  for (const sandbox of data.data ?? []) {
    console.log(`${sandbox.id}: ${sandbox.state}`);
  }
}
```

```ts
// Create a new sandbox
const { data, error } = await client.POST('/sandboxes', {
  body: {
    realm: 'abcd',
    ttl: 24,
    resourceProfile: 'medium',
  }
});
```

```ts
// Start a sandbox
const { data, error } = await client.POST('/sandboxes/{sandboxId}/operations', {
  params: { path: { sandboxId: 'sandbox-uuid' } },
  body: { operation: 'start' }
});
```
