SPX Graphics Item API

Control individual rundown items (play, stop, continue, update)

OpenAPI Specification

spx-item-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SPX Graphics Control Data Item 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: Item
  description: Control individual rundown items (play, stop, continue, update)
paths:
  /api/v1/item/play:
    get:
      operationId: playItem
      summary: Play Item
      description: Issues a play command to the currently focused item on the rundown, triggering the graphic to appear on the output.
      tags:
      - Item
      parameters:
      - $ref: '#/components/parameters/apikey'
      responses:
        '200':
          description: Item play command issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v1/item/stop:
    get:
      operationId: stopItem
      summary: Stop Item
      description: Issues a stop command to the currently focused item, removing the graphic from the output.
      tags:
      - Item
      parameters:
      - $ref: '#/components/parameters/apikey'
      responses:
        '200':
          description: Item stop command issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v1/item/continue:
    get:
      operationId: continueItem
      summary: Continue Item
      description: Issues a continue command to the currently focused item, advancing the graphic animation to its next state.
      tags:
      - Item
      parameters:
      - $ref: '#/components/parameters/apikey'
      responses:
        '200':
          description: Item continue command issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v1/item/update:
    post:
      operationId: updateItem
      summary: Update Item
      description: Updates the data fields of a specific rundown item. Can be used to change text, images, or other template variables programmatically.
      tags:
      - Item
      parameters:
      - $ref: '#/components/parameters/apikey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemUpdateRequest'
      responses:
        '200':
          description: Item updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v1/directplayout:
    post:
      operationId: directPlayout
      summary: Direct Play Out
      description: Executes a direct play, continue, or stop command to a template without requiring the item to be in the current rundown. Introduced in v1.0.12. Useful for triggering graphics directly from external systems.
      tags:
      - Item
      parameters:
      - $ref: '#/components/parameters/apikey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectPlayoutRequest'
      responses:
        '200':
          description: Direct playout command executed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
components:
  schemas:
    ItemUpdateRequest:
      type: object
      description: Request body for updating a rundown item's data fields
      properties:
        project:
          type: string
          description: SPX project name
          example: MyProject
        rundown:
          type: string
          description: Rundown name within the project
          example: LiveShow
        item:
          type: integer
          description: Zero-based index of the item in the rundown
          example: 0
        fields:
          type: array
          description: Array of field name/value pairs to update
          items:
            $ref: '#/components/schemas/TemplateField'
      required:
      - project
      - rundown
      - item
    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
    TemplateField:
      type: object
      description: A template variable name/value pair
      properties:
        field:
          type: string
          description: Field name matching the template variable
          example: f0
        value:
          type: string
          description: Value to assign to the field
          example: John Smith
    DirectPlayoutRequest:
      type: object
      description: Request body for direct playout without a rundown context
      properties:
        command:
          type: string
          description: Playback command to issue
          enum:
          - play
          - continue
          - stop
        template:
          type: string
          description: Path to the HTML template file
          example: templates/lowerthird.html
        fields:
          type: array
          description: Template field values for the playout
          items:
            $ref: '#/components/schemas/TemplateField'
      required:
      - command
      - template
  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