Rockbot Music API
Playback control and playlist overrides per zone.
Playback control and playlist overrides per zone.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rockbot-music-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
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:
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'
Unauthorized:
description: Missing or invalid bearer access token.
RateLimited:
description: Rate limit exceeded. The default limit is 1 request per second.
parameters:
offset:
name: offset
in: query
description: Zero-based offset for paginated results.
schema:
type: integer
limit:
name: limit
in: query
description: Page size for paginated results.
schema:
type: integer
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
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: {}