Skip to main content
GET
/
api
/
user-campaign-list
List Campaigns
curl --request GET \
  --url https://api.example.com/api/user-campaign-list
{
  "campaigns": [
    {
      "id": 123,
      "user_id": 123,
      "name": "<string>",
      "group_id": 123,
      "provider": "<string>",
      "say": "<string>",
      "audio": "<string>",
      "xml": "<string>",
      "status": "<string>",
      "created_at": {},
      "updated_at": {}
    }
  ],
  "error": "<string>"
}

Endpoint

GET /api/user-campaign-list

Authentication

This endpoint requires WordPress Integration Token authentication.
user_token
string
required
WordPress integration token for authenticating the user

Request

curl -X GET "https://your-domain.com/api/user-campaign-list?user_token=YOUR_USER_TOKEN" \
  -H "Accept: application/json"

Response

Returns an array of campaign objects associated with the authenticated user.
campaigns
array
Array of campaign objects
id
integer
Unique campaign identifier
user_id
integer
ID of the user who owns the campaign
name
string
Campaign name
group_id
integer
Contact group ID associated with the campaign
provider
string
Twilio provider identifier
say
string
Text-to-speech content for the campaign
audio
string
Audio file URL for the campaign
xml
string
TwiML XML content for advanced campaign configuration
status
string
Campaign status (e.g., active, paused, completed)
created_at
timestamp
Campaign creation timestamp
updated_at
timestamp
Campaign last update timestamp

Success Response

[
  {
    "id": 1,
    "user_id": 123,
    "name": "Summer Promotion Campaign",
    "group_id": 5,
    "provider": "twilio_primary",
    "say": "Hello! We have a special offer for you.",
    "audio": "https://your-domain.com/storage/campaigns/audio1.mp3",
    "xml": null,
    "status": "active",
    "created_at": "2026-03-01T10:30:00.000000Z",
    "updated_at": "2026-03-01T10:30:00.000000Z"
  },
  {
    "id": 2,
    "user_id": 123,
    "name": "Customer Feedback Survey",
    "group_id": 8,
    "provider": "twilio_secondary",
    "say": "We'd love to hear your feedback.",
    "audio": null,
    "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Say>Custom TwiML</Say></Response>",
    "status": "paused",
    "created_at": "2026-02-28T14:20:00.000000Z",
    "updated_at": "2026-03-02T09:15:00.000000Z"
  }
]

Error Responses

error
string
Error message describing what went wrong
Status CodeDescription
200Success - Returns campaign array
401Unauthorized - Invalid or missing user_token

Notes

  • Only campaigns belonging to the authenticated user are returned
  • Empty array is returned if user has no campaigns
  • All campaign fields from the database are included in the response

Example Use Cases

Display Campaigns in WordPress

<?php
// WordPress shortcode to display user campaigns
function display_user_campaigns() {
    $user_token = get_user_meta(get_current_user_id(), 'teleman_user_token', true);
    
    $response = wp_remote_get(
        'https://your-domain.com/api/user-campaign-list?user_token=' . $user_token
    );
    
    if (is_wp_error($response)) {
        return 'Error fetching campaigns';
    }
    
    $campaigns = json_decode(wp_remote_retrieve_body($response), true);
    
    $output = '<ul class="campaign-list">';
    foreach ($campaigns as $campaign) {
        $output .= '<li>' . esc_html($campaign['name']) . ' - ' . esc_html($campaign['status']) . '</li>';
    }
    $output .= '</ul>';
    
    return $output;
}
add_shortcode('teleman_campaigns', 'display_user_campaigns');

Filter Active Campaigns

const response = await fetch(
  `https://your-domain.com/api/user-campaign-list?user_token=${userToken}`
);
const campaigns = await response.json();

// Filter only active campaigns
const activeCampaigns = campaigns.filter(
  campaign => campaign.status === 'active'
);

console.log(`Found ${activeCampaigns.length} active campaigns`);

Start Campaign

Execute a campaign by ID

Authentication

Learn about authentication methods

Build docs developers (and LLMs) love