# Options

endpoint, timeoutMs, retries, logger, transport.

Every option is documented in the shipped type declarations (`dist/index.d.ts`). These are the ones worth knowing before you read them.

| Option | Default | Notes |
| --- | --- | --- |
| `endpoint` | `https://edge.splitch.dev` | override for self-hosted or preview targets |
| `timeoutMs` | `5000` | per-call timeout; a timeout is an ERROR, not a default |
| `retries` | `0` | must stay `0`; reuse `idempotencyKey` instead |
| `logger` | `console` | receives every fail-loud report |
| `transport` | built-in `fetch` adapter | injectable seam for tests |

## Options that throw

These are validated at construction so a misconfigured client fails on the first line rather than corrupting Exposure data at request time.

- [SDK_RETRIES_INVALID](/docs/error/SDK_RETRIES_INVALID): `retries` is anything but `0`.
- [SDK_SEEN_SET_MAX_SIZE_INVALID](/docs/error/SDK_SEEN_SET_MAX_SIZE_INVALID): the dedup seen-set bound is not a positive integer.
- [SDK_SEEN_SET_TTL_INVALID](/docs/error/SDK_SEEN_SET_TTL_INVALID): the dedup TTL is not a positive duration.

Source: https://splitch.dev/docs/sdk/options