Get up and running with the Vozzo Call Intelligence API in minutes. This guide will walk you through uploading your first call recording and extracting AI-powered insights.
Prerequisites
Before you begin, ensure you have:
- A Vozzo account with API access
- Your API key (format:
Bearer YOUR_JWT_TOKEN) - Organization UUID from your Vozzo account settings
- Call recording file in supported format (
WAV, MP3, OGG, WebM, max 100MB)
Step 1: Create an Analysis Use Case
First, create a use case to define how your call recordings should be analyzed. Use cases help organize recordings by scenario (sales, support, compliance, etc.).
Code
Understanding Use Case Parameters
| Parameter | Description | Example |
|---|---|---|
| org_uuid | Your organization identifier | 33bbb237-... |
| usecase_name | Human-readable name for the use case | "Lead Generation" |
| tags | Labels for organizing use cases | ["sales", "quality"] |
| analysis_questions | Custom questions to answer from calls | ["Is lead interested?"] |
| analysis_buckets | Categories for automatic classification | Hot/Warm/Cold Leads |
Code
Success! Save the usecase_uuid for uploading recordings.
Step 2: Generate Upload Link
Request a secure presigned URL for uploading your call recording. This is the recommended two-step upload process.
Code
Understanding Upload Parameters
Path parameters:
- client_name: Your organization identifier (e.g., "acme-corp")
- client_profile: Profile name for organizing uploads (e.g., "default", "sales-team")
Request body fields:
- file_name: Original file name with extension
- file_size: File size in bytes (max 104857600 = 100MB)
- content_type: MIME type (audio/wav, audio/mp3, audio/webm, etc.)
- metadata.usecase_uuid: Link recording to your analysis use case
Expected Response
Code
Step 3: Upload the Recording
Use the presigned URL from Step 2 to upload your audio file. The URL is valid for 15 minutes.
Code
Upload Complete! The recording will now be automatically transcribed and analyzed. This typically takes 2-5 minutes depending on file length.
Step 4: Check Processing Status
List Recordings in Use Case
Code
Check Specific Recording Status
Code
Processing States
Upload received, queued for processing
Audio transcribed, analysis in progress
Full analysis ready
Processing error occurred
Step 5: Retrieve Analysis Results
Once processing is complete, retrieve the transcript and AI-powered analytics for your call recording.
Get Transcript and Analytics
Code
Get Analytics Summary
Code
Get Detailed Analytics Breakdown
Code
Alternative: Direct Upload (Experimental)
For simpler workflows, you can upload files directly in a single request. This is experimental and may have size limitations.
Code
How To Integrate API's
Create Analysis Use Case
Endpoint
POST {{baseUrl}}/v1alpha/callintel/usecaseCreate a new analysis use case with specific parameters, tags, and storage buckets. Use cases help organize and configure how call recordings are analyzed for different scenarios.
Request Body
Unique identifier of the organization
Name of the use case
Description of the use case
List of tags associated with the use case
Buckets used to categorize or group data
Configuration for analysis parameters
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/usecase \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_name": "Lead generation",
"usecase_desc": "Analyze sales calls for quality",
"tags": ["sales", "quality"],
"buckets": ["bucket1", "bucket2"],
"analysis_config": {
"analysis_questions": [
"If the lead is interested in the loan offer. (Yes/No)"
],
"analysis_buckets": [
{
"objective_bucket_name": "Hot Lead",
"description": "If user is interested in the loan offer."
},
{
"objective_bucket_name": "Warm Lead",
"description": "if user shows no interest."
},
{
"objective_bucket_name": "Not Clear",
"description": "if it is not clear that user is not interested in loan offer."
}
]
}
}'Example Request Body
Code
Get Use Case Details
Endpoint
GET {{baseUrl}}/v1alpha/callintel/usecase/{usecase_uuid}
Retrieve detailed information about a specific analysis use case, including configuration, tags, buckets, and metadata.
Path Parameters
Unique identifier of the use case
curl --request GET \
--url https://backend.vozzo.ai/v1alpha/callintel/usecase/:usecase_uuid \
--header 'Authorization: <YOUR_API_KEY>'Example Response
Code
Update Use Case
Endpoint
PUT {{baseUrl}}/v1alpha/callintel/usecase/{usecase_uuid}
Update an existing analysis use case with new metadata, tags, buckets, or configuration.
Request Body
org_uuid
string · uuidusecase_name
stringusecase_desc
stringtags
string[]buckets
string[]analysis_config
objectcurl --request PUT \
--url https://backend.vozzo.ai/v1alpha/callintel/usecase/:usecase_uuid \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_name": "Lead gen updated",
"usecase_desc": "Analyze sales calls for quality",
"tags": ["sales", "quality", "good"],
"buckets": ["bucket1", "bucket2"]
}'Example Request Body
Code
Delete Use Case
Endpoint
DELETE {{baseUrl}}/v1alpha/callintel/usecase/{usecase_uuid}
Permanently deletes an analysis use case. Associated recordings are not removed.
Path Parameters
Unique identifier of the use case to delete
curl --request DELETE \
--url https://backend.vozzo.ai/v1alpha/callintel/usecase/:usecase_uuid \
--header 'Authorization: <YOUR_API_KEY>'Example Response
Code
Get Organization Use Cases
Endpoint
GET {{baseUrl}}/v1alpha/callintel/org-usecases/{org_uuid}
Retrieve a paginated list of all use cases for an organization with usage statistics.
Path Parameters
Unique identifier of the organization
Query Parameters
Page number for pagination
Number of use cases per page
Filter use cases by tag
curl --request GET \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/:org_uuid \
--header 'Authorization: <YOUR_API_KEY>'Example Response
Code
Create Secure Upload Link
Endpoint
POST {{baseUrl}}/v1alpha/callintel/{client_name}/{client_profile}/create-upload-link
Generate a pre-signed URL for securely uploading call recordings. This is the recommended two-step upload process: first get the upload link, then upload the file.
Path Parameters
Client organization identifier
Profile name for organizing analysis requests
Request Body
Original file name with extension
File size in bytes
MIME type of the file
Optional metadata about the call for enhanced analysis
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/:client_name/:client_profile/create-upload-link \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"file_name": "test.webm",
"file_size": 357741,
"content_type": "audio/webm",
"metadata": {
"usecase_uuid": "dab80fa1-8bd1-4411-9333-c46970d27a1a",
"call_date": "2025-12-04",
"call_type": "sales"
}
}'Example Request
Code
Example Response
Code
Direct Upload
Endpoint
POST {{baseUrl}}/v1alpha/callintel/{client_name}/{client_profile}/direct-upload
Directly upload a call recording in a single request. This experimental endpoint handles both file upload and analysis request creation in one step.
Path Parameters
Client organization identifier
Profile name for organizing analysis requests
Request Body
Audio file to upload
Optional use case UUID for analysis configuration
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/:client_name/:client_profile/direct-upload \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: multipart/form-data' \
--form file=@file.webm \
--form usecase_uuid=00000000-0000-0000-0000-000000000000Example Response
Code
Get Use Case Recordings
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/recordings
Retrieve a paginated list of all recordings associated with a specific use case, including processing status and metadata.
Request Body
Unique identifier of the use case
Page number for pagination (default: 1)
Number of recordings per page (default: 10)
Filter by processing state: INITIATED, TRANSCRIPTION_COMPLETED, ANALYSIS_COMPLETED, FAILED
Start date filter
End date filter
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/recordings \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"usecase_uuid": "dab80fa1-8bd1-4411-9333-c46970d27a1a",
"page": 1,
"limit": 10
}'Example Request
Code
Example Response
Code
Get Recording Details
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/get-recording-details
Retrieve detailed information about a specific recording including metadata, processing history, and file information.
Request Body Parameters
Unique identifier of the organization
Unique identifier of the use case
Unique identifier of the recording
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/get-recording-details \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_uuid": "dab80fa1-8bd1-4411-9333-c46970d27a1a",
"recording_uuid": "4cb66f57-f16b-461d-a670-6585b2fe9456"
}'Example Request
Code
Example Response
Code
Get Recording Transcript and Analytics
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/recording/transcript-analytics
Retrieve complete transcript and analytics for a specific recording including speaker analysis, timestamps, and confidence scores.
Request Body Parameters
Unique identifier of the organization
Unique identifier of the use case
Unique identifier of the recording
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/recording/transcript-analytics \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_uuid": "dab80fa1-8bd1-4411-9333-c46970d27a1a",
"recording_uuid": "4cb66f57-f16b-461d-a670-6585b2fe9456"
}'Example Request
Code
Example Response
Code
Get Analytics Summary Counts
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/analytics/summary-counts
Retrieve high-level summary counts for a specific use case including total calls, completed analytics, and completion percentages.
Request Body Parameters
Unique identifier of the organization
Unique identifier of the use case
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/analytics/summary-counts \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_uuid": "dab80fa1-8bd1-4411-9333-c46970d27a1a"
}'Example Request
Code
Example Response
Code
Get Detailed Analytics Summary
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/analytics/summary-details
Retrieve detailed analytics summary for a use case including categorization and tagging breakdowns. This endpoint provides insights into how recordings are categorized and tagged within the use case.
Request Body Parameters
Unique identifier of the organization
Unique identifier of the use case
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/analytics/summary-details \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"org_uuid": "33bbb237-6256-4c81-b423-a5bd16af5a32",
"usecase_uuid": "815545c1-61c1-4ec7-aa14-365a07909937"
}'Example Request
Code
Example Response
Code
Get Audio Presigned URL
Endpoint
POST {{baseUrl}}/v1alpha/callintel/org-usecases/recording/get-audio-presigned-url
Generate a presigned URL for securely accessing and streaming an audio recording. The URL is time-limited and provides direct access to the stored audio file.
Request Body Parameters
S3 object key for the audio recording
curl --request POST \
--url https://backend.vozzo.ai/v1alpha/callintel/org-usecases/recording/get-audio-presigned-url \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"s3_key": "vozzodev-org/default/recordings/4d2d68a1-5d25-4154-9dc4-b862196903ca.webm"
}'Example Request
Code
Example Response
Code
Common Pitfalls & Solutions
Problem: "Invalid or expired authentication token"
Solution: Ensure your API key is formatted correctly as Token YOUR_SECRET_API_KEY (with "Token" prefix)
Problem: "Agent not found"
Solution: Verify your agent UUID exists in the Vozzo platform and you have access to it
Problem: "Invalid phone number format"
Solution: Use E.164 format with country code: +[country_code][number] (e.g., +911234567890)
Problem: "Invalid date format"
Solution: Use YYYY-MM-DD format for dates (e.g., 2026-01-04)
Problem: "Metadata must be a valid JSON string"
Solution: Ensure metadata is a JSON string, not an object: "{"key":"value"}", not {"key":"value"}
Best Practices
Start Small
Begin with 2-5 test recipients before scaling to hundreds or thousands
Use Descriptive Names
Name campaigns clearly: "Q1_2026_Product_Launch" instead of "Campaign_1"
Set Realistic Time Windows
Consider recipient timezones and avoid early morning or late evening calls
Implement Error Handling
Always check response status codes and handle errors gracefully
Monitor Performance
Regularly check analytics to optimize retry settings and calling windows
Respect Privacy
Only call numbers with proper consent and follow local regulations
Next Steps
Support
Need help? We're here for you:
- Email:support@vozzo.ai
- Community Forum:Join discussions with other developers
- Documentation:Comprehensive guides and examples
- Issue Tracker:Report bugs and request features
