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}/restarthttps://calling.ubiqproject.com/api/v1/campaigns/{campaign_id}/restart · Auth: API key (full access)
Request
Path parameters
campaign_idstring (UUID)requiredThe 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.
namestringThe campaign's name.
agent_idstring (UUID)The AI employee that makes the calls.
agent_namestringThat AI employee's name.
phone_numberstring | nullThe number calls are made from. null when the AI employee's own number is used.
created_bystring | nullEmail of the dashboard user who created it. Empty when created with an API key.
concurrencyintegerHow many calls may run at the same time (1–20).
contacts_totalintegerEvery contact in the campaign, including ones your conditions filtered out.
contacts_doneintegerContacts whose call connected and finished.
contacts_failedintegerContacts that couldn't be reached after all attempts, plus contacts your conditions filtered out (never called).
contacts_pendingintegerContacts waiting to be called or on a call right now.
statestringdraft (not started), running, paused or done (every contact handled).created_atstring (ISO 8601)When it was created.
started_atstring | nullWhen it first started calling. null for a draft.
configobjectCalling 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 found404No campaign with this ID in your company.
Invalid id400campaign_id isn't a UUID.