Skip to content

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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/devices/status?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/devices/screenshots?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X POST "https://api.rockbot.com/v5/ext/devices/reboot" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'
200 Response
json
true

Music

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

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

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

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X POST "https://api.rockbot.com/v5/ext/music/skip" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'
200 Response
json
true

Start

Initiates music playback for the device associated with the specified zone_id if it is currently paused or stopped.

POST music/start

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X POST "https://api.rockbot.com/v5/ext/music/start" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'
200 Response
json
true

Stop

Halts music playback for the device associated with the specified zone_id.

POST music/stop

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X POST "https://api.rockbot.com/v5/ext/music/stop" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zone_id": 7 }'
200 Response
json
true

Volume

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

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
volumeinteger0-100 volume valueYes

Request

bash
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 }'
200 Response
json
true

Audio 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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes

GET messaging/campaigns/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/messaging/campaigns/zone?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
group_idintegerGroup ID upon which to create campaignYes
namestringCampaign nameYes
start_datestringStart date for campaign YYYY-MM-DDNo
end_datestringEnd date for campaign YYYY-MM-DDNo
rrulestringRecurrence rule for campaignNo

POST messaging/campaign/zone

NameTypeDescriptionRequired
zone_idintegerZone ID upon which to create campaignYes
namestringCampaign nameYes
start_datestringStart date for campaign YYYY-MM-DDNo
end_datestringEnd date for campaign YYYY-MM-DDNo
rrulestringRecurrence rule for campaignNo

TIP

Recurrence rules are defined using the iCal RRULE.

Request

bash
curl -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" }'
200 Response
json
true

Delete Campaign

Archives the specified audio messaging campaign from the system under the group_id or zone_id.

DELETE messaging/campaign/group

NameTypeDescriptionRequired
group_idintegerGroup ID upon which to create campaignYes
campaign_idintegerCampaign ID of campaign to archiveYes

DELETE messaging/campaign/zone

NameTypeDescriptionRequired
zone_idintegerZone ID upon which to create campaignYes
campaign_idintegerCampaign ID of campaign to archiveYes

Request

bash
curl -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 }'
200 Response
json
true

Enable Campaign

Activates a previously created or disabled audio messaging campaign, making it eligible for playback at the specified zone_id.

POST messaging/campaign/enable

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
campaign_idintegerCampaign ID of campaign to enableYes

Request

bash
curl -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 }'
200 Response
json
true

Disable Campaign

Deactivates a previously created or disabled audio messaging campaign, pausing playback at the specified zone_id.

POST messaging/campaign/disable

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
campaign_idintegerCampaign ID of campaign to disableYes

Request

bash
curl -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 }'
200 Response
json
true

Add Campaign Asset

Associates a specific audio asset with the designated audio messaging campaign.

POST messaging/campaign/add_asset

NameTypeDescriptionRequired
campaign_idintegerCampaign ID of campaignYes
asset_idintegerAsset ID of asset to add to campaignYes

Request

bash
curl -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 }'
200 Response
json
true

Remove Campaign Asset

Dissociates a specific audio asset from the designated audio messaging campaign.

DELETE messaging/campaign/remove_asset

NameTypeDescriptionRequired
campaign_idintegerCampaign ID of campaignYes
asset_idintegerAsset ID of asset to add to campaignYes

Request

bash
curl -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 }'
200 Response
json
true

Get 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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes

GET messaging/assets/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/messaging/assets/group?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes
namestringString name of asset to createYes
start_datestringString specifying start date of asset YYYY-MM-DDNo
end_datestringString specifying end date of asset YYYY-MM-DDNo
filebinaryFile to uploadYes

POST messaging/asset/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
namestringString name of asset to createYes
start_datestringString specifying start date of asset YYYY-MM-DDNo
end_datestringString specifying end date of asset YYYY-MM-DDNo
filebinaryFile to uploadYes

Request

bash
curl -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' \
200 Response
json
true

Delete Asset

Removes the specified audio asset from the library associated with the group_id or zone_id.

