Overview

Returns a paginated list of digital menu boards with layout configurations, logos, background images, and member pricing settings.

Request

Endpoint

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

Query Parameters

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number
limitintegerNo50Results per page (max: 100)
searchstringNo-Search by name
active_onlystringNo"1"Filter active menus ("0" or "1")

Example Request

cURL
curl -X GET "https://api.pixelsuite.com.au/v1/adverts/menus?active_only=1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

JSON
{
  "success": true,
  "data": {
    "menus": [
      {
        "ID": 5,
        "parentMenuID": null,
        "guid": "abc123-def456-ghi789",
        "name": "Main Food Menu",
        "description": "Primary food menu for dining area",
        "dateCreated": "2025-10-01 08:00:00",
        "dateModified": "2026-01-15 10:30:00",
        "isActive": true,
        "hasMemberPricing": true,
        "menuLayout": "grid",
        "settings": {
          "columns": 3,
          "showPrices": true,
          "theme": "modern"
        },
        "revision": 3,
        "memberText": "Member",
        "nonMemberText": "Non-Member",
        "logo": {
          "ID": 200,
          "key": "menus/logos/restaurant-logo.png",
          "displayName": "Restaurant Logo",
          "mimeType": "image/png",
          "fileSize": 51200,
          "dateCreated": "2025-10-01 08:00:00"
        },
        "backgroundImage": {
          "ID": 201,
          "key": "menus/backgrounds/wood-texture.jpg",
          "displayName": "Wood Texture Background",
          "mimeType": "image/jpeg",
          "fileSize": 307200,
          "dateCreated": "2025-10-01 08:00:00"
        }
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 50,
      "total": 8,
      "totalPages": 1,
      "hasMore": false
    }
  }
}

Response Fields

FieldTypeDescription
IDintegerMenu ID
namestringMenu name
guidstringUnique identifier
isActivebooleanWhether menu is active
hasMemberPricingbooleanWhether member pricing is enabled
menuLayoutstringLayout type (grid, list, etc.)
settingsobjectJSON configuration settings
logoobjectLogo image S3 information
backgroundImageobjectBackground image S3 information

Code Examples

PHP
<?php
$apiKey = 'YOUR_API_KEY';
$url = 'https://api.pixelsuite.com.au/v1/adverts/menus?active_only=1';

$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']['menus'] as $menu) {
        echo "Menu: {$menu['name']}\n";
        echo "Layout: {$menu['menuLayout']}\n";
        echo "Member Pricing: " . ($menu['hasMemberPricing'] ? 'Yes' : 'No') . "\n\n";
    }
}

curl_close($ch);
JavaScript
const apiKey = 'YOUR_API_KEY';

fetch('https://api.pixelsuite.com.au/v1/adverts/menus?active_only=1', {
  headers: { 'Authorization': `Bearer ${apiKey}` }
})
.then(res => res.json())
.then(data => {
  if (data.success) {
    data.data.menus.forEach(menu => {
      console.log(`Menu: ${menu.name}`);
      console.log(`Layout: ${menu.menuLayout}`);
      console.log(`Member Pricing: ${menu.hasMemberPricing ? 'Yes' : 'No'}\n`);
    });
  }
});
Python
import requests

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

params = {'active_only': '1'}

response = requests.get(
    'https://api.pixelsuite.com.au/v1/adverts/menus',
    headers=headers,
    params=params
)

data = response.json()
if data['success']:
    for menu in data['data']['menus']:
        print(f"Menu: {menu['name']}")
        print(f"Layout: {menu['menuLayout']}")
        print(f"Member Pricing: {'Yes' if menu['hasMemberPricing'] else 'No'}\n")