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

# List Campaigns

## List Campaigns

Retrieve a list of campaigns belonging to the authenticated user.

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.example.com/api/v1/campaigns" \
    -H "X-API-Key: your-api-key-here"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.example.com/api/v1/campaigns', {
    method: 'GET',
    headers: {
      'X-API-Key': 'your-api-key-here'
    }
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  headers = {
      'X-API-Key': 'your-api-key-here'
  }

  response = requests.get(
      'https://api.example.com/api/v1/campaigns',
      headers=headers
  )

  data = response.json()
  ```
</RequestExample>

## Response

<ResponseField name="status" type="object">
  Response status information

  <ResponseField name="code" type="integer">
    HTTP status code (200)
  </ResponseField>

  <ResponseField name="message" type="string">
    Status message
  </ResponseField>
</ResponseField>

<ResponseField name="data" type="array">
  Array of campaign objects

  <ResponseField name="id" type="integer">
    Campaign ID
  </ResponseField>

  <ResponseField name="name" type="string">
    Campaign name
  </ResponseField>

  <ResponseField name="status" type="string">
    Current campaign status
  </ResponseField>

  <ResponseField name="elevenlabs_batch_call_id" type="string" nullable>
    Associated ElevenLabs batch call ID
  </ResponseField>

  <ResponseField name="recipients_count" type="integer">
    Number of recipients in the campaign
  </ResponseField>

  <ResponseField name="scheduled_at" type="string" nullable>
    ISO 8601 timestamp when campaign is scheduled (if scheduled)
  </ResponseField>

  <ResponseField name="send_immediately" type="boolean">
    Whether the campaign was sent immediately
  </ResponseField>

  <ResponseField name="created_at" type="string">
    ISO 8601 creation timestamp
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "status": {
      "code": 200,
      "message": "Success"
    },
    "data": [
      {
        "id": 1,
        "name": "Q1 Product Launch Campaign",
        "status": "completed",
        "elevenlabs_batch_call_id": "batch_abc123",
        "recipients_count": 500,
        "scheduled_at": null,
        "send_immediately": true,
        "created_at": "2024-01-15T10:30:00Z"
      }
    ]
  }
  ```
</ResponseExample>

## Error Responses

<ResponseField name="401" type="object">
  Unauthorized - Invalid or missing authentication
</ResponseField>
