Copy of REST API (BCN-10683)

ON THIS PAGE

The BrightSign Network REST API exposes its functionality using a standardized architecture of REST endpoints. Developers can use these endpoints to build web applications for creating presentations and playlists, managing devices, monitoring device health, uploading files, and more.

URLs and Endpoints

The base URL for REST endpoints is https://api.brightsignnetwork.com/{version_date}/REST/. The current version is https://api.brightsignnetwork.com/2017/01/REST/

Endpoints are appended to this base URL. Except for the /token endpoint, all BSN endpoints accept trailing slashes (e.g. /presentations/ ).

URL Parameters

Query strings that are appended to endpoint URLs (e.g. "?filter", "?sort") must be URL encoded.

Headers

Accept

All REST calls should contain the "Accept" header. All endpoints support the "application/json" and "application/xml" types–except for the /sessions/ endpoint, which uses a unique set of content types for file uploads.

Note

The BrightSign REST API documentation describes request/response entities using JSON examples and data types (integer, string, array, etc.).

Accept-Encoding

All data retrieval requests should contain the "Accept-Encoding" header. The server supports values of "gzip" and "deflate".

Content-Type

All update/create requests should contain the "Content-Type" header. All endpoints support the "application/json" and "application/xml" types–except for the /sessions/ endpoint, which uses a unique set of content types for file uploads.

Authorization

All requests, except for those to the /token endpoint, must contain the "Authorization" header. See the Authentication page for more details.

Filter Expressions 

GET calls that return multiple items accept the "?filter" query string, which allows the client to filter list returns according to one or more entity values. The query string can have multiple operators joined together with "AND" or "OR".

Example (single operator)
GET /2017/01/REST/Content/?filter=[mediaType]%20IS%20'video' 
Example (multiple operators)
GET /2017/01/REST/Content/?filter=[fileName]%20BEGINS%20WITH%20'ex'%20AND%20[mediaType]%20IS%20'image'

Accepted expressions are described below.

String Operators

Note

 String operators are case-insensitive.

  • [entry] IS '<value>': Returns items that contain the entry equalling <value>. This operation supports the "*" and "?" wildcards.
  • [entry] IS NOT '<value>': Returns items that do not contain the entry equalling <value>. This operation supports the "*" and "?" wildcards. 
  • [entry] BEGINS WITH '<value>': Returns items that contain the entry starting with the <value> substring. 
  • [entry] ENDS WITH '<value>': Returns items that contain the entry ending with the <value> substring. 
  • [entry] CONTAINS '<value>': Returns items that contain the entry with the <value> substring. 
  • [entry] DOES NOT CONTAIN '<value>': Returns items that do not contain the entry with the <value> substring".
  • [entry] CONTAINS ALL ('<value_1>', '<value_2>', [...]): Returns items that contain the entry with all of the specified substrings.
  • [entry] CONTAINS ANY ('<value_1>', '<value_2>', [...]): Returns items that contain the entry with any of the specified substrings.
  • [entry] IS IN ('<value_1>', '<value_2>', [...]): Returns items that contain the entry equalling any of the specified values.
  • [entry] IS NOT IN ('<value_1>', '<value_2>', [...]): Returns items that do not contain the entry equalling any of the specified values.

Enumeration Operators

Some string-value entries are enumerations: For example, the [mediaType] entry on the Content endpoint can only have "Video", "Image", "Audio", "Text", and "Other" values. The following operators can be used with enumeration entries:

  • [entry] IS '<value>': Returns items that contain the entry equalling <value>.
  • [entry] IS NOT '<value>': Returns items that do not contain the entry equalling <value>.
  • [entry] IS IN ('<value_1>', '<value_2>', [...]): Returns items that contain the entry equalling any of the specified values.
  • [entry] IS NOT IN ('<value_1>', '<value_2>', [...]): Returns items that do not contain the entry equalling any of the specified values. 

Number Operators

  • [entry] IS <value>: Returns items that contain the entry equalling <value>.
  • [entry] IS NOT <value>: Returns items that do not contain the entry equalling <value>
  • [entry] IS GREATER THAN <value>: Returns items that contain the entry with a value greater than <value>.
  • [entry] IS LESS THAN <value>: Returns items that contain the entry with a value less than <value>.
  • [entry] IS IN THE RANGE <value> AND <value>: Returns items that contain the entry with a value between the specified range.
  • [entry] IS NOT IN THE RANGE <value> AND <value>: Returns items that do not contain the entry with a value between the specified range.
  • [entry] IS IN (<value_1>, <value_2>, [...]): Returns items that contain the entry equalling any of the specified values.
  • [entry] IS NOT IN (<value_1>, <value_2>, [...]): Returns items that do not contain the entry equalling any of the specified values.
  • GPS LOCATION ([latittude_entry] AND [longitude_entry]) IN (<latitude_value>, <longitude_value>, <distance_value>): Returns items that have coordinate entries within <distance_value> of the specified <latitude_value> and <longitude_value>
  • GPS LOCATION ([latittude_entity] AND [longitude_entity]) NOT IN (<latitude_value>, <longitude_value>, <distance_value>): Returns items that do not have coordinate entries within <distance_value> of the specified <latitude_value> and <longitude_value>

DateTime Operators

Note

DateTime values are formatted as yyyy-mm-ddThh:mm:ss.sssZ.

  • [entry] IS '<dateTime>': Returns items that contain the entry equalling <dateTime>.
  • [entry] IS NOT '<dateTime>': Returns items that do not contain the entry equalling <dateTime>
  • [entry] IS AFTER '<dateTime>': Returns items that contain the entry with a time before <dateTime>.
  • [entry] IS BEFORE '<dateTime>': Returns items that contain the entry with a time after <dateTime>.
  • [entry] IN THE LAST (<units>, <length>, '<dateTime>'): Returns items that have a time entry within <length> before <dateTime>. The time <length> is quantified with the <units> parameter, which can have one of the following values: yearsmonthsdays.
  • [entry] NOT IN THE LAST (<units>, <length>, '<dateTime>'): Returns items that do not have a time entry within <length> before <dateTime>. The time <length> is quantified with the <units> parameter, which can have one of the following values: yearsmonthsdays.
  • [entry] IS IN THE RANGE '<dateTime>' AND '<dateTime>': Returns items that have a time entry that falls between the two <dateTime> values.
  • [entry] IS NOT IN THE RANGE '<dateTime>' AND '<dateTime>': Returns items that do not have a time entry that falls between the two <dateTime> values.
  • [entry] IS IN ('<dateTime_1>', '<dateTime_2>', [...]): Returns items that contain the entry equalling any of the specified values.
  • [entry] IS NOT IN ('<dateTime_1>', '<dateTime_2>', [...]): Returns items that do not contain the entry equalling any of the specified values.

Boolean Operators

  • [entity] IS TRUE: Returns items that contain the entry equalling a true value.
  • [entity] IS FALSE: Returns items that contain the entry equalling a false value.

Note

Leading and trailing spaces aren't valid in BrightSign entity names.