GET
/v1/channels
List all channels with pagination and search
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']}")