SuperViz Realtime API

Publishing events into realtime channels from a backend.

OpenAPI Specification

superviz-realtime-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SuperViz REST Channels Realtime API
  description: 'Representative OpenAPI description of the SuperViz server-side REST API.


    SuperViz is SDK-first: real-time collaboration and communication features (presence, realtime data channels, video huddle, contextual comments, mouse pointers) are implemented in the browser with the `@superviz/sdk` and `@superviz/react-sdk` client libraries, initialized with a developer key.


    This REST API at `https://api.superviz.com` is the supporting server-side surface. It lets a backend read presence and participants, introspect channels, publish events into realtime channels, read room participants and contextual comments, and retrieve video meeting statistics. All REST requests authenticate with a Client ID and Secret Key issued from Dashboard > Developer > Keys, sent as the `client_id` and `secret` request headers.


    Endpoints, paths, and field shapes here are modeled from the public SuperViz documentation at https://docs.superviz.com and are intended as a faithful, representative specification rather than an exhaustive dump of every field.'
  version: '1.0'
  contact:
    name: SuperViz Support
    url: https://docs.superviz.com
  license:
    name: SuperViz Terms of Service
    url: https://superviz.com/terms
servers:
- url: https://api.superviz.com
  description: SuperViz REST API base URL
security:
- clientId: []
  secret: []
tags:
- name: Realtime
  description: Publishing events into realtime channels from a backend.
paths:
  /realtime/1.0/channels/{channel}/events:
    post:
      operationId: publishEvent
      tags:
      - Realtime
      summary: Publish an event to a channel
      description: Publishes (posts) an event with an arbitrary JSON payload to the named realtime channel. Connected SDK clients subscribed to that channel and event name receive the payload in real time. This is how a backend pushes synchronized data to clients.
      parameters:
      - name: channel
        in: path
        required: true
        description: The name of the realtime channel to publish to.
        schema:
          type: string
        example: my-channel
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishEventRequest'
            example:
              name: price-update
              data:
                symbol: ACME
                price: 42.5
      responses:
        '200':
          description: Event accepted and published to the channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishEventResponse'
              example:
                success: true
                channel: my-channel
                name: price-update
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Missing or invalid client_id / secret credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 401
            message: Unauthorized.
    BadRequest:
      description: The request was malformed or a parameter was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 400
            message: Invalid request body.
  schemas:
    PublishEventResponse:
      type: object
      properties:
        success:
          type: boolean
        channel:
          type: string
        name:
          type: string
    PublishEventRequest:
      type: object
      description: Request body to publish an event to a channel.
      properties:
        name:
          type: string
          description: The event name subscribers listen for.
        data:
          description: Arbitrary JSON payload delivered to subscribers.
      required:
      - name
      - data
    Error:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
      required:
      - statusCode
      - message
  securitySchemes:
    clientId:
      type: apiKey
      in: header
      name: client_id
      description: Client ID issued from the SuperViz Dashboard under Developer > Keys. Sent on every REST request alongside the `secret` header.
    secret:
      type: apiKey
      in: header
      name: secret
      description: Secret Key issued from the SuperViz Dashboard under Developer > Keys. Displayed only once at creation; store it securely and never commit it to version control.