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

# endstate.chips.pairBulk

> Pairs many chips from one collection in a single request.

```ts theme={null}
pairBulk(body: CreateChipsBulkRequest, options?: IdempotentRequestOptions): Promise<CreateChipsBulkResponse>
```

|                 |                                                                  |
| --------------- | ---------------------------------------------------------------- |
| Endpoint        | [`POST /v1/chips/bulk`](/api-reference/chips/pair-chips-in-bulk) |
| Credential      | Secret key (`end_sk_...`)                                        |
| Retry class     | `keyed`                                                          |
| Idempotency key | Accepted                                                         |

Carries an idempotency key. Retried on network failure, timeout, `429`, and `409 idempotency.in_progress` - never on a `5xx`.

## Example

```ts theme={null}
const result = await endstate.chips.pairBulk({
  chips: [],
});
```

## Parameters

<ParamField body="chips" type="object[]" required />

## Returns

`201` - `CreateChipsBulkResponse`.

<ResponseField name="chips" type="object[]" required />

## Errors

Branch on `error.code`, never on the HTTP status - several codes share one.

| Code                          | HTTP | Retry            |
| ----------------------------- | ---- | ---------------- |
| `auth.forbidden`              | 403  | Do not retry     |
| `auth.unauthorized`           | 401  | Do not retry     |
| `chip.already_paired`         | 409  | Do not retry     |
| `chip.bulk_mixed_collections` | 400  | Do not retry     |
| `chip.bulk_pending`           | 409  | Wait, then retry |
| `chip.invalid_e_value`        | 422  | Do not retry     |
| `chip.not_found`              | 404  | Do not retry     |
| `collection.not_active`       | 409  | Wait, then retry |
| `idempotency.in_progress`     | 409  | Safe to retry    |
| `idempotency.key_conflict`    | 409  | Do not retry     |
| `internal.error`              | 500  | Safe to retry    |
| `unit.issuance_pending`       | 409  | Wait, then retry |
| `unit.not_found`              | 404  | Do not retry     |
| `validation.failed`           | 400  | Do not retry     |

See [Errors and retries](/sdks/core/errors-and-retries) for the error types and how to narrow them.
