Rockbot Music API

Playback control and playlist overrides per zone.

Operations 10

GET /ext/music/now_playing Retrieve current playback state and queue #
POST /ext/music/skip Advance to next track #
POST /ext/music/start Resume music playback #
POST /ext/music/stop Halt music playback #
POST /ext/music/volume Adjust volume #
GET /ext/zones/{zone_id}/playlists List available playlists for a zone #
GET /ext/zones/{zone_id}/playlists/override View active playlist overrides #
POST /ext/zones/{zone_id}/playlists/override Set a temporary playlist override #
DELETE /ext/zones/{zone_id}/playlists/override Remove all playlist overrides for a zone #
DELETE /ext/zones/{zone_id}/playlists/override/{override_id} Delete a specific playlist override #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/rockbot-music-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

rockbot-music-api-openapi.yml Raw ↑
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: {}