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

# Node SDK — campaigns

> Node SDK reference for Kataven outbound campaigns — bulk-dial from CSV with cap-aware concurrency and live SSE metrics.

`CampaignsResource` is reachable on every Kataven Node client as `client.campaigns`. Each method maps to one HTTP endpoint on the [Hub API](/api-reference/introduction); links to the underlying spec entry are inline below.

Bulk outbound campaigns dialled from CSV with cap-aware concurrency, retry logic, and live progress metrics over Server-Sent Events.

## Methods at a glance

| Method         | HTTP                                  | Summary                     |
| -------------- | ------------------------------------- | --------------------------- |
| `list`         | `GET /api/v1/campaigns`               | List campaigns              |
| `get`          | `GET /api/v1/campaigns/{id}`          | Get a campaign              |
| `start`        | `POST /api/v1/campaigns/{id}/start`   | Start a campaign            |
| `pause`        | `POST /api/v1/campaigns/{id}/pause`   | Pause a running campaign    |
| `resume`       | `POST /api/v1/campaigns/{id}/resume`  | Resume a paused campaign    |
| `stop`         | `POST /api/v1/campaigns/{id}/stop`    | Stop a campaign permanently |
| `delete`       | `DELETE /api/v1/campaigns/{id}`       | Delete a campaign           |
| `listContacts` | `GET /api/v1/campaigns/{id}/contacts` | List contacts in a campaign |

## Reference

### `client.campaigns.list(...)`

List campaigns

**HTTP** — `GET /api/v1/campaigns` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/getApiV1Campaigns)

```typescript theme={null}
list()
```

### `client.campaigns.get(...)`

Get a campaign

**HTTP** — `GET /api/v1/campaigns/{id}` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/getApiV1CampaignsById)

```typescript theme={null}
get(id: string)
```

### `client.campaigns.start(...)`

Start a campaign

**HTTP** — `POST /api/v1/campaigns/{id}/start` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/postApiV1CampaignsByIdStart)

```typescript theme={null}
start(id: string)
```

Flips the campaign from `draft`/`paused` to `running`. The dispatcher goroutine begins originating calls subject to per-tenant rate caps.

### `client.campaigns.pause(...)`

Pause a running campaign

**HTTP** — `POST /api/v1/campaigns/{id}/pause` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/postApiV1CampaignsByIdPause)

```typescript theme={null}
pause(id: string)
```

Stops the dispatcher from originating new calls; in-flight calls finish naturally.

### `client.campaigns.resume(...)`

Resume a paused campaign

**HTTP** — `POST /api/v1/campaigns/{id}/resume` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/postApiV1CampaignsByIdResume)

```typescript theme={null}
resume(id: string)
```

### `client.campaigns.stop(...)`

Stop a campaign permanently

**HTTP** — `POST /api/v1/campaigns/{id}/stop` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/postApiV1CampaignsByIdStop)

```typescript theme={null}
stop(id: string)
```

Terminal state — no further dispatches, contacts in `pending` move to `cancelled`. Cannot be reversed; create a new campaign to redo the work.

### `client.campaigns.delete(...)`

Delete a campaign

**HTTP** — `DELETE /api/v1/campaigns/{id}` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/deleteApiV1CampaignsById)

```typescript theme={null}
delete(id: string)
```

Refuses if the campaign is `running`. Pause or stop it first.

### `client.campaigns.listContacts(...)`

List contacts in a campaign

**HTTP** — `GET /api/v1/campaigns/{id}/contacts` · [API reference →](/api-reference/introduction#tag/Campaigns/operation/getApiV1CampaignsByIdContacts)

```typescript theme={null}
listContacts(id: string, opts: { status?: string; page?: number } = {})
```
