> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vaanivoice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Campaign Results

> Get pre-signed download URL for campaign results CSV

## Get Campaign Results

Return a pre-signed download URL for the campaign results file.
Available only after post-processing completes.

***

## Path Parameters

**campaign\_id** `string` *required*

UUID of the campaign

***

## Example Request

```bash theme={null}
curl "https://api.vaanivoice.ai/api/campaigns/abc-123-xyz/results" \
  -H "X-API-Key: vaani_abc123..."
```

***

## Response `200 OK`

```json theme={null}
{
  "success": true,
  "download_url": "https://vaani-uat-storage.s3.amazonaws.com/campaigns/ebf4700b-603f-47d4-8e3a-d27b2a85a921/7bf64a21-27ca-40a8-aea9-89d56e08ccd9/test_camp_2026-08-25.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}
```

***

## Response Fields

**success** `boolean`

Whether the results URL was successfully generated

**download\_url** `string`

Pre-signed S3 URL for downloading the results CSV

***

## Results CSV Format

The results CSV contains all campaign contacts with call outcomes:

| Column | Description |
| - | - |
| `name` | Contact name |
| `phone_number` | Contact phone number |
| `call_status` | `completed`, `failed`, `no_answer`, `busy`, `cancelled` |
| `call_duration` | Call duration in seconds |
| `call_transcript` | Full conversation transcript |
| `call_summary` | AI-generated call summary |
| `call_tags` | Comma-separated outcome tags |
| `attempts` | Number of dial attempts |
| `last_attempt_at` | Timestamp of last attempt |

***

## Error Response `404 Not Found`

```json theme={null}
{
  "status_code": 404,
  "error": "Not Found",
  "message": "Campaign results not yet available. Post-processing status: processing",
  "code": "RESULTS_NOT_READY"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.