---
title: "Run Campaign"
method: POST
path: "/api/v1/campaigns/{campaign_id}/run"
tags: ["campaigns"]
---

# Run Campaign

`POST /api/v1/campaigns/{campaign_id}/run`

## Request

- Base URL: `https://app.kaminari.ad`
- URL: `https://app.kaminari.ad/api/v1/campaigns/{campaign_id}/run`
- Auth: HTTP bearer

Trigger a new run for all campaign geos.

## Path parameters

- `campaign_id` string, uuid, required

## Response `201`

Successful Response

- RunResponse: Run info with progress counters.
  - `id` string, uuid, required
  - `campaign_id` string, uuid, required
  - `label` string, required
  - `total` integer, required
  - `completed` integer, required
  - `failed` integer, required
  - `partial` integer, required
  - `cancelled` integer, required
  - `source` 'ui' | 'api', required: Where the run was initiated from. ``UI`` — explicit ``POST /campaigns/{id}/run`` from the dashboard. ``API`` — auto-created bucket for ``POST /api/v1/scans`` requests that carry a ``campaign_id`` but no ``run_id``. One API run per (campaign, organization, UTC-day).
  - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kaminari/apis/kaminari-ad-api.md) · [All operations](https://skmtc.dev/kaminari/apis/kaminari-ad-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaminari/apis/kaminari-ad-api/revisions/013f86e2fd32?raw)
