Rockbot Music API
Playback control and playlist overrides per zone.
Playback control and playlist overrides per zone.
openapi: 3.0.3
info:
title: Rockbot Audio Messaging Music API
version: '5.0'
x-apisjson-generated: '2026-07-21'
x-apisjson-method: generated
x-apisjson-source: https://developer.rockbot.com/api.html
description: 'Rockbot''s external REST API (v5) lets business customers programmatically control in-location media across their zones and device groups: music playback, audio messaging campaigns, digital-signage campaigns, device status/remote control, and playback history/analytics exports. This OpenAPI description was faithfully generated by the API Evangelist enrichment pipeline from the public documentation at https://developer.rockbot.com — Rockbot does not publish a machine-readable spec. Request/response body schemas are modeled loosely (free-form JSON) where the documentation does not enumerate fields; endpoints, methods, auth, pagination, and rate limits are captured as documented.'
contact:
name: Rockbot API Support
email: support@rockbot.com
url: https://developer.rockbot.com
servers:
- url: https://api.rockbot.com/v5
description: Production
security:
- oauth2: []
tags:
- name: Music
description: Playback control and playlist overrides per zone.
paths:
/ext/music/now_playing:
get:
operationId: getNowPlaying
tags:
- Music
summary: Retrieve current playback state and queue
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/music/skip:
post:
operationId: skipTrack
tags:
- Music
summary: Advance to next track
description: Limited to 6 skips per hour.
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/music/start:
post:
operationId: startMusic
tags:
- Music
summary: Resume music playback
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/music/stop:
post:
operationId: stopMusic
tags:
- Music
summary: Halt music playback
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/music/volume:
post:
operationId: setVolume
tags:
- Music
summary: Adjust volume
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
volume:
type: integer
minimum: 0
maximum: 100
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/zones/{zone_id}/playlists:
get:
operationId: listZonePlaylists
tags:
- Music
summary: List available playlists for a zone
parameters:
- name: zone_id
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
$ref: '#/components/responses/Paginated'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/zones/{zone_id}/playlists/override:
get:
operationId: getPlaylistOverrides
tags:
- Music
summary: View active playlist overrides
parameters:
- name: zone_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
post:
operationId: createPlaylistOverride
tags:
- Music
summary: Set a temporary playlist override
parameters:
- name: zone_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
delete:
operationId: deleteAllPlaylistOverrides
tags:
- Music
summary: Remove all playlist overrides for a zone
parameters:
- name: zone_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/zones/{zone_id}/playlists/override/{override_id}:
delete:
operationId: deletePlaylistOverride
tags:
- Music
summary: Delete a specific playlist override
parameters:
- name: zone_id
in: path
required: true
schema:
type: string
- name: override_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Object'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
components:
responses:
RateLimited:
description: Rate limit exceeded. The default limit is 1 request per second.
Unauthorized:
description: Missing or invalid bearer access token.
Object:
description: Success. Returns a JSON object or array.
content:
application/json:
schema:
type: object
additionalProperties: true
Paginated:
description: Paginated collection.
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedResponse'
schemas:
PaginatedResponse:
type: object
description: Common pagination envelope shared by paginated endpoints.
properties:
total_count:
type: integer
page_size:
type: integer
page:
type: integer
page_count:
type: integer
data:
type: array
items:
type: object
additionalProperties: true
parameters:
limit:
name: limit
in: query
description: Page size for paginated results.
schema:
type: integer
offset:
name: offset
in: query
description: Zero-based offset for paginated results.
schema:
type: integer
securitySchemes:
oauth2:
type: oauth2
description: 'OAuth 2.0 Client Credentials grant. Exchange a CLIENT_ID/CLIENT_SECRET (issued by Rockbot support) at the token endpoint for a 24-hour bearer ACCESS_TOKEN, then send it as `Authorization: Bearer ACCESS_TOKEN`.'
flows:
clientCredentials:
tokenUrl: https://api.rockbot.com/v5/api-clients/token
scopes: {}