# Create leads in bulk

### Create leads in bulk

`POST /api/v1/leads/bulk`

Operation ID: `createLeads`

Upserts up to 500 leads by identity, so re-sending a list settles onto the leads it created the first time rather than duplicating them. A row whose identity already belongs to a lead returns that lead as "matched", with the fields the row carried patched onto it. A row with no readable handle is skipped rather than failing the batch, since it could never be messaged. Same identity formats as POST /leads. Results come back in request order.

**Request body** (required)

- `leads` (object[], required)

**200**: One result per submitted row, in request order.

- `results` (object[], required)
- `requestId` (string · uuid, required): Id of this request, for support and troubleshooting

**Errors**

- `400`: Bad request
- `401`: Unauthorized: missing or invalid API key
- `403`: Forbidden
- `404`: Not found
- `422`: Invalid request payload
