---
title: "Overview"
description: "Create and manage outbound calling campaigns"
---

A **campaign** runs a workflow against a list of contacts. You upload a CSV of phone numbers, configure retry logic and scheduling, then start the campaign. Dograh dials contacts automatically up to your configured concurrency limit.

| Method | Endpoint | Quick Link |
|---|---|---|
| `POST` | `/s3/presigned-upload-url` | [Upload contacts CSV](/api-reference/campaigns/upload-contacts) |
| `POST` | `/campaign/create` | [Create a campaign](/api-reference/campaigns/create) |
| `GET` | `/campaign/` | [List campaigns](/api-reference/campaigns/list) |
| `GET` | `/campaign/{campaign_id}` | [Get a campaign](/api-reference/campaigns/get) |
| `PATCH` | `/campaign/{campaign_id}` | [Update a campaign](/api-reference/campaigns/update) |
| `POST` | `/campaign/{campaign_id}/start` | [Start](/api-reference/campaigns/start) |
| `POST` | `/campaign/{campaign_id}/pause` | [Pause](/api-reference/campaigns/pause) |
| `POST` | `/campaign/{campaign_id}/resume` | [Resume](/api-reference/campaigns/resume) |
| `GET` | `/campaign/{campaign_id}/progress` | [Get campaign progress](/api-reference/campaigns/progress) |
| `GET` | `/campaign/{campaign_id}/runs` | [Get campaign call runs](/api-reference/campaigns/runs) |

## Campaign status values

| Status | Description |
|---|---|
| `draft` | Created but not started |
| `running` | Actively dialing contacts |
| `paused` | Temporarily stopped; can be resumed |
| `completed` | All contacts processed |
| `failed` | Campaign encountered a fatal error |
