Overview

Returns a paginated list of all channels for your client. Channels are digital signage displays that show scheduled content. This endpoint supports pagination and search to help you find specific channels.

Security: Only returns channels for the client associated with your API key.

Request

Endpoint

HTTP Request
GET https://api.pixelsuite.com.au/v1/channels

Query Parameters

Parameter Type Required Default Description
page integer No 1 Page number (min: 1)
limit integer No 50 Results per page (min: 1, max: 100)
search string No - Search by channel name (case-insensitive)

Example Requests

Basic Request
curl -X GET "https://api.pixelsuite.com.au/v1/channels" \
  -H "Authorization: Bearer YOUR_API_KEY"
With Pagination
curl -X GET "https://api.pixelsuite.com.au/v1/channels?page=2&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
With Search
curl -X GET "https://api.pixelsuite.com.au/v1/channels?search=lobby" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

Success Response (200 OK)

JSON
{
  "success": true,
  "data": {
    "channels": [
      {
        "ID": 123,
        "name": "Main Lobby Display",
        "guid": "abc123-def456-ghi789",
        "isShowClock": false,
        "configuration": {
          "brightness": 80,
          "volume": 50
        },
        "isActive": true,
        "createdAt": "2024-01-15 10:00:00",
        "updatedAt": "2024-02-10 14:30:00"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 50,
      "total": 25,
      "totalPages": 1,
      "hasMore": false
    }
  }
}

Response Fields

Field Type Description
ID integer Channel ID
name string Channel display name
guid string Unique identifier (use for fetching content)
isShowClock boolean Whether to display a clock
configuration object Channel-specific settings
isActive boolean Whether channel is active
createdAt string Creation timestamp
updatedAt string Last modified timestamp

Error Responses

401 Unauthorized

Invalid or missing API key.

{
  "success": false,
  "error": "Unauthorized",
  "message": "Invalid or missing API key"
}

400 Bad Request

Invalid parameters (e.g., limit exceeds 100).

{
  "success": false,
  "error": "Validation failed",
  "message": "Parameter 'limit' must not exceed 100"
}

Use Cases

Channel Selection

Build a dropdown or list for users to select which channel to display or manage.

Find Channels

Search channels by name to quickly locate specific displays in large deployments.

Channel Inventory

Build a management dashboard showing all channels with their current status.

Configuration Check

Review channel settings and configurations across your entire deployment.

Code Examples

PHP
<?php
$apiKey = 'YOUR_API_KEY';
$url = 'https://api.pixelsuite.com.au/v1/channels?page=1&limit=20&search=lobby';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer {$apiKey}"
]);

$response = curl_exec($ch);
$data = json_decode($response, true);

if ($data['success']) {
    foreach ($data['data']['channels'] as $channel) {
        echo "Channel: {$channel['name']}\n";
        echo "GUID: {$channel['guid']}\n";
        echo "Active: " . ($channel['isActive'] ? 'Yes' : 'No') . "\n\n";
    }

    $pagination = $data['data']['pagination'];
    echo "Page {$pagination['page']} of {$pagination['totalPages']}\n";
}

curl_close($ch);
JavaScript
const apiKey = 'YOUR_API_KEY';
const url = 'https://api.pixelsuite.com.au/v1/channels?page=1&limit=20&search=lobby';

fetch(url, {
  headers: {
    'Authorization': `Bearer ${apiKey}`
  }
})
.then(res => res.json())
.then(data => {
  if (data.success) {
    data.data.channels.forEach(channel => {
      console.log(`Channel: ${channel.name}`);
      console.log(`GUID: ${channel.guid}`);
      console.log(`Active: ${channel.isActive ? 'Yes' : 'No'}\n`);
    });

    const { page, totalPages } = data.data.pagination;
    console.log(`Page ${page} of ${totalPages}`);
  }
})
.catch(error => console.error('Error:', error));
Python
import requests

api_key = 'YOUR_API_KEY'
url = 'https://api.pixelsuite.com.au/v1/channels'

headers = {
    'Authorization': f'Bearer {api_key}'
}

params = {
    'page': 1,
    'limit': 20,
    'search': 'lobby'
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

if data['success']:
    for channel in data['data']['channels']:
        print(f"Channel: {channel['name']}")
        print(f"GUID: {channel['guid']}")
        print(f"Active: {'Yes' if channel['isActive'] else 'No'}\n")

    pagination = data['data']['pagination']
    print(f"Page {pagination['page']} of {pagination['totalPages']}")