SPX Graphics Data API

Save and load custom JSON data

OpenAPI Specification

spx-data-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SPX Graphics Control Data API
  description: The SPX Graphics Control REST API provides external control over the SPX-GC (SPX Graphics Controller) system for live video productions and live streams. It allows external applications and devices such as the Elgato Stream Deck to trigger graphics playback, control rundowns, manage templates, load projects, and interact with custom SPX extensions. The API runs locally at http://localhost:5656 and supports optional API key authentication via URL parameter.
  version: '1.0'
  contact:
    name: SPX Graphics Support
    url: https://spxgc.tawk.help/
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: http://localhost:5656
  description: Local SPX-GC Instance (default port)
- url: http://localhost:5000
  description: Legacy Local SPX-GC Instance
security: []
tags:
- name: Data
  description: Save and load custom JSON data
paths:
  /api/v1/saveCustomJSON:
    post:
      operationId: saveCustomJSON
      summary: Save Custom JSON
      description: Saves arbitrary JSON data to disk for persistence in app extensions. This POST handler can be used to store state that persists across SPX restarts, such as scores, counters, or configuration data.
      tags:
      - Data
      parameters:
      - $ref: '#/components/parameters/apikey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomJSONRequest'
      responses:
        '200':
          description: Custom JSON saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v1/feedproxy:
    get:
      operationId: feedProxy
      summary: Feed Proxy
      description: A proxy endpoint that forwards HTTP requests to external URLs, supporting custom headers for authentication. Useful for working around CORS restrictions when fetching external data feeds for template population.
      tags:
      - Data
      parameters:
      - name: url
        in: query
        description: The target URL to proxy the request to
        required: true
        schema:
          type: string
          format: uri
      - $ref: '#/components/parameters/apikey'
      responses:
        '200':
          description: Proxied response from external URL
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    CustomJSONRequest:
      type: object
      description: Arbitrary JSON data payload to persist to disk
      properties:
        filename:
          type: string
          description: Name of the JSON file to save (without extension)
          example: scores
        data:
          type: object
          description: JSON data to persist
          additionalProperties: true
      required:
      - filename
      - data
    SuccessResponse:
      type: object
      description: Standard SPX API success response
      properties:
        status:
          type: string
          description: Response status
          example: ok
        message:
          type: string
          description: Human-readable status message
          example: Command executed successfully
  parameters:
    apikey:
      name: apikey
      in: query
      description: API key for authentication. Required only if the SPX configuration has an apikey value set. Leave empty if no restriction is configured.
      required: false
      schema:
        type: string
externalDocs:
  description: SPX Graphics API Documentation
  url: https://spxgc.tawk.help/article/help-api