Skip to content

Rockbot API Reference

Pagination

Some endpoints return paginated results. Paginated responses share a common envelope:

FieldTypeDescription
total_countintegerTotal number of records matching the query
page_sizeintegerNumber of records per page
pageintegerCurrent page number (1-based)
page_countintegerTotal number of pages
dataarrayArray of result objects for the current page

Use the limit and offset query parameters to control pagination:

NameTypeDescriptionRequired
limitintegerNumber of records to return per pageNo
offsetintegerNumber of records to skipNo

TIP

The response fields page and page_size are derived from your request parameters: page_size equals limit, and page equals (offset / limit) + 1. For example, limit=10&offset=20 returns page 3 with a page size of 10.

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

Playlists

Get Available Playlists

Returns a paginated list of playlists available for the specified zone, including metadata such as song count, artist count, and cover image.

GET zones/{zone_id}/playlists

NameTypeDescriptionRequired
limitintegerNumber of records to return per pageNo
offsetintegerNumber of records to skipNo

Request

bash
curl -X GET "https://api.rockbot.com/v5/ext/zones/7/playlists?limit=10&offset=0" \
-H "Authorization: Bearer ACCESS_TOKEN"

200 Response

json
{
  "total_count": 2,
  "page_size": 10,
  "page": 1,
  "page_count": 1,
  "data": [
    {
      "playlist_id": 10000001,
      "spotify_id": "1a2b3c4d5e6f7g8h9i0j1k",
      "name": "Morning Coffee Vibes",
      "description": "Upbeat acoustic and indie pop tracks perfect for a relaxed morning",
      "songs": 55,
      "artists": 37,
      "image": "https://s.rockbot.com/upload/live/albums/300/0/000001.jpg",
      "add_date": "2025-01-15T09:00:00-07:00",
      "edit_date": "2025-01-15T09:00:02-07:00"
    },
    {
      "playlist_id": 10000002,
      "spotify_id": "2b3c4d5e6f7g8h9i0j1k2l",
      "name": "Afternoon Energy Boost",
      "description": "High-energy pop and dance hits to keep the energy up through the afternoon",
      "songs": 52,
      "artists": 47,
      "image": "https://s.rockbot.com/upload/live/albums/300/0/000002.jpg",
      "add_date": "2025-01-15T09:02:00-07:00",
      "edit_date": "2025-01-15T09:02:02-07:00"
    }
  ]
}