You are on page 1of 23

Select a definition

Sympholight Web API


1.0.0
OAS3

/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

Gets or sets the user name for the authentication.

password* string
minLength:  1

Gets or sets the password for the authentication.

}
Configuration{
disabledEnetIpAddresses [...]
enabledEnetIpAddresses [...]
name string
nullable:  true

Gets the name of the Sympholight instance.

instanceId string($guid)

Gets the unique ID of the Sympholight instance.

engineFps integer($byte)

Gets the maximum frame rate the engine tries to produce.

webserverIpAddress string
nullable:  true

Gets the IP at which the webserver can be accessed.

webserverPort integer($int32)

Gets the port where the webserver is listening for webbrowser c

isAutoRestoreProjectEnabled boolean

Gets a value indicating whether the automatic restore of the la

maximumLogFileAge integer($int32)

Gets the maximum log file age in days.

ntpServer string
nullable:  true

Gets the NTP server address.

isBackupEnabled boolean

Gets a value indicating whether the backup functionality is ena

isBackupMaster boolean

Gets a value indicating whether this Sympholight is the master

backupPort integer($int32)

Gets the port over which the communication for the backup funct

backupProjectFilePath string
nullable:  true

Gets the file path to the backup project.

backupPartnerAddress string
nullable:  true
Gets the IP address of the system configured as partner for the

userStorageDirectory string
nullable:  true

Gets the user storage directory.

isAutomaticNodeReplacementEnabled boolean

Gets or sets a value indicating whether automatic node replacem

isEbusDebuggingEnabled boolean

Gets or sets a value indicating whether e:bus debug log message

dataHubServer string
nullable:  true

Gets or sets the server URL (with http or https, port, etc.) fo

artNetEnabled boolean

Specifies whether Art-net is enabled or not.

artNetSync boolean

Specifies whether sending of Art-Sync messages is turned on or

artNetUseOptimizedTiming boolean

Gets or sets a value indicating whether the temporal distributi


be enabled and all devices in the installation must support syn

artNetMacAllowList [...]
artNetMacDenyList [...]
artNetIpAllowList [...]
artNetIpDenyList [...]
artNetDefaultInterface string
nullable:  true

Specifies the IP address of the default fallback local interfac

sacnEnabled boolean

Specifies whether sACN is enabled or not.

sacnUseOptimizedTiming boolean

Gets or sets a value indicating whether the temporal distributi

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

Gets the effect group identifier of this effect.

id string($guid)

Gets the unique id of this effect.

layoutIdentifier string
nullable: true

Gets the effect layout identifier of this


effect.

length string($time-span)

Gets the length of this effect on the timeline.

name string
nullable: true

Gets the name of this effect.

identifier string
nullable: true

Gets the unique identifier of the effect.

offset string($time-span)

Gets the start offset of this effect in the


timeline.

sequenceIdentifier string
nullable: true

Gets the sequence identifier of this effect.

start string($time-span)

Gets the start time of this effect in the


timeline.

targetGroupId string($guid)

Gets the unique id of the target group.

ExchangeMediumArguments{
description:
Specifies the arguments to be given to the ExchangeMediaContent and Exchange
function.
medialibraryid* string($guid)
minLength: 1

Gets or sets the media library id.

blacklevel number($double)
nullable: true

Threshold (%) at which values default to black (optional).

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

Gets or sets the media library id.

blacklevel number($double)
nullable: true

Threshold (%) at which values default to black (optional).

repeat boolean
nullable: true

If enabled, the video is looped for the duration of the effect


(optional).

framerate number($double)
nullable: true

Frame Rate to be used for video playback (optional).

aspectratio {...}
}

ControllerInfo{
description:
Represents the information about a specific controller that is used in

isInProject boolean
readOnly: true

Gets a value indicating whether this controller is in the project.


isOnline boolean
readOnly: true

Determines whether the controller is online or offline.

isAvailable boolean
readOnly: true

Determines whether the controller is available or already used by anoth

isInBootLoader boolean
readOnly: true
nullable: true

Determines whether the controller is in boot-loader mode or not.

isUpdateAvailable boolean
readOnly: true

Determines whether a firmware update for this controller is available

isCriticalUpdateAvailabl boolean
e readOnly: true

Gets a value indicating whether a critical update is available.

ipAddress {...}
connectedTo {...}
macAddress {...}
liveName string
readOnly: true
nullable: true

The name stored by the device itself.

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

The type specifier of device.

manufacturer string
readOnly: true
nullable: true

The manufacturer name.

firmwareVersion string
readOnly: true
nullable: true

The firmware version currently running on the device.


id string($guid)
readOnly: true

Gets the id identifying a controller which is in the project uniquely.

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

Gets the sensor name.

value number($double)

Gets the sensor value.

unit string
nullable: true

Gets the unit of the sensor value as


string.

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

Gets the number of devices that are online in the network.

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

Gets the number of devices that are available in the network.

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)

Gets the identifier of the download.

status {...}
progress number($double)

Gets the progress of the download between 0.00 and


1.00.

errorMessage string
nullable: true

Gets the error message in case of an error.

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

Gets or sets the source from where a file is getting


downloaded.

destination {...}
fileName string
nullable: true

Gets or sets the name of the downloaded file.

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

Gets or sets the file name.

fileSize integer($int64)

Gets or sets the file size in bytes.

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)

