Uploads a call recording (mp3 or wav) and creates a complete call record including campaign, call flow, tags, custom sources, and caller metadata.
File input (one of):
recording_file — attach an audio file directly (multipart/form-data)recording_url — provide a public URL to download the recording fromRequired fields: call_date, org_unit_id, caller_id, ring_to
Records created alongside the call: with neither campaign_id nor phone_number, the group's "API Upload Campaign - " is reused or created (counting toward the campaign total). Unless phone_number matches an existing route, an internal "API Upload" provisioned route (status deleted, so it never routes live calls or appears in route lists) is created for the call; with no phone_number the call's tracking number is recorded as 1111111111. Tags (always including the API tag) and custom sources are created when new.
validate_only=true runs every check (fields, group/campaign access, agent, external_id) without a recording and creates nothing.
The call is processed asynchronously through the PCP pipeline after the response is returned.
curl --location 'https://platform-api.convirza.com/v3/conversations/calls/upload' \
--header 'Authorization: Bearer <token>' \
--form 'recording_file=@""' \
--form 'recording_url="https://example.com/recording.mp3"' \
--form 'call_date="2026-01-15T10:30:00.000Z"' \
--form 'org_unit_id="1001"' \
--form 'caller_id="5551234567"' \
--form 'ring_to="5559876543"' \
--form 'phone_number="5559990000"' \
--form 'campaign_id="200"' \
--form 'channel_id="56"' \
--form 'external_id="ext-call-abc123"' \
--form 'disposition="ANSWERED"' \
--form 'assign_to="agent@example.com"' \
--form 'is_outbound="false"' \
--form 'swap_channels="false"' \
--form 'transcribe="false"' \
--form 'tag_name="sales"' \
--form 'tag_name="follow-up"' \
--form 'custom_source_type_1="Google"' \
--form 'custom_source_type_2="Organic"' \
--form 'custom_source_type_3=""' \
--form 'custom_source_type_4=""' \
--form 'custom_source_type_5=""' \
--form 'company_name=""' \
--form 'caller_name=""' \
--form 'address=""' \
--form 'city=""' \
--form 'state=""' \
--form 'zip_code="84101"' \
--form 'line_type="VOIP"' \
--form 'validate_only="false"'{
"code": 200,
"message": "Success",
"data": {
"sp_call_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"conversation_analytics_enabled": true,
"scorecard_applied": true
},
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-01-20T12:34:56.789Z"
}