> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sumvin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Make a client

> Create a Sumvin API client with createSumvinClient and pass it to every operation.

export const waitlists = {
  earlyAccess: "",
  payments: "",
  openBanking: "",
  developers: "",
  verifiers: ""
};

<Note>
  **Private preview:** this is rolling out and may not be available on your account yet.{waitlists.earlyAccess ? <> <a href={waitlists.earlyAccess}>Request early access →</a></> : null}
</Note>

Every call goes through a client you create once with `createSumvinClient`. Each operation takes that client as `{ client }`.

```ts theme={null}
import { createSumvinClient, listAgentIdentities } from "@sumvin/sdk";

const client = createSumvinClient({
  baseUrl: "https://api.sumvin.com",
  auth: [/* see Sign in */],
});

const { data, error } = await listAgentIdentities({ client });
```

## Options

| Option       | Required | What it does                                                                                               |
| ------------ | -------- | ---------------------------------------------------------------------------------------------------------- |
| `baseUrl`    | Yes      | The API address.                                                                                           |
| `auth`       | No       | How requests authenticate. Leave it out for an unauthenticated client. See [Sign in](/sdk/agents/sign-in). |
| `fetch`      | No       | Your own `fetch`, for proxies or runtimes where you don't want the global one.                             |
| `headers`    | No       | Headers added to every request.                                                                            |
| `validation` | No       | Response validation settings. Validation is on by default.                                                 |
| `timeoutMs`  | No       | A per-request timeout, in milliseconds. No timeout by default.                                             |

## What a call returns

Each operation returns `{ data, error }`. Check `error` before you use `data`, or pass the result to `unwrap`, which returns `data` or throws. See [Errors](/sdk/errors).

```ts theme={null}
import { unwrap } from "@sumvin/sdk";

const identities = unwrap(await listAgentIdentities({ client }));
```
