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

# POST /v1/campaigns/:id/start — Start a Running Campaign

> POST /v1/campaigns/:id/start — Starts a draft or paused campaign, queueing the first sequence step for enrolled leads. Returns updated campaign status.

Use this endpoint to start or resume a campaign. When called on a `draft` campaign, Leadterra immediately begins queueing the first sequence step for all enrolled leads and transitions the campaign to `running` status. When called on a `paused` campaign, sending resumes from where it left off. The campaign must have at least one enrolled lead before you call this endpoint, otherwise the request will return an error.

```bash theme={null}
POST /v1/campaigns/:id/start
```

## Authorization

All requests must include a Bearer token in the `Authorization` header. You can find your API key in the Leadterra dashboard under **Settings → API Keys**.

## Path Parameters

<ParamField path="id" type="string" required>
  The unique ID of the campaign you want to start. You receive this ID when you [create a campaign](/api-reference/campaigns-create). Example: `camp_123`.
</ParamField>

## Request Body

This endpoint accepts no request body.

## Example Request

```bash theme={null}
curl --request POST \
  --url https://app.leadterra.co/v1/campaigns/camp_123/start \
  --header "Authorization: Bearer sk_live_YOUR_KEY" \
  --header "Content-Type: application/json"
```

## Response Fields

<ResponseField name="id" type="string">
  The campaign ID that was started.
</ResponseField>

<ResponseField name="status" type="string">
  Updated campaign status. Returns `running` on success.
</ResponseField>

<ResponseField name="startedAt" type="string">
  ISO 8601 timestamp of when the campaign transitioned to `running`.
</ResponseField>

## Example Response

```json theme={null}
{
  "id": "camp_123",
  "status": "running",
  "startedAt": "2025-01-15T11:00:00Z"
}
```

## Notes

* The campaign must have **at least one enrolled lead** before calling this endpoint. If no leads are enrolled, the API returns `400 Bad Request` with code `no_leads_enrolled`.
* Calling this endpoint on a campaign that is already `running` is a no-op — the response returns the current state without error.
* Once running, Leadterra respects the send volume limits of the assigned sender pool. Use the [Sender Pools](/api-reference/sender-pools) endpoint to check remaining capacity.

## Error Codes

| HTTP Status        | Code                    | Meaning                                                                  |
| ------------------ | ----------------------- | ------------------------------------------------------------------------ |
| `400 Bad Request`  | `no_leads_enrolled`     | The campaign has no enrolled leads and cannot be started.                |
| `400 Bad Request`  | `no_sequence_steps`     | The campaign has no sequence steps defined.                              |
| `401 Unauthorized` | `authentication_failed` | The `Authorization` header is missing, malformed, or the key is invalid. |
| `404 Not Found`    | `campaign_not_found`    | No campaign with the given `id` exists in your workspace.                |
