API Reference · Campaigns

Restart a campaign

Runs the whole campaign again from the top: every contact is queued again — including the ones already called — and calling starts straight away.

POST/campaigns/{campaign_id}/restart

https://calling.ubiqproject.com/api/v1/campaigns/{campaign_id}/restart · Auth: API key (full access)

Request

Path parameters

campaign_idstring (UUID)required
The campaign's ID.

No body.

Request
curl -X POST https://calling.ubiqproject.com/api/v1/campaigns/9b4e6f12-8a3c-4d71-b05e-2f6a8c1d7e93/restart \
  -H "Authorization: Bearer vk_live_YOUR_KEY"

What it does

Every contact goes back to the queue with its attempts reset to zero, the campaign becomes running, and started_at is set to now. It works in any state, including a campaign that is already running. Contacts your conditions filtered out stay filtered out.

Response

The campaign, now running.

Response · 200
{
  "id": "9b4e6f12-8a3c-4d71-b05e-2f6a8c1d7e93",
  "name": "October EMI reminders",
  "agent_id": "3f8c2a1e-6b4d-4c7a-9e21-5d0f7b8a9c34",
  "agent_name": "Priya",
  "phone_number": "+918046801234",
  "created_by": "",
  "concurrency": 5,
  "contacts_total": 3,
  "contacts_done": 0,
  "contacts_failed": 0,
  "contacts_pending": 3,
  "state": "running",
  "created_at": "2026-10-08T09:14:22.512341Z",
  "started_at": "2026-10-09T04:30:00.401276Z",
  "config": {
    "daily": {
      "enabled": true,
      "start": "10:00",
      "stop": "19:00",
      "timezone": "Asia/Kolkata"
    },
    "retry": {
      "enabled": true,
      "max_attempts": 3,
      "schedule": "custom",
      "days": 0,
      "hours": 2
    }
  }
}

Response fields

idstring (UUID)
The campaign's ID.
namestring
The campaign's name.
agent_idstring (UUID)
The AI employee that makes the calls.
agent_namestring
That AI employee's name.
phone_numberstring | null
The number calls are made from. null when the AI employee's own number is used.
created_bystring | null
Email of the dashboard user who created it. Empty when created with an API key.
concurrencyinteger
How many calls may run at the same time (1–20).
contacts_totalinteger
Every contact in the campaign, including ones your conditions filtered out.
contacts_doneinteger
Contacts whose call connected and finished.
contacts_failedinteger
Contacts that couldn't be reached after all attempts, plus contacts your conditions filtered out (never called).
contacts_pendinginteger
Contacts waiting to be called or on a call right now.
statestring
draft (not started), running, paused or done (every contact handled).
created_atstring (ISO 8601)
When it was created.
started_atstring | null
When it first started calling. null for a draft.
configobject
Calling hours, retries, conditions and more — see Create a campaign → config.

Export first

Restarting unlinks each contact from its previous call, so the previous results drop out of List contacts & calls and the export. Export the results before you restart if you need them.

Errors

Responses

Campaign not found404
No campaign with this ID in your company.
Invalid id400
campaign_id isn't a UUID.