Configuration API

Solstice Host URL: IPAddress/api/config

The configuration API is focused on setting and reading configuration settings that are available in the Configuration Panel and the Solstice dashboard. These are admin settings that are concerned with customization, security, and network configuration options.

The top level keys are primarily associated with device-specific settings and are not grouped into a sub-hierarchy. For each table, other than the ‘Top Level’ table that does not require a hierarchical key, the hierarchical key is shown in the first row. This is the key to the set of values that can be set in that table.

Product/Global Settings

(Top Level)

Key

Type

Get/Post

Description

m_displayId

string

Get

This is the unique identifier that Solstice uses to manage a single instance, regardless of how the display is named or its current IP Address

m_serverVersion

string

Get

The current software version running on the Solstice host

m_productName

string

Get

The name of the Solstice software (Solstice).

m_productVariant

string

Get

The generation and type of Pod hardware as a name. For example, ‘Gen1’ or ‘Gen2’

m_productHardwareVersion

int

Get

The Pod hardware generation as a version number (Pod-only). For example, 1 or 2. Software returns 9999.

Solstice Display Communications Settings

m_displayInformation

Key

Type

Get/Post

Description

m_ipv4

string

Get

The current primary IP Address assigned to the Solstice display/endpoint.

m_displayName

string

Get/Post

The display name used for Solstice discovery. This name is shown on the Solstice splash-screen and appears in the client discovery list for connecting to the Solstice display.

m_hostName

string

Get/Post

The Solstice host device’s current hostname.

m_port

int

Get/Post

The base port that Solstice will utilize for TCP/IP communications. Solstice uses three ports defined by the base port value, +1, and +2.

Global Display Settings

m_generalCuration

Key

Type

Get/Post

Description

language

string

Get/Post

A code that denotes the current language setting. Valid options are: “en_US” for US English, “ja_JP” for Japanese, “de_DE” for German, “fr_FR” for French, “es_ES” for Spanish, “zh_TW” for Traditional Chinese, and “xx”.

showSplashScreen

bool

Get

Show or hide the splash screen background image when the splash-screen is visible.

localConfigEnabled

bool

Get

Enable or disable access to the local Configuration Panel on the Solstice host (via mouse/keyboard). When disabled the onscreen configuration menu is no longer visible to users.

browserConfigEnabled

bool

Get

If this is disabled, the API cannot interact with the host since the device considers the API browser configuration.

autoConnectOnClientLaunch

bool

Get/Post

Enable or disable quick-connect auto launch.

hideOnLastClientDisconnect

bool

Get

Windows Only – hide the display software if no connections are active.

launchOnClientConnect

bool

Get

Windows Only – bring display software to foreground when a connection is made.

launchOnSystemStart

bool

Get

Windows Only – start display software when host machine boots.

theme

int

Get

Windows Only – selects between the 6 preset themes.  Zero indexed, so the options are 0-5.

advancedRenderingEnabled

bool

Get/Post

Windows Only – enable (1) or disable (0) advanced rendering for better animations at the expense of host processing cycles.

hdmiOutDisplayMode

int

Post

Gen3 Pods Only – Change the dual display mode to Mirror (1), Seamless Extend (2), or Extend (3).

inkEnabled

bool

Post

Enable or disable support for Solstice Ink.

windowMode

int

Get

Windows Only – shows whether Solstice is displayed as window app (0), fixed size (1) , or fullscreen (2).

windowTop

int

Get

Windows Only – if windowMode = 1, this is the top coordinate for the fixed window.

windowLeft

int

Get

Windows Only – if windowMode = 1, this is the left coordinate for the fixed window.

windowWidth

int

Get

Windows Only – if windowMode = 1, this is the width in pixels of the fixed window.

windowHeight

int

Get

Windows Only – if windowMode = 1, this is the height in pixels of the fixed window.

Authentication Modes

m_authenticationCuration

Key

Type

Get/Post

Description

authenticationMode

int

Get

Pre 3.0 Solstice only – security on host is open (0), screen key (1), password (2), moderated (3), or select at runtime (4)

screenKeyEnabled

bool

Get/Post

Check whether screen is key protected

moderatorApprovalDisabled

bool

Get/Post

Check whether moderator mode is enabled or disallowed

sessionKey

string

Get

The current session key currently displayed on the screen and required to be entered by clients before connecting to the display

Main Network and Feature Record

The m_networkCuration object contains several nested sub-objects. Some of these sub-objects, including wifiConfig, apConfig, and ethernet, need to have all of their properties sent in the same POST request to correctly reconfigure the Pod.

