Professional Documents
Culture Documents
/swagger/OpenAPI/swagger.json
With the Sympholight REST API it is possible to write your own client that can control a Sympholight
instance. The REST API adheres to the Swagger specification that means that you can use the
Swagger tools to generate clients for different programming languages like C#, TypeScript,
JavaScript, etc.
Authorize
Auth
POST/api/auth/login
Called if a user wants to log in to the system. If successful, it should return a valid JWT token that can be
used to access other API methods.
Configuration
GET/api/configuration
Gets the Configuration that contains the configuration of the currently running SYMPHOLIGHT instance.
ContentManagement
POST/api/contentmanagement/effects/apply
Applies all changes that were made to media effects.
GET/api/contentmanagement/effects
Gets all media effects that are used in the current project.
GET/api/contentmanagement/effects/video
Gets the video effects that are used in the current project.
GET/api/contentmanagement/effects/image
Gets the image effects that are used in the current project.
POST/api/contentmanagement/effects/reset
Reset all media effect changes that were made.
PUT/api/contentmanagement/effects/{effectid}/exchange
Exchanges the content of a media effect.
PUT/api/contentmanagement/effects/image/{effectid}/exchange
Exchanges the content of a image effect.
PUT/api/contentmanagement/effects/video/{effectid}/exchange
Exchanges the content of a video effect.
Controllers
GET/api/controllers
Gets all controllers.
GET/api/controllers/summary
Gets a summary about how many controllers are online and offline in the project / network.
FileDownload
GET/api/filedownload
Retrieves all available file downloads independent from their status.
POST/api/filedownload
Makes SYMPHOLIGHT start the download.
GET/api/filedownload/{jobid}
Gets the file download job for the specified job id.
POST/api/filedownload/{jobid}/cancel
Cancels the file download job with the specified id.
FileUpload
POST/api/fileupload/formupload
Allows the user to upload a file via a HTML form.
GrandMaster
GET/api/grandmaster
Gets the current settings of the grandmaster.
PUT/api/grandmaster
Changes the current settings of the grandmaster.
Logging
GET/api/logging
Gets the logs filtered by severity.
GET/api/logging/stats
Gets the current status of the logging system.
MediaLibrary
GET/api/medialibrary
Retrieves all available content of the media library. The default return type is a tree view of the media
library. To retrieve a flat list, use the query parameter "view" and set it to "list".
POST/api/medialibrary/{id}/remove
Tries to remove the media library item with the specified id.
GET/api/medialibrary/{id}/isiteminuse
Determines whether the item with the specified id is used in the currently loaded project.
GET/api/medialibrary/video/import
Retrieves all available import video jobs independent from their status.
POST/api/medialibrary/video/import
Starts a video import into the media library from the given location.
GET/api/medialibrary/video/import/{jobid}
Gets the import video job for the specified job id.
POST/api/medialibrary/video/import/{jobid}/cancel
Cancels the import video job with the specified id.
MutexGroups
GET/api/mutexgroups
Retrieves all available mutex groups from the current project.
GET/api/mutexgroups/{mutexgroupid}
Retrieves the mutex group with the given mutex group identifier.
PUT/api/mutexgroups/{mutexgroupid}
Changes the properties of the mutex group with the specified mutex group id. The properties are defined
in the message body in valid JSON format. Note that not all properties of a mutex group are settable. The
request will return the new values of the updated mutex group.
POST/api/mutexgroups/{mutexgroupid}/play
Plays the first sequence of the mutex group with the given mutex group id.
POST/api/mutexgroups/{mutexgroupid}/pause
Pauses the mutex group with the given mutex group id.
POST/api/mutexgroups/{mutexgroupid}/stop
Stops the mutex group with the given mutex group id. The sequence will be stopped immediately.
POST/api/mutexgroups/{mutexgroupid}/resume
Resumes the mutex group with the given mutex group id after it was paused.
POST/api/mutexgroups/{mutexgroupid}/nextsequence
Starts the next sequence within the mutex group. To obtain the order of the sequences in the mutex
group, use the GET methods with the mutex group id.
POST/api/mutexgroups/{mutexgroupid}/previoussequence
Starts the previous sequence within the mutex group. To obtain the order of the sequences in the mutex
group, use the GET methods with the mutex group id.
Sequences
GET/api/sequences
Retrieves all available sequences from the current project.
GET/api/sequences/{sequenceidentifier}
Retrieves the sequence with the sequence identifier.
PUT/api/sequences/{sequenceidentifier}
Changes the properties of the sequence with the specified sequence identifier. The properties are defined
in the message body in a valid JSON format. Note that not all properties of a sequence are settable. The
request will return the new values of the updated sequence.
POST/api/sequences/{sequenceidentifier}/play
Plays the sequence with the given sequence identifier.
POST/api/sequences/{sequenceidentifier}/pause
Pauses the sequence with the given sequence identifier.
POST/api/sequences/{sequenceidentifier}/stop
Stops the sequence with the given sequence identifier. The sequence will be stopped immediately.
POST/api/sequences/{sequenceidentifier}/finish
Finishes the sequence with the given sequence identifier. The sequence will be stopped after it reaches
the end.
POST/api/sequences/{sequenceidentifier}/resume
Resumes the sequence with the given sequence identifier after it was paused.
GET/api/sequences/{sequenceidentifier}/currentcue
Gets the currently active cue within the sequence with the specified identifier.
GET/api/sequences/{sequenceidentifier}/cues
Retrieves all cues of the sequence with the given sequence identifier.
GET/api/sequences/{sequenceidentifier}/cues/{cueidentifier}
Gets the cue with the specified cue identifier in the sequence with the specified sequence identifier.
POST/api/sequences/{sequenceidentifier}/cues/next
Starts the next cue in the sequence with the given sequence identifier.
POST/api/sequences/{sequenceidentifier}/cues/previous
Starts the previous cue in the sequence with the given sequence identifier.
POST/api/sequences/{sequenceidentifier}/cues/{cueidentifier}/goto
Start the cue with the given cue identifier in the sequence with the given sequence identifier.
SystemInformation
GET/api/systeminformation
Gets the SystemInformation that contains the actual status of the currently running SYMPHOLIGHT
instance.
UserStorage
GET/api/userstorage
Gets the files and directories located in the user data directory.
POST/api/userstorage/delete
Deletes the files and directories at the specified path in the user data directory. If no path is specified, all
user data will be deleted.
POST/api/userstorage/move
Deletes the files and directories at the specified path in the user data directory.
POST/api/userstorage/directory/create
Creates all not existing directories in the specified path.
Workflow
GET/api/workflow/blocks
Gets all blocks of the current workflow.
GET/api/workflow/blocks/values
Gets all value blocks of the current workflow.
GET/api/workflow/blocks/values/{blockid}
Gets the current out-port value of a value block with the specified block id.
PUT/api/workflow/blocks/values/{blockid}
Sets the current in-port value of a value block with the specified block id.
Schemas
LoginTokenResponse{
description:
Represents the login response message that will be returned in an HTTP statu
date of the token.
expires string($date-time)
Gets or sets the expiration time stamp for the login response message.
token string
nullable: true
Gets or sets the JWT for the login response message token.
ApiResponse{
description:
Represents the API response message that will be returned in an HTTP
status code.
message string
nullable: true
Gets or sets the API response message that is used for HTTP status code
answers.
Login{
description:
Represents the login information about a user. It is used to retrieve a JWT
REST API.
username* string
minLength: 1
password* string
minLength: 1
}
Configuration{
disabledEnetIpAddresses [...]
enabledEnetIpAddresses [...]
name string
nullable: true
instanceId string($guid)
engineFps integer($byte)
webserverIpAddress string
nullable: true
webserverPort integer($int32)
isAutoRestoreProjectEnabled boolean
maximumLogFileAge integer($int32)
ntpServer string
nullable: true
isBackupEnabled boolean
isBackupMaster boolean
backupPort integer($int32)
Gets the port over which the communication for the backup funct
backupProjectFilePath string
nullable: true
backupPartnerAddress string
nullable: true
Gets the IP address of the system configured as partner for the
userStorageDirectory string
nullable: true
isAutomaticNodeReplacementEnabled boolean
isEbusDebuggingEnabled boolean
dataHubServer string
nullable: true
Gets or sets the server URL (with http or https, port, etc.) fo
artNetEnabled boolean
artNetSync boolean
artNetUseOptimizedTiming boolean
artNetMacAllowList [...]
artNetMacDenyList [...]
artNetIpAllowList [...]
artNetIpDenyList [...]
artNetDefaultInterface string
nullable: true
sacnEnabled boolean
sacnUseOptimizedTiming boolean
sacnLocalInterface string
nullable: true
Specifies the local IP address and thus the local interface use
IEffect{
description:
Provides access to properties of an effect.
groupIdentifier string
nullable: true
id string($guid)
layoutIdentifier string
nullable: true
length string($time-span)
name string
nullable: true
identifier string
nullable: true
offset string($time-span)
sequenceIdentifier string
nullable: true
start string($time-span)
targetGroupId string($guid)
ExchangeMediumArguments{
description:
Specifies the arguments to be given to the ExchangeMediaContent and Exchange
function.
medialibraryid* string($guid)
minLength: 1
blacklevel number($double)
nullable: true
aspectratio {...}
}
AspectRatioModestring
Effect aspect ratio fitting
Enum:
Array [ 3 ]
ExchangeVideoArguments{
description:
Specifies the arguments to be given to the ExchangeImageContent
medialibraryid* string($guid)
minLength: 1
blacklevel number($double)
nullable: true
repeat boolean
nullable: true
framerate number($double)
nullable: true
aspectratio {...}
}
ControllerInfo{
description:
Represents the information about a specific controller that is used in
isInProject boolean
readOnly: true
isAvailable boolean
readOnly: true
isInBootLoader boolean
readOnly: true
nullable: true
isUpdateAvailable boolean
readOnly: true
isCriticalUpdateAvailabl boolean
e readOnly: true
ipAddress {...}
connectedTo {...}
macAddress {...}
liveName string
readOnly: true
nullable: true
displayName string
readOnly: true
nullable: true
The name of the device stored within the SYMPHOLIGHT (might be the same
on the device)
type string
readOnly: true
nullable: true
manufacturer string
readOnly: true
nullable: true
firmwareVersion string
readOnly: true
nullable: true
sensors [...]
}
IPAddress{
address integer($int64)
addressFamily AddressFamilystringEnu
m:
Array [ 31 ]
scopeId integer($int64)
isIPv6Multicast boolean
isIPv6LinkLocal boolean
isIPv6SiteLocal boolean
isIPv6Teredo boolean
isIPv4MappedToIP boolean
v6
}
AddressFamilystringEnum:
Array [ 31 ]
PhysicalAddress{
}
ISensorInfo{
description:
Contains information about a sensor.
name string
nullable: true
value number($double)
unit string
nullable: true
type {...}
}
SensorTypestring
This enum contains all possible sensor types.
Enum:
Array [ 9 ]
ControllerSummary{
description:
Represents the controller status information of the currently running SYMPHO
instance.
online integer($int32)
readOnly: true
onlineInProject integer($int32)
readOnly: true
Gets the number of devices that are online in the loaded project.
offlineInProject integer($int32)
readOnly: true
Gets the number of devices that are offline in the loaded project.
total integer($int32)
readOnly: true
totalInProject integer($int32)
readOnly: true
Gets the number of devices that are used in the loaded project.
FileDownloadJob{
description:
A file download job.
id integer($int32)
status {...}
progress number($double)
errorMessage string
nullable: true
UserJobStatusstring
Specifies the status a user job can have.
Enum:
Array [ 6 ]
FileDownloadArguments{
description:
Specifies the arguments to be given to the String)
function.
source string
nullable: true
destination {...}
fileName string
nullable: true
UserLocationstring
The different locations accessible for the user.
Enum:
Array [ 1 ]
FileUploadResponse{
description:
The response that will be returned after a file upload.
filename string
nullable: true
fileSize integer($int64)
sha256 string
nullable: true
Gets or sets the SHA256 hash value of the file. The hash value is returned a
"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF").
GrandMaster{
description:
Controls the opacity of the currently running
show.
opacity number($float)
LogEntry{
description:
Represents a single log entry in Sympholight.
severity {...}
timeStamp string($date-time)
readOnly: true
context string
readOnly: true
nullable: true
Gets the context from where the log message was written e.g. "Scripting", "W
Control", etc.
message string
readOnly: true
nullable: true
notify boolean
readOnly: true
LogSeveritystring
This enum contains all possible log severities.
Enum:
Array [ 5 ]
LogSeverityFilterstring
Options to be used to filter log messages.
Enum:
Array [ 6 ]
LogStats{
description:
Provides information about the current logging state.
maxEntries integer($int32)
Gets or sets the maximum number of entries that are stored in the logging me
totalEntries integer($int32)
Gets or sets the number of entries that are currently in the logging memory.
if SYMPHOLIGHT is restarted.
fatalEntries integer($int32)
errorEntries integer($int32)
warningsEntries integer($int32)
infoEntries integer($int32)
debugEntries integer($int32)
firstEntry string($date-time)
lastEntry string($date-time)
MediaLibraryItem{
description:
Represents a media library item of the workflow.
children [...]
parent string($guid)
Gets or sets the parent of this media library item. With this property it is
library item.
displayName string
nullable: true
identifier string($guid)
Gets or sets the identifier of this media library item. The identifier is re
itemType {...}
category {...}
}
MediaTopologyTypestring
Defines the topology type of a IMediaLibraryItem. This is used to define the hierarchy
within the tree of the media library items.
Enum:
Array [ 4 ]
MediaFileTypestring
Defines the file type of a IMediaLibraryItem.
Enum:
Array [ 4 ]
IsItemInUseResult{
description:
Contains the result for the IsItemInUse request.
isItemInUse boolean
ImportVideoJob{
description:
A import video job.
errorMessage string
nullable: true
jobId integer($int32)
progress number($double)
status UserJobStatusstring
Enum:
Array [ 6 ]
}
ImportVideoArguments{
description:
Defines the input arguments for the ImportVideo entry path of the API. The e
= 1280, height = 720, bit rate = 4000 kBps.
name string
nullable: true
mediaLibraryFolder string
nullable: true
Gets or sets the path of the file in the media library. Use the systems path
width integer($int32)
Gets the target width for the video encoding (in pixel).
height integer($int32)
Gets the target height for the video encoding (in pixel).
bitRate integer($int32)
Gets the target bit rate for the video encoding (in kBps).
MutexGroup{
description:
Represents a MutexGroup that contains one or multiple Sequences. Use the app
properties.
loop boolean
Gets or sets a value indicating whether the group will loop after the last s
identifier integer($int32)
readOnly: true
sequences [...]
sequenceCount integer($int32)
readOnly: true
Gets the number of sequences which are part of this mutex group.
currentSequenceInde integer($int32)
x readOnly: true
Sequence{
description:
Represents the current state of a Sequence. Use the appropriate REST API cal
loop boolean
Determines whether the sequence itself will loop or not.
isPaused boolean
readOnly: true
Determines whether the sequence is paused. true when the sequence is paused,
isActive boolean
readOnly: true
Determines whether the sequence is active (is showing content). When stopped
so it is true.
isStopping boolean
readOnly: true
opacity number($float)
length string($time-span)
readOnly: true
position string($time-span)
readOnly: true
currentCueName string
readOnly: true
nullable: true
The name of the cue currently playing or string.Empty when no cue is running
identifier string
readOnly: true
nullable: true
currentCue {...}
cues [...]
mutexGroupId integer($int32)
readOnly: true
Gets the mutex group id for this sequence. Zero means this sequence is not p
mutexGroupIndex integer($int32)
readOnly: true
}
ICue{
description:
Provides functionality and information of a sequences cue.
identifier string
nullable: true
displayName string
nullable: true
length string($time-span)
fadeInTime string($time-span)
fadeOutTime string($time-span)
useSequenceFadeTime boolean
Gets a value indicating whether the cue fade time defined in the sequence
is used.
isSkippedOnNext boolean
cueEndBehavior {...}
cueSkipBehavior {...}
fadeBehavior {...}
}
CueEndBehaviorstring
Specifies the behavior of the cue when the end of the cue is reached.
Enum:
Array [ 3 ]
CueSkipBehaviorstring
Specifies the fade behavior of cues when cues are skipped (E.g.: "Go To Next Cue", "Go
To Previous Cue" or "Go To Cue").
Enum:
Array [ 5 ]
FadeBehaviorstring
Specifies the fade behavior of cues within a running sequence.
Enum:
Array [ 5 ]
Cue{
description:
Represents the information about a Cue within a Sequence.
index integer($int32)
readOnly: true
identifier string
readOnly: true
nullable: true
displayName string
readOnly: true
nullable: true
length string($time-span)
readOnly: true
fadeInTime string($time-span)
readOnly: true
fadeOutTime string($time-span)
readOnly: true
useSequenceFadeTime boolean
readOnly: true
Gets a value indicating whether the cue fade time defined in the sequence
is used.
isSkippedOnNext boolean
readOnly: true
cueEndBehavior {...}
cueSkipBehavior {...}
fadeBehavior {...}
}
SystemInformation{
description:
Represents the status of the currently running SYMPHOLIGHT instance
name string
readOnly: true
nullable: true
hardwareDescription string
readOnly: true
nullable: true
Gets a description text for the hardware setup the application runs
SYMPL Core S".
systemVersion string
readOnly: true
nullable: true
engineFps number($float)
readOnly: true
Gets a value indicating the maximum frame rate the engine tries to
latePacketsCount integer($int64)
readOnly: true
Gets the number of e:net packets which were send after their deadli
cpuLoad number($double)
readOnly: true
nullable: true
Gets the currently running CPU load as percentage value between 0.0
not available.
memoryUsage number($double)
readOnly: true
nullable: true
memoryTotal number($double)
readOnly: true
nullable: true
systemUpTime string($time-span)
readOnly: true
Gets the TimeSpan that contains the time elapsed since last system
usedDiskSpace integer($int32)
readOnly: true
Gets the used disk space as percentage value.
availableDiskSpaceDescriptio string
n readOnly: true
nullable: true
IFileInfo{
exists boolean
length integer($int64)
physicalPath string
nullable: true
name string
nullable: true
lastModified string($date-
time)
isDirectory boolean
}
WorkflowBlock{
description:
Represents a workflow block. It is used to retrieve information about the us
information about the given workflow block by using the REST API request acc
id string($guid)
readOnly: true
displayName string
readOnly: true
nullable: true
type string
readOnly: true
nullable: true
Value{
description:
Represents a value block of the workflow. It is used to get or set values us
value block.
outPortValue string
readOnly: true
nullable: true
Gets the current value of the out port of the value block.
inPortValue string
nullable: true
valueType string
readOnly: true
nullable: true
displayName string
readOnly: true
nullable: true
id string($guid)
readOnly: true
type string
readOnly: true
nullable: true