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}/exporthttps://calling.ubiqproject.com/api/v1/campaigns/{campaign_id}/export · Auth: API key (full or read-only)
Request
Path parameters
campaign_idstring (UUID)requiredThe 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.csvResponse
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,,,,,,3Columns
Your columnsfirstEvery field your contacts had, in the order first seen. Contacts missing a field get an empty cell.
StatustextCompleted, In progress, Queued, Skipped (DNC), Voicemail, Rescheduled, No Answer, Busy, Canceled or Failed.OutcometextThe 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 8601The last attempt, or when the contact was added.
Duration (s)numberCall length in seconds.
Cost (USD)numberEstimated AI cost — only for AI employees on the Ultravox model.
SummarytextThe AI's summary of the call.
NotestextA short note taken from the call.
Recording URLURLLink to the recording. It opens only with a dashboard login.
AttemptsnumberCalls 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 found404No campaign with this ID in your company.
Invalid id400campaign_id isn't a UUID.