API Reference · Campaigns

Export results (CSV)

Downloads the campaign as a spreadsheet: one row per contact, with every column you uploaded followed by what happened on the call. It's the same file as the dashboard's Export button.

GET/campaigns/{campaign_id}/export

https://calling.ubiqproject.com/api/v1/campaigns/{campaign_id}/export · Auth: API key (full or read-only)

Request

Path parameters

campaign_idstring (UUID)required
The campaign's ID.
Request
curl https://calling.ubiqproject.com/api/v1/campaigns/9b4e6f12-8a3c-4d71-b05e-2f6a8c1d7e93/export \
  -H "Authorization: Bearer vk_live_YOUR_KEY" \
  -o results.csv

Response

200 with Content-Type: text/csv, sent as a download named after the campaign, such as October_EMI_reminders-export.csv.

results.csv
phone,name,emi_amount,due_date,Status,Outcome,Date of Calling,Duration (s),Cost (USD),Summary,Notes,Recording URL,Attempts
+919876543210,Rahul Verma,4500,15 Oct,Completed,Promise To Pay,2026-10-08T09:15:12.640118+00:00,96,0.080412,Rahul confirmed he will pay the ₹4500 EMI by 15 October.,Salary comes on the 14th.,https://calling.ubiqproject.com/api/v1/calls/b8f1d3a5-7c2e-4a64-9f08-3d5e7a1c9b62/recording,1
+919812345678,Anita Desai,12000,18 Oct,Queued,,2026-10-08T09:15:12.702264+00:00,,,,,,2
+919898012345,Imran Khan,7800,20 Oct,No Answer,No Answer,2026-10-08T09:15:13.118440+00:00,,,,,,3

Columns

Your columnsfirst
Every field your contacts had, in the order first seen. Contacts missing a field get an empty cell.
Statustext
Completed, In progress, Queued, Skipped (DNC), Voicemail, Rescheduled, No Answer, Busy, Canceled or Failed.
Outcometext
The result read from the transcript, using your config.outcomes labels when they match. For calls that never connected, the Status instead. Empty while waiting.
Date of CallingISO 8601
The last attempt, or when the contact was added.
Duration (s)number
Call length in seconds.
Cost (USD)number
Estimated AI cost — only for AI employees on the Ultravox model.
Summarytext
The AI's summary of the call.
Notestext
A short note taken from the call.
Recording URLURL
Link to the recording. It opens only with a dashboard login.
Attemptsnumber
Calls made so far, counting the first. Shows 1 for a contact not yet called.

Recordings need a login

The Recording URL works in a browser where someone is logged in to the dashboard. It can't be downloaded with an API key.

Errors

Responses

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