> ## 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: "https://sumvin.com/?interest=early_access&utm_source=docs&utm_medium=banner&utm_campaign=early_access#waitlist",
  payments: "https://sumvin.com/?interest=payments&utm_source=docs&utm_medium=banner&utm_campaign=payments#waitlist",
  openBanking: "https://sumvin.com/?interest=open_banking&utm_source=docs&utm_medium=banner&utm_campaign=open_banking#waitlist",
  developers: "https://sumvin.com/developers?interest=cli,agent_plugin&utm_source=docs&utm_medium=banner&utm_campaign=developers#access",
  verifiers: "https://sumvin.com/developers?interest=verifiers&utm_source=docs&utm_medium=banner&utm_campaign=verifiers#access"
};

<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={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
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={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import { unwrap } from "@sumvin/sdk";

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.