An example of how to change the nested wifiConfig sub-object is to first load the object with GET /api/config, then copy config[‘m_networkCuration’][‘wifiConfig’] into a new configuration object, then set the property changes. You must always set the password. If no password is set, the API will set the password as a single asterisk “*” to protect it.

m_networkCuration

Key

Type

Get/Post

Description

connectionShowFlags

Bitwise flags (post as decimal int)

Get/Post

Bitwise flags for showing various connection related information on the Solstice splash-screen. Before posting, you will need to convert the desired bit flag into an integer. After posting, the resulting GET may include leading 1's due to the JSON parser converting it to a 32-bit integer before displaying it back. 

 

NOTE: The modern splash screen only supports bits 4 through 8.

 

Pod only.  Windows Software returns 32 ‘1’s.

 

Bit 1:

Main Screen – Display Name Enabled

Bit 2:

(Don’t Care)

Bit 3:

Show IP Address on Main Screen

Bit 4:

Presence Bar – Display Name

Bit 5:

Presence Bar – IP Address

Bit 6:

Show Screen Key on Main Screen

Bit 7:

Presence Bar – Screen Key

Bit 8:

Show Presence Bar

Bit 9:

Connect by App Instructions

Bit 10:

App Instructions – Artwork/Icons

Bit 11:

Connect by Web Instructions

Bit 12:

Web Instructions – Artwork/Icons

Bit 13:

Show SSID Info (when enabled)

 

discoveryBroadcastEnabled

bool

Get/Post

Enable or Disable UDP Discovery broadcast. When enabled the Solstice host will broadcast discovery information on local network every 5 seconds allowing clients to discover and connect.

publishToNameServer

bool

Get/Post

Publish discovery information to Solstice Discovery Service so clients can discover the Solstice host without the need for broadcast traffic/discovery.

maximumConnections

int

Get/Post

The current number of maximum allowable simultaneous connections. Cannot be set past maximum allowable based on license for host.

maximumLicensedConnections

int

Get

Number of maximum allowable simultaneous connections based on the installed license.

maximumImageSize

int

Get/Post

Maximum size of an image, in bytes, shared by clients. Clients that share images past the maximum will automatically be resized (to save resources).

maximumPublished

int

Get/Post

Maximum number of posts allowed. Users who post past this limit will be given a message that the system is busy.

maximumAirPlayUsers

int

Get/Post

Maximum number of simultaneous AirPlay users allowed (ie iOS mirroring posts). Cannot be set higher than 4.

sdsHostName

string

Get/Post

Primary hostname or IP Address of Solstice Discovery Service to list discovery information.

sdsHostName2

string

Get/Post

Secondary hostname or IP Address of Solstice Discovery Service to list discovery information.

remoteViewMode

int

Get/Post

Enable or disable Browser Look-In feature.  0=disabled, 1=enabled, 2=allow users to toggle on/off at runtime. Passing a value other than 0,1, or 2 disables look-in.

firewallMode

int

Get/Post

Modifies Dual-Network firewall (Pod only) to enable or disable internet traffic between two network interfaces. 0=Block all traffic, 1=Allow ports 80/443, 2=Allow all traffic to be ported (note: admin password must be set and sent with the request).

vlansEnabled

bool

Get

See if VLANs are enabled or disabled. For more information on how to set configurations, see VLANs.

postTypeDesktopSupported

bool

Get/Post

Enable or disable support for PC/desktop full screen sharing.

postTypeApplicationWindowSupported

 

bool

Get/Post

Enable or disable support for application window sharing.

postTypeMediaFilesSupported

bool

Get/Post

Enable or disable support for image and video file sharing.

postTypeAirPlaySupported

bool

Get/Post

Enable or disable support for iOS mirroring.

postTypeAndroidMirroringSupported

bool

Get/Post

Enable or disable support for Android full screen mirroring.

bonjourProxyEnabled

bool

Get/Post

Enable or disable the Bonjour Proxy feature that allows iOS users to discover display to mirror to via the Solstice App instead of the Bonjour protocol.

ethernetEnabled

bool

Get/Post

Enable or disable the Ethernet network adapter (Pod-only).

ethernetGatewayCheckEnabled

bool

Get/Post

Enable or disable the gateway check (Pod-only).

wifiMode

int

Get/Post

Set the wireless network adaptor mode 0 = Off, 1 = Client Mode/Attach to existing wireless, 2= Wireless Access Point, 3 = Wireless Miracast.

wifiAllowAdmin

