# Bulk actions

`POST /api/v1/fairs/{id}/leads/bulk`

Selected leads (max 200): `convert` — converts with the default matching (already converted ones go to `skipped`), `assign` — changes the owner (no permission → `skipped`). Response `done`, `skipped`, `errors`, `msg`.

## Path parameters

| Field | Type | Description |
|---|---|---|
| `id` (required) | integer | Fair id. |

## Body

| Field | Type | Description |
|---|---|---|
| `act` (required) | string | Action. Values: `convert`, `assign` |
| `ids` (required) | array<integer> | Lead ids. |
| `make_project` | boolean | convert: open an opportunity. |
| `make_visit` | boolean | convert: fair visit. |
| `owner_id` | integer | assign: new owner. |

## Response

```json 200
{
  "done": [
    2,
    3
  ],
  "msg": "2 leadin sorumlusu: Deniz Aksoy.",
  "ok": true,
  "skipped": []
}
```