DELETE messaging/asset/group

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to archiveYes
asset_idintegerNumeric ID of asset to archiveYes

DELETE messaging/asset/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to archiveYes
asset_idintegerNumeric ID of asset to archiveYes

Request

bash
curl -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 }'
200 Response
json
true

Signage

Get Campaigns

Retrieves a list of all defined signage campaigns associated with the specified group_id or zone_id.

GET signage/campaigns/group

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes

GET signage/campaigns/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/signage/campaigns/zone?zone_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
group_idintegerGroup ID upon which to create campaignYes
namestringCampaign nameYes
start_datestringStart date for campaign YYYY-MM-DDNo
end_datestringEnd date for campaign YYYY-MM-DDNo
rrulestringRecurrence rule for campaignNo

POST signage/campaign/zone

NameTypeDescriptionRequired
zone_idintegerZone ID upon which to create campaignYes
namestringCampaign nameYes
start_datestringStart date for campaign YYYY-MM-DDNo
end_datestringEnd date for campaign YYYY-MM-DDNo
rrulestringRecurrence rule for campaignNo

TIP

Recurrence rules are defined using the iCal RRULE.

Request

bash
curl -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" }'
200 Response
json
true

Delete Campaign

Archives the specified signage campaign from the system under the group_id or zone_id.

DELETE signage/campaign/group

NameTypeDescriptionRequired
group_idintegerThe numeric ID of the group.Yes
campaign_idintegerThe ID of the campaign to delete.Yes

DELETE signage/campaign/zone

NameTypeDescriptionRequired
zone_idintegerThe numeric ID of the zone.Yes
campaign_idintegerThe ID of the campaign to delete.Yes

Request

bash
curl -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 }'
200 Response
json
true

Enable Campaign

Activates a previously created or disabled signage campaign, making it eligible for playback at the specified zone_id.

POST signage/campaign/enable

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
campaign_idintegerCampaign ID of campaign to enableYes

Request

bash
curl -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 }'
200 Response
json
true

Disable Campaign

Deactivates a previously created or disabled signage campaign, pausing playback at the specified zone_id.

POST signage/campaign/disable

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
campaign_idintegerCampaign ID of campaign to disableYes

Request

bash
curl -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 }'
200 Response
json
true

Add Campaign Asset

Associates a specific signage asset with the designated signage campaign.

POST signage/campaign/add_asset

NameTypeDescriptionRequired
campaign_idintegerCampaign ID of campaignYes
asset_idintegerAsset ID of asset to add to campaignYes

Request

bash
curl -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 }'
200 Response
json
true

Remove Campaign Asset

Dissociates a specific signage asset from the designated signage campaign.

DELETE signage/campaign/remove_asset

NameTypeDescriptionRequired
campaign_idintegerCampaign ID of campaignYes
asset_idintegerAsset ID of asset to add to campaignYes

Request

bash
curl -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 }'
200 Response
json
true

Get 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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes

GET signage/assets/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/signage/assets/group?group_id=7" \
-H "Authorization: Bearer ACCESS_TOKEN"
200 Response
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

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to accessYes
namestringString name of asset to createYes
start_datestringString specifying start date of asset YYYY-MM-DDNo
end_datestringString specifying end date of asset YYYY-MM-DDNo
filebinaryFile to uploadYes

POST signage/asset/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to accessYes
namestringString name of asset to createYes
start_datestringString specifying start date of asset YYYY-MM-DDNo
end_datestringString specifying end date of asset YYYY-MM-DDNo
filebinaryFile to uploadYes

Request

bash
curl -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' \
200 Response
json
true

Delete Asset

Removes the specified signage asset from the library associated with the group_id or zone_id.

DELETE signage/asset/group

NameTypeDescriptionRequired
group_idintegerNumeric ID of group to archiveYes
asset_idintegerNumeric ID of asset to archiveYes

DELETE signage/asset/zone

NameTypeDescriptionRequired
zone_idintegerNumeric ID of zone to archiveYes
asset_idintegerNumeric ID of asset to archiveYes

Request

bash
curl -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 }'
200 Response
json
true