bool

Get/Post

Enable or disable administrative access to Solstice configurations on the wireless network.

localOTAEnabled

bool

Get/Post

Enable or disable Solstice locating software updates using a local web server.  Useful when Pods don’t have direct or web proxy-based access to the Mersive web server for updates. The localOTAUrl value is used for the URL that would be used to find the updates.  Learn more about Local OTA here (https://www.mersive.com/guides/updating-solstice-pods/).

localOTAUrl

string

Get/Post

URL of the local web server and path to use when localOTAEnabled = true (localOTAUrl is ignored if localOTAEnabled = false).  Useful when Pods don’t have direct or web proxy-based access to the Mersive web server for updates. 

bulletinEnabled

bool

Get/Post

Enable or disable bulletin text across top of Solstice-enabled Display

bulletinText

string

Get/Post

Text to be displayed in bulletin

emergencyEnabled

bool

Get/Post

Enable or disable the emergency broadcast

emergencyText

bool

Get/Post

Text of emergency broadcast

wifiConfig (Pod only)

ssid

string

Get/Post

SSID of the host wireless network to connect to via wireless client mode.

security

int

Get/Post

Security protocol of the Pod wireless network (Pod-only).  0=open, 1=WEP, 2=WPA, 3=WPA2, 4=EAP

eap

int

Get/Post

EAP method of authentication when in EAP mode (Pod-only). 0=None, 1=PEAP, 2=TLS, 3=TTLS, 4=PWD, 5=SIM, 6=SIM

phase2

int

Get/Post

Phase2 authentication method.  0=None, 1=PAP, 2=MSCHAP, 3=MSCHAPv2, 4=GTC.

password

string

Get/Post

Password used to authenticate to host network.  Get returns “*”

dhcp

bool

Get/Post

Enable or disable DHCP protocol on wireless interface.

staticIP

string

Get/Post

Static IP address to assign to device on wireless interface.

gateway

string

Get/Post

Wireless interface gateway.

prefixlength

int

Get/Post

Prefix setting for wireless interface.

dns1

string

Get/Post

First DNS for wireless interface.

dns2

string

Get/Post

Second DNS for wireless interface.

apConfig (Pod only)

SSID

string

Get/Post

SSID for standalone wireless access point.

SecurityMode

int

Get/Post

Security protocol for wireless interface when in WAP mode (Pod-only). 0=open, 3=WPA2.

PSK

string

Get/Post

Password to use for authenticating users connecting to wireless access point.

ethernet (Pod only)

dhcp

bool

Get/Post

Enable or disable DHCP for the Ethernet network interface.

staticIP

string

Get/Post

Static IP to assign the device’s Ethernet network interface (Pod-only).

gateway

string

Get/Post

Gateway IP Address for the Ethernet network interface (Pod-only).

prefixLength

int

Get/Post

Prefix length value (netmask, Pod-only).

dns1

string

Get/Post

First DNS Server IP Address (Pod-only).

dns2

string

Get/Post

Second DNS Server IP Address (Pod-only).

allowAdmin

bool

Get/Post

Enable or disable administrative access to Solstice configurations on the wireless network.

vlans (Pod only)

 

 

 

label

string

Get/Post

Name of the network to be displayed on the Pod's welcome screen instructions.

tag

int

Get/Post

Integer between 1 and 4094 that specifies your VLAN ID.

enabled

bool

Get/Post

Enable or disable the VLAN settings.

dhcp

bool

Get/Post

Enable or disable DHCP for the Ethernet network interface.

staticIP

string

Get/Post

Static IP to assign the device’s Ethernet network interface (Pod-only).

gateway

string

Get/Post

Gateway IP Address for the Ethernet network interface (Pod-only).

prefixLength

int

Get/Post

Prefix length value (netmask, Pod-only).

dns1

string

Get/Post

First DNS Server IP Address (Pod-only).

dns2

string

Get/Post

Second DNS Server IP Address (Pod-only).

allowAdmin

bool

Get/Post

Enable or disable administrative access to Solstice configurations on the network.

httpProxyServerSettings

enabled

bool

Get/Post

Enable or disable use of an HTTP Proxy.

ip

string

Get/Post

IP Address of HTTP proxy server.

port

int

Get/Post

Communications port of HTTP proxy server.

username

string

Get/Post

Username to be used when authenticating to the HTTP proxy server.

password

string

Get/Post

Password to be used when authenticating to the HTTP proxy server.

excludeLocalSubnet

bool

Get/Post

Enable or disable the setting that allows addresses on the same subnet as the Pod to bypass the proxy server.

httpsProxyServerSettings

enabled

bool

Get/Post

Enable or disable use of an HTTPS Proxy.

ip

string

Get/Post

IP Address of HTTPS proxy server.

port

int

Get/Post

Communications port of HTTPS proxy server.

username

string

Get/Post

Username to be used when authenticating to the HTTPS proxy server.

password

string

Get/Post

Password to be used when authenticating to the HTTPS proxy server.

excludeLocalSubnet

bool

Get/Post

Enable or disable the setting that allows addresses on the same subnet as the Pod to bypass the proxy server.

RSS Feeds

m_networkCuration also has a nested group key ‘m_rssFeedList’ that can GET or POST an array of messages to be displayed in the RSS feed across the top of a Solstice-enabled display.  It may include custom messages or standard RSS URLs.

For example:

“m_rssFeedList”: [
{
“enabled”: true,
“name”: “Custom Message”,
“length”: 0,
“uri”: “This is a test123”
},
{
“enabled”: true,
“name”: “solstice wireless display”,
“length”: 3,
“uri”: “https://www.mersive.com/go.xml”
} ]

Forget Wireless Network

You can send a standard POST IPAddress/api/config request to forget a wireless network with the following request body:

json={"disable": {"ssid":"ssid_name"}}

As a note, this will keep the Pod in dual network mode with the wireless settings still enabled but will not be connected to a network. This was implemented to increase performance for streaming via Miracast.

Licensing

m_licenseCuration

Key

Type

Get/Post

Description

licenseStatus

int

Get

0=No license; 1=Error reading license; 2=License OK; 3=License Expired

trustFlags

int

Get

7=fully trusted; <7 and the license isn’t trusted and must be repaired

fulfillmentType

string

Get

“PUBLISHER ACTIVATION” or “TRIAL”

enabled

bool

Get

Tells whether the license on the machine is enabled (1) or disabled (0)

fulfillmentId

string

Get

A unique numerical ID used to distinguish between different machines

entitlementId

string

Get

activation code used to activate the license on this machine

productId

string

Get

“Solstice”

suiteId

string

Get

Should be blank. Internal use.

expirationDate

string

Get

“permanent” or the date the license will expire

featureLine

string

Get

The license string returned from the license server

numDaysToExpiration

int

Get

999999999 if the license is permanent, otherwise the number of days until it expires

maxUsers

string

Get

max number of users allowed by license.  eg. “Unlimited”, “4”

licensing_maxPosts

int

Get

maximum number of posts allowed by the license type.

licensing_maxPostsIsConfigurable

bool

Get

Is the user allowed to change the value of maxPosts?

licensing_atMaxPostsReplace

bool

Get

When the max post count is reached, should the next post replace (1) or not display (0)?

licensing_maxUsers

int

Get

maximum users allowed (0=Unlimited)

licensing_maxUsersIsConfigurable

bool

Get

Is the user allowed to change the value of maxUsers?

licensing_remoteViewEnabled

bool

Get

Can remote view be enabled?

licensing_remoteViewIsConfigurable

bool

Get

Is remote view able to be configured?

licensing_runtimeAccessControls

bool

Get

Can users can select the runtime access (moderated, screen key, etc.)?

Passwords

m_userGroupCuration

Key

Type

Get/Post

Description

adminPassword

string

Post

Administrative password for host. Note – Get on this value will always return “unknown”.

passwordValidationEnabled

bool

Get/Post

Enable/Disable validation of admin password using the following rules:
•     Minimum of 8 characters.
•     At least one uppercase and one lowercase character.
•     At least one number or special character.

System Settings Record

m_systemCuration

Key

Type

Get/Post

Description

autoDateTime

bool

Get/Post

Enable or disable the use of an NTP time server.  If disabled, date and time is set manually.

ntpServer

string

Get/Post

Non-default NTP time server IP Address. If left blank, a default internet time server will be used when autoDateTime is true.

dateTime

int

Get

Date and time value, represented as a 64-bit integer in milliseconds since January 1, 1970, 00:00:00 GMT.

timeZone

string

Get/Post

Time zone code represented as a string from the set of available time zones.

timeZones

string array

Get

Array of available time zone strings. See the Valid Time Zones topic. 

scheduledRestartEnabled

bool

Get/Post

Enable or disable a daily Pod restart. Restarting the pod helps refresh memory usage and maximize performance.

scheduledRestartTime

string

Get/Post

View and set the time for the daily Pod restart.

The format is “hh:mm”. Hours are 00 – 23 and minutes are 00 – 59.

Splashscreen Commands

The background image shows on a Solstice-enabled display when no content is shared.  The ‘classic’ splash screen has a single, static image, while the ‘modern’ splash screen can have up to 6 custom images in the carousel.

  • Changing the Classic Splash Screen Image:
  • POST your desired file (key is “file”) to IPaddress/api/config/splashbackground as type formData.  In Postman or a similar tool, you can do this by entering the URL, selecting ‘POST’, entering ‘file’ as the key, and changing the value type from ‘text’ to ‘file’.  This will allow you to upload a file from your computer and post it to the Solstice host.

    Reset the background to the default image by changing the value type back to ‘text’ and entering ‘reset default’ as the value.  POST to the URL to see the change on your Solstice host.

  • Changing the Modern Splash Screen Image(s):
  • There are 6 slots for custom images in the modern splash screen carousel, numbered 0-5.  To upload a new image or reset a specific image to the carousel, use the same command as the classic splash screen appended with ‘/n’ where n is the number of the image to be changed.

    For example, to upload a new image to the 4th place in the carousel, you would POST your image file to IPaddress/api/config/splashbackground/3.

    Note that you cannot remove images from the carousel via the API – that can only be done using the dashboard.  If you are only using the first 3 spots then POST ‘reset default’ to IPaddress/api/config/splashbackground/4, the 5th location in the carousel will be populated with the default image and added to your carousel.

Power Management

Power management offers the ability to schedule when pods will stop sending an HDMI output signal after being idle for a specified amount of time, as well as the ability to turn the HDMI signal on and off on demand.

m_powerManagementCuration

Key 

Type 

Get/Post 

Description 

enabled 

bool 

Get/Post 

Enable or disable power management.

weekdaysAllDay

bool 

Get/Post 

On weekdays power management applies all day.

weekdaysBegin

string

Get/Post 

When All Day is false, this is the hour and minute that power management starts.
The format is “hh:mm”. Hours are 00 – 23 and minutes are 00 – 59.

weekdaysDelayMinutes

int

Get/Post 

On weekdays this is the number of minutes of inactivity until the Pod turns off the display. The accepted range is 1 – 120.

weekdaysEnd

string

Get/Post 

When All Day is false, this is the hour and minute that power management ends.
The format is “hh:mm”. Hours are 00 – 23 and minutes are 00 – 59.

weekendAllDay

bool

Get/Post 

On weekends power management applies all day.

weekendBegin

string

Get/Post 

When All Day is false, this is the hour and minute that power management starts.
The format is “hh:mm”. Hours are 00 – 23 and minutes are 00 – 59.

weekendDelayMinutes

int

Get/Post 

On weekdays this is the number of minutes of inactivity until the Pod turns off the display. The accepted range is 1 – 120.

weekendEnd

string

Get/Post 

When All Day is false, this is the hour and minute that power management ends.
The format is “hh:mm”. Hours are 00 – 23 and minutes are 00 – 59.

Power Management Commands

In addition to the standard scheduling and configuration settings, power management supports dedicated commands for turning the HDMI output on and off.

  • GET IPAddress/api/control/suspend immediately puts the Pod in standby mode.
  • GET IPAddress/api/control/wake immediately wakes the Pod from standby mode.

Note that suspend commands will be ignored if the pod is actively in use, there is a scheduled meeting within 15 minutes of the current time, or when an emergency message is being broadcast.

HDMI Input

The hdmi_input object allows you to turn off the HDMI input port on the front of the Pod. When hdmi_input is forced off, the Pod will ignore any device that connects to this port.

The following cURL command provides an example of how to turn off the HDMI input port:

C:\API> curl -k https://192.168.2.148/api/config/hdmi_input -d force_off=true

{"rebootRequired":false, "restartRequired": false}

The following cURL command provides an example of how to turn on the HDMI input port:

C:\API> curl -k https://192.168.2.148/api/config/hdmi_input -d force_off=false

{"rebootRequired":false, "restartRequired": false}

If a password has been set on the Pod, use the -u option to have the cURL command prompt for the Pod's admin password. For example, you might enter something like this:

C:\API> curl -k -u admin https://192.168.2.148/api/config/hdmi_input -d force_off=true
Enter host password for user 'admin':

{"rebootRequired":false, "restartRequired": false}

The hdmi_input setting does not persist through a Pod reboot. If the Pod reboots, it will revert back to the default setting for hdmi_input which is force_off=false.

Next Topic

Calendar API