Gets or sets the opacity for the grandmaster


fader.

LogEntry{
description:
Represents a single log entry in Sympholight.

severity {...}
timeStamp string($date-time)
readOnly:  true

Gets the time stamp.

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

Gets the log message.

notify boolean
readOnly:  true

Gets a value indicating whether this ILogEntry is a notify log or not.

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)

Gets or sets the number of fatal entries in the logging memory.

errorEntries integer($int32)

Gets or sets the number of error entries in the logging memory.

warningsEntries integer($int32)

Gets or sets the number of warning entries in the logging memory.

infoEntries integer($int32)

Gets or sets the number of info entries in the logging memory.

debugEntries integer($int32)

Gets or sets the number of debug entries in the logging memory.

firstEntry string($date-time)

Gets or sets the date of the first log entry.

lastEntry string($date-time)

Gets or sets the date of the last log entry.

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

Gets or sets the display name of this media library item.

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

Gets a value indicating whether the media library item is


in use.

ImportVideoJob{
description:
A import video job.

errorMessage string
nullable: true

Gets the error message in case of an


error.

jobId integer($int32)
progress number($double)
status UserJobStatusstring

Specifies the status a user job can


have.

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

Gets or sets name of the media library item.


source {...}
sourceFilename string
nullable: true

Gets or sets the name of the video file to import.

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

Gets the mutex group id.

sequences [...]
sequenceCount integer($int32)
readOnly: true

Gets the number of sequences which are part of this mutex group.

currentSequenceInde integer($int32)
x readOnly: true

Gets the index of the sequence currently selected for operations.

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

Gets a value indicating whether the sequence is currently fading out.

opacity number($float)

The opacity of the sequence.

length string($time-span)
readOnly: true

The length of the sequence.

position string($time-span)
readOnly: true

The timestamp of the current position within the sequence.

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

Gets the identifier of the sequence.

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

Gets the index of the sequence inside of the mutex group.

}
ICue{
description:
Provides functionality and information of a sequences cue.

identifier string
nullable: true

Gets the identifier of the cue configurable by the user.

displayName string
nullable: true

Provides the display name of the cue.

length string($time-span)

Gets the length of the cue.

fadeInTime string($time-span)

Gets the fade in time of the cue.

fadeOutTime string($time-span)

Gets the fade out time of the cue.

useSequenceFadeTime boolean

Gets a value indicating whether the cue fade time defined in the sequence
is used.

isSkippedOnNext boolean

Gets a value indicating whether this instance is skipped on GoToNextCue.

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

Gets the index of the cue within the sequence.

identifier string
readOnly: true
nullable: true

Gets the identifier of the cue configurable by the user.

displayName string
readOnly: true
nullable: true

Provides the display name of the cue.

length string($time-span)
readOnly: true

Gets the length of the cue.

fadeInTime string($time-span)
readOnly: true

Gets the fade in time of the cue.

fadeOutTime string($time-span)
readOnly: true

Gets the fade out time of the cue.

useSequenceFadeTime boolean
readOnly: true

Gets a value indicating whether the cue fade time defined in the sequence
is used.

isSkippedOnNext boolean
readOnly: true

Gets a value indicating whether this instance is skipped on GoToNextCue.

cueEndBehavior {...}
cueSkipBehavior {...}
fadeBehavior {...}
}

SystemInformation{
description:
Represents the status of the currently running SYMPHOLIGHT instance
name string
readOnly: true
nullable: true

Gets the name of the SYMPHOLIGHT instance.

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

Gets the currently running system version in format major.minor.bui

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

Gets the currently used memory of the system in MB or null if the i

memoryTotal number($double)
readOnly: true
nullable: true

Gets the total amount of system memory in MB or null if the informa

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

Gets the available disk space description in format: x #unit# of y

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

Gets the unique block id.

displayName string
readOnly: true
nullable: true

Gets the display name.

type string
readOnly: true
nullable: true

Gets the type of the block.

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

Sets the InPort value of a workflow value block.

valueType string
readOnly: true
nullable: true

Gets the C# type of the value stored in the block.

displayName string
readOnly: true
nullable: true

Gets the display name.

id string($guid)
readOnly: true

Gets the unique block id.

type string
readOnly: true
nullable: true

Gets the type of the block.

You might also like