Rockbot Signage API

Digital-signage campaigns and assets by group or zone.

OpenAPI Specification

rockbot-signage-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rockbot Audio Messaging Signage 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: Signage
  description: Digital-signage campaigns and assets by group or zone.
paths:
  /ext/signage/campaigns/group:
    get:
      operationId: listSignageCampaignsByGroup
      tags:
      - Signage
      summary: List signage campaigns by group
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaigns/zone:
    get:
      operationId: listSignageCampaignsByZone
      tags:
      - Signage
      summary: List signage campaigns by zone
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/group:
    post:
      operationId: createSignageCampaignGroup
      tags:
      - Signage
      summary: Create a group-level signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    delete:
      operationId: archiveSignageCampaignGroup
      tags:
      - Signage
      summary: Archive a group-level signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/zone:
    post:
      operationId: createSignageCampaignZone
      tags:
      - Signage
      summary: Create a zone-level signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    delete:
      operationId: archiveSignageCampaignZone
      tags:
      - Signage
      summary: Archive a zone-level signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/enable:
    post:
      operationId: enableSignageCampaign
      tags:
      - Signage
      summary: Activate a signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/disable:
    post:
      operationId: disableSignageCampaign
      tags:
      - Signage
      summary: Deactivate a signage campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/play:
    post:
      operationId: playSignageCampaign
      tags:
      - Signage
      summary: Trigger immediate signage playback
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/add_asset:
    post:
      operationId: addSignageCampaignAsset
      tags:
      - Signage
      summary: Associate a signage asset with a campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/campaign/remove_asset:
    delete:
      operationId: removeSignageCampaignAsset
      tags:
      - Signage
      summary: Dissociate a signage asset from a campaign
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/assets/group:
    get:
      operationId: listSignageAssetsByGroup
      tags:
      - Signage
      summary: List signage files by group
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/assets/zone:
    get:
      operationId: listSignageAssetsByZone
      tags:
      - Signage
      summary: List signage files by zone
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/asset/group:
    post:
      operationId: uploadSignageAssetGroup
      tags:
      - Signage
      summary: Upload a signage file (group-level)
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    delete:
      operationId: deleteSignageAssetGroup
      tags:
      - Signage
      summary: Remove a signage file (group-level)
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /ext/signage/asset/zone:
    post:
      operationId: uploadSignageAssetZone
      tags:
      - Signage
      summary: Upload a signage file (zone-level)
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    delete:
      operationId: deleteSignageAssetZone
      tags:
      - Signage
      summary: Remove a signage file (zone-level)
      responses:
        '200':
          $ref: '#/components/responses/Object'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    Unauthorized:
      description: Missing or invalid bearer access token.
    RateLimited:
      description: Rate limit exceeded. The default limit is 1 request per second.
    Object:
      description: Success. Returns a JSON object or array.
      content:
        application/json:
          schema:
            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: {}