Rockbot Data API
Playback history and asynchronous history exports.
Playback history and asynchronous history exports.
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-data-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 Data 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: Data
description: Playback history and asynchronous history exports.
paths:
/ext/data/signage/history:
get:
operationId: getSignageHistory
tags:
- Data
summary: Zone-level signage playback records
parameters:
- $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/data/music/history:
get:
operationId: getMusicHistory
tags:
- Data
summary: Zone-level music playback records
parameters:
- $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/data/messaging/history:
get:
operationId: getMessagingHistory
tags:
- Data
summary: Zone-level messaging playback records
parameters:
- $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/data/music/history/export:
post:
operationId: exportMusicHistory
tags:
- Data
summary: Submit a group music-history export job
responses:
'200':
$ref: '#/components/responses/ExportJob'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/data/signage/history/export:
post:
operationId: exportSignageHistory
tags:
- Data
summary: Submit a group signage-history export job
responses:
'200':
$ref: '#/components/responses/ExportJob'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/data/messaging/history/export:
post:
operationId: exportMessagingHistory
tags:
- Data
summary: Submit a group messaging-history export job
responses:
'200':
$ref: '#/components/responses/ExportJob'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/ext/data/history/exports/{job_id}:
get:
operationId: getExportJob
tags:
- Data
summary: Poll asynchronous export job status
parameters:
- name: job_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/ExportJob'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
components:
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
ExportJob:
type: object
description: Asynchronous export job. On completion, `url` holds a presigned link to a JSONL download valid until `expires_at`.
properties:
job_id:
type: string
status:
type: string
url:
type: string
format: uri
expires_at:
type: string
format: date-time
responses:
Paginated:
description: Paginated collection.
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedResponse'
ExportJob:
description: Export job state.
content:
application/json:
schema:
$ref: '#/components/schemas/ExportJob'
Unauthorized:
description: Missing or invalid bearer access token.
RateLimited:
description: Rate limit exceeded. The default limit is 1 request per second.
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: {}