Appearance
Rockbot API Reference
Devices
Status
Retrieves a comprehensive list of all media player devices managed under the specified group_id, including real-time operational metrics, network configuration (IP/MAC address), storage usage, firmware version, and geographical location details.
GET /devices/status
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/devices/status?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"zone_id": 5678,
"device_id": 1234,
"status": "online",
"platform": "brightsign",
"model": "LS425",
"firmware": "9.4.5",
"version": "10.0.0",
"ip_address": "192.168.0.1",
"mac_address": "AA:AA:AA:AA:AA:AA",
"bandwidth_kbps": "10000",
"storage_used_mb": "100",
"storage_total_mb": "65343",
"last_online_date": "2025-04-01 13:23:02",
"last_online_ago": 30,
"location": {
"location_id": 123,
"name": "Joe's Coffee #1",
"street": "123 Main St",
"city": "Oakland",
"state": "CA",
"zip": "94612",
"latitude": "23.2342",
"longitude": "-120.1231",
}
}
]Screenshots
Retrieves a list of recently captured screen images for the device operating within the specified zone_id, including the URL and timestamp for each screenshot.
GET devices/screenshots
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/devices/screenshots?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"url": "https://s.rockbot.com/screenshot1.jpg",
"add_date": "2025-04-01 13:23:02"
}
]Reboot
Initiates a remote reboot sequence for the media player device associated with the specified zone_id.
POST devices/reboot
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/devices/reboot" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'json
trueMusic
Now Playing
Retrieves detailed metadata for the current music playback state at the specified zone_id, including the track currently playing (artist, song, artwork, duration, remaining time), the list of upcoming tracks in the queue, and a history of recently played songs.
GET music/now_playing
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
curl -X GET "https://api.rockbot.com/v5/ext/music/now_playing?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"200 Response
json
{
"venue": "Porterville Lanes",
"street": "1625 Clay St",
"city": "Oakland",
"state": "CA",
"zip": "94612",
"current_users": 0,
"status": "active",
"volume": 50,
"now_playing": {
"pick_id": "22130649142",
"artist_id": 40877,
"artist": "DIIV",
"song_id": 204131,
"song": "Under The Sun",
"artwork_small": "https://s.rockbot.com/upload/live/albums/150/4/804374.jpg",
"artwork_large": "https://s.rockbot.com/upload/live/albums/500/4/804374.jpg",
"user": "Rockbot",
"user_image_small": "https://s.rockbot.com/upload/live/users/150/5/2621225.jpg",
"user_image_large": "https://s.rockbot.com/upload/live/users/300/5/2621225.jpg",
"likes": 0,
"dislikes": 0,
"duration": 138,
"remaining": 89
},
"queue": [
{
"pick_id": "22130753246",
"artist_id": 602,
"artist": "Pinback",
"song_id": 3833,
"song": "Penelope",
"artwork_small": "https://s.rockbot.com/upload/live/albums/150/2/2232.jpg",
"artwork_large": "https://s.rockbot.com/upload/live/albums/500/2/2232.jpg",
"user": "Rockbot",
"user_image_small": "https://s.rockbot.com/upload/live/users/150/5/2621225.jpg",
"user_image_large": "https://s.rockbot.com/upload/live/users/300/5/2621225.jpg",
"likes": 0,
"dislikes": 0
},
],
"recent": [
{
"pick_id": "22130849713",
"artist_id": 5,
"artist": "Pixies",
"song_id": 5,
"song": "Monkey Gone to Heaven",
"artwork_small": "https://s.rockbot.com/upload/live/albums/150/9/18769.jpg",
"artwork_large": "https://s.rockbot.com/upload/live/albums/500/9/18769.jpg",
"user": "Rockbot",
"user_image_small": "https://s.rockbot.com/upload/live/users/150/5/2621225.jpg",
"user_image_large": "https://s.rockbot.com/upload/live/users/300/5/2621225.jpg",
"likes": 0,
"dislikes": 0
}
]
}Skip
Forces the music player at the specified zone_id to stop the current track and advance immediately to the next track in the queue.
POST music/skip
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/music/skip" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'json
trueStart
Initiates music playback for the device associated with the specified zone_id if it is currently paused or stopped.
POST music/start
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/music/start" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'json
trueStop
Halts music playback for the device associated with the specified zone_id.
POST music/stop
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/music/stop" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'json
trueVolume
Adjusts the playback volume of the music player at the specified zone_id to the desired level (an integer between 0 and 100).
POST music/volume
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
volume | integer | 0-100 volume value | Yes |
Request
bash
200 Response curl -X POST "https://api.rockbot.com/v5/ext/music/volume" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "volume": 50 }'json
trueAudio Messaging
Get Campaigns
Retrieves a list of all defined audio messaging campaigns associated with the specified group_id or zone_id.
GET messaging/campaigns/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
GET messaging/campaigns/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/messaging/campaigns/zone?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"campaign_id": "1234",
"name": "Campaign 1",
"status": "enabled",
"add_date": "2025-01-01",
"start_date": "2025-02-01",
"end_date": "2025-03-01",
"rrule": "",
"assets": [
{
"asset_id": 1234,
"name": "Asset 1",
"preview_png": "https://s.rockbot.com/asset1.png",
"preview_gif": "https://s.rockbot.com/asset1.gif",
"url": "https://s.rockbot.com/asset1.jpg",
"duration": 30,
"add_date": "2025-01-01",
"start_date": "2025-03-01",
"end_date": "2025-05-01",
}
]
}
]Create Campaign
Creates and registers a new audio messaging campaign owned by the specified group_id or zone_id. Group owned campaigns are accessible to any child groups and zones.
POST messaging/campaign/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Group ID upon which to create campaign | Yes |
name | string | Campaign name | Yes |
start_date | string | Start date for campaign YYYY-MM-DD | No |
end_date | string | End date for campaign YYYY-MM-DD | No |
rrule | string | Recurrence rule for campaign | No |
POST messaging/campaign/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Zone ID upon which to create campaign | Yes |
name | string | Campaign name | Yes |
start_date | string | Start date for campaign YYYY-MM-DD | No |
end_date | string | End date for campaign YYYY-MM-DD | No |
rrule | string | Recurrence rule for campaign | No |
TIP
Recurrence rules are defined using the iCal RRULE.
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/messaging/campaign/zone" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "name": "My Campaign", "start_date": "2025-01-01" }'json
trueDelete Campaign
Archives the specified audio messaging campaign from the system under the group_id or zone_id.
DELETE messaging/campaign/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Group ID upon which to create campaign | Yes |
campaign_id | integer | Campaign ID of campaign to archive | Yes |
DELETE messaging/campaign/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Zone ID upon which to create campaign | Yes |
campaign_id | integer | Campaign ID of campaign to archive | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/messaging/campaign/group" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "group_id": 1, "campaign_id": 1 }'json
trueEnable Campaign
Activates a previously created or disabled audio messaging campaign, making it eligible for playback at the specified zone_id.
POST messaging/campaign/enable
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
campaign_id | integer | Campaign ID of campaign to enable | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/messaging/campaign/enable" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "campaign_id": 7 }'json
trueDisable Campaign
Deactivates a previously created or disabled audio messaging campaign, pausing playback at the specified zone_id.
POST messaging/campaign/disable
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
campaign_id | integer | Campaign ID of campaign to disable | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/messaging/campaign/disable" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "campaign_id": 7 }'json
trueAdd Campaign Asset
Associates a specific audio asset with the designated audio messaging campaign.
POST messaging/campaign/add_asset
| Name | Type | Description | Required |
|---|---|---|---|
campaign_id | integer | Campaign ID of campaign | Yes |
asset_id | integer | Asset ID of asset to add to campaign | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/messaging/campaign/add_asset" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": 7, "asset_id": 7 }'json
trueRemove Campaign Asset
Dissociates a specific audio asset from the designated audio messaging campaign.
DELETE messaging/campaign/remove_asset
| Name | Type | Description | Required |
|---|---|---|---|
campaign_id | integer | Campaign ID of campaign | Yes |
asset_id | integer | Asset ID of asset to add to campaign | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/messaging/campaign/remove_asset" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": 7, "asset_id": 7 }'json
trueGet Assets
Retrieves a list of all individual audio files (assets) that are available for use in campaigns under the specified group_id or zone_id.
GET messaging/assets/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
GET messaging/assets/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/messaging/assets/group?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"asset_id": 1234,
"name": "Asset 1",
"preview_png": "https://s.rockbot.com/asset1.png",
"preview_gif": "https://s.rockbot.com/asset1.gif",
"url": "https://s.rockbot.com/asset1.jpg",
"duration": 30,
"add_date": "2025-01-01",
"start_date": "2025-03-01",
"end_date": "2025-05-01",
}
]Create Asset
Uploads a new audio file (asset) and makes it available for use in campaigns across all zones belonging to the specified group_id or zone_id.
POST messaging/asset/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
name | string | String name of asset to create | Yes |
start_date | string | String specifying start date of asset YYYY-MM-DD | No |
end_date | string | String specifying end date of asset YYYY-MM-DD | No |
file | binary | File to upload | Yes |
POST messaging/asset/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
name | string | String name of asset to create | Yes |
start_date | string | String specifying start date of asset YYYY-MM-DD | No |
end_date | string | String specifying end date of asset YYYY-MM-DD | No |
file | binary | File to upload | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/messaging/asset/group" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-F 'group_id=7' \
-F 'name=My Asset' \
-F 'file=@file.mp3' \json
trueDelete Asset
Removes the specified audio asset from the library associated with the group_id or zone_id.
DELETE messaging/asset/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to archive | Yes |
asset_id | integer | Numeric ID of asset to archive | Yes |
DELETE messaging/asset/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to archive | Yes |
asset_id | integer | Numeric ID of asset to archive | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/messaging/asset/group" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "group_id": 7, "asset_id": 7 }'json
trueSignage
Get Campaigns
Retrieves a list of all defined signage campaigns associated with the specified group_id or zone_id.
GET signage/campaigns/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
GET signage/campaigns/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/signage/campaigns/zone?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"campaign_id": "1234",
"name": "Campaign 1",
"status": "enabled",
"add_date": "2025-01-01",
"start_date": "2025-02-01",
"end_date": "2025-03-01",
"rrule": "",
"assets": [
{
"asset_id": 1234,
"name": "Asset 1",
"preview_png": "https://s.rockbot.com/asset1.png",
"preview_gif": "https://s.rockbot.com/asset1.gif",
"url": "https://s.rockbot.com/asset1.jpg",
"duration": 30,
"add_date": "2025-01-01",
"start_date": "2025-03-01",
"end_date": "2025-05-01",
}
]
}
]Create Campaign
Creates and registers a new signage campaign owned by the specified group_id or zone_id. Group owned campaigns are accessible to any child groups and zones.
POST signage/campaign/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Group ID upon which to create campaign | Yes |
name | string | Campaign name | Yes |
start_date | string | Start date for campaign YYYY-MM-DD | No |
end_date | string | End date for campaign YYYY-MM-DD | No |
rrule | string | Recurrence rule for campaign | No |
POST signage/campaign/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Zone ID upon which to create campaign | Yes |
name | string | Campaign name | Yes |
start_date | string | Start date for campaign YYYY-MM-DD | No |
end_date | string | End date for campaign YYYY-MM-DD | No |
rrule | string | Recurrence rule for campaign | No |
TIP
Recurrence rules are defined using the iCal RRULE.
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/signage/campaign/zone" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "name": "My Campaign", "start_date": "2025-01-01" }'json
trueDelete Campaign
Archives the specified signage campaign from the system under the group_id or zone_id.
DELETE signage/campaign/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | The numeric ID of the group. | Yes |
campaign_id | integer | The ID of the campaign to delete. | Yes |
DELETE signage/campaign/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | The numeric ID of the zone. | Yes |
campaign_id | integer | The ID of the campaign to delete. | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/signage/campaign/group" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "group_id": 1, "campaign_id": 1 }'json
trueEnable Campaign
Activates a previously created or disabled signage campaign, making it eligible for playback at the specified zone_id.
POST signage/campaign/enable
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
campaign_id | integer | Campaign ID of campaign to enable | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/signage/campaign/enable" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "campaign_id": 7 }'json
trueDisable Campaign
Deactivates a previously created or disabled signage campaign, pausing playback at the specified zone_id.
POST signage/campaign/disable
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
campaign_id | integer | Campaign ID of campaign to disable | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/signage/campaign/disable" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, "campaign_id": 7 }'json
trueAdd Campaign Asset
Associates a specific signage asset with the designated signage campaign.
POST signage/campaign/add_asset
| Name | Type | Description | Required |
|---|---|---|---|
campaign_id | integer | Campaign ID of campaign | Yes |
asset_id | integer | Asset ID of asset to add to campaign | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/signage/campaign/add_asset" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": 7, "asset_id": 7 }'json
trueRemove Campaign Asset
Dissociates a specific signage asset from the designated signage campaign.
DELETE signage/campaign/remove_asset
| Name | Type | Description | Required |
|---|---|---|---|
campaign_id | integer | Campaign ID of campaign | Yes |
asset_id | integer | Asset ID of asset to add to campaign | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/signage/campaign/remove_asset" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": 7, "asset_id": 7 }'json
trueGet Assets
Retrieves a list of all individual signage assets that are available for use in campaigns under the specified group_id or zone_id.
GET signage/assets/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
GET signage/assets/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
Request
bash
200 Responsecurl -X GET "https://api.rockbot.com/v5/ext/signage/assets/group?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"json
[
{
"asset_id": 1234,
"name": "Asset 1",
"preview_png": "https://s.rockbot.com/asset1.png",
"preview_gif": "https://s.rockbot.com/asset1.gif",
"url": "https://s.rockbot.com/asset1.jpg",
"duration": 30,
"add_date": "2025-01-01",
"start_date": "2025-03-01",
"end_date": "2025-05-01",
}
]Create Asset
Uploads a new signage file (video or image) and makes it available for use in campaigns across all zones belonging to the specified group_id or zone_id.
POST signage/asset/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to access | Yes |
name | string | String name of asset to create | Yes |
start_date | string | String specifying start date of asset YYYY-MM-DD | No |
end_date | string | String specifying end date of asset YYYY-MM-DD | No |
file | binary | File to upload | Yes |
POST signage/asset/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to access | Yes |
name | string | String name of asset to create | Yes |
start_date | string | String specifying start date of asset YYYY-MM-DD | No |
end_date | string | String specifying end date of asset YYYY-MM-DD | No |
file | binary | File to upload | Yes |
Request
bash
200 Responsecurl -X POST "https://api.rockbot.com/v5/ext/signage/asset/group" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-F 'group_id=7' \
-F 'name=My Asset' \
-F 'file=@file.mp4' \json
trueDelete Asset
Removes the specified signage asset from the library associated with the group_id or zone_id.
DELETE signage/asset/group
| Name | Type | Description | Required |
|---|---|---|---|
group_id | integer | Numeric ID of group to archive | Yes |
asset_id | integer | Numeric ID of asset to archive | Yes |
DELETE signage/asset/zone
| Name | Type | Description | Required |
|---|---|---|---|
zone_id | integer | Numeric ID of zone to archive | Yes |
asset_id | integer | Numeric ID of asset to archive | Yes |
Request
bash
200 Responsecurl -X DELETE "https://api.rockbot.com/v5/ext/signage/asset/zone" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7, asset_id": 7 }'json
true