Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39

These endpoints allow users to manage their settings in the current network. 

Base URL for these endpoints: https://api.bsn.cloud/2022/06/REST

_________________________________________________________________________

GET /Self/ 

Returns your Person Entity (2022/06) information

Required Scope Token

bsn.api.self.info.retrieve

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

GET /2022/06/REST/Self/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: Returns the Person Entity

Example

This is an example of a 200 level response:

{
   "id": 12345,
   "login": "JaneDoe@brightsign.biz",
   "password": null,
   "firstName": "Jane",
   "lastName": "Doe",
   "creationDate": "2020-07-09T19:05:20.247Z",
   "lastModifiedDate": "2020-07-09T19:05:20.247Z",
   "activationDate": "2020-07-09T19:05:38.723Z"
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /Self/ 

Registers the person and returns your person credentials (except the password if it was provided in your request). 

Required Scope Token

None

______________________________________________________________

Query String Parameter

returnURL string optional

If this parameter is not specified, the default value is https://bsn.cloud/.

______________________________________________________________

Request Body

The Person Entity. If you specify a password that matches our security policy, the server will apply the password you specify and will not return a password. If you do not specify a password, the server will generate a password and return it to you.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • returnURL is set to https://bsn.cloud/

POST /2022/06/REST/Self/?returnURL=https%3A%2F%2Fbsn.cloud%2F HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 309

This is the example request body:

{
   "id": 0,
   "login": "JaneDoe@gmail.com",
   "password": null,
   "firstName": "Jane",
   "lastName": "Doe",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "activationDate": "0001-01-01T00:00:00"
}

______________________________________________________________

Response

Success Response Body

200: Returns the Person Entity

Example

{
   "id": 12345,
   "login": "JaneDoe@gmail.com",
   "password": "7t#Sqg7*",
   "firstName": "Jane",
   "lastName": "Doe",
   "creationDate": "2023-12-01T16:47:03.3893279Z",
   "lastModifiedDate": "2023-12-01T16:47:03.3893279Z",
   "activationDate": null
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

Endpoints:


PUT /Self/ 

Updates the requestor’s information (your profile). 

Any customer can edit their own password, first name, and last name regardless of network membership, but cannot edit someone else's name or password.

The login property, whose values are email addresses, is a key and not editable. To give another customer access to that property or handle an email address change, a user with sufficient privileges need to create a new person, add it to the same network, assign them to the same role, and copy the custom user permissions (if any) from an existing user. This can be done in the Users Endpoints (2022/06)#POST API call.

Required Scope

bsn.api.self.info.update

______________________________________________________________

Request Body

The Person Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

PUT /2022/06/REST/Self/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 280

This is the example request body:

{
   "id": 0,
   "login": "JaneDoe@brightsign.biz",
   "password": null,
   "firstName": "Jane",
   "lastName": "Doe",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "activationDate": "0001-01-01T00:00:00"
}

______________________________________________________________

Response

Success

204: The specified person has been updated

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource/person changed since the time specified in the “If-Unmodified-Since” header value)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /{login}/Password/ 

Initiate a password reset for a person

Required Scope

None

______________________________________________________________

Segment

login string 

The person's login in the form of an email address

returnURL string optional

A callback URL that the authentication server will return to the user in case of a successful password reset

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JaneDoe@brightsign.biz

  • returnURL is set to https://bsn.cloud/

GET /2022/06/REST/JaneDoe%40brightsign.biz/Password?returnUrl=https%3A%2F%2Fbsn.cloud%2F HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Accept-Encoding: gzip,deflate
Accept: application/json, application/vnd.bsn.error

______________________________________________________________

Response

Success Response Body

202: On success, this method triggers an email to your login which contains a reference to a password reset page and a return URL as a callback

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Profile/ 

Returns a complete person profile

Required Scope Token

bsn.api.self.profile.retrieve

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

GET /2022/06/REST/Self/Profile/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: The return type is object, where property names are profile keys and the profile values are those property values

Example

{
   "personAccessTokenLifetime": "00:15:00",
   "personRefreshTokenLifetime": "1.00:00:00"
}

Failure

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

5XX: Any 500 code is an internal server error

POST /Self/Profile/ 

Creates a new profile property for a person

Required Scope Token

bsn.api.self.profile.update

______________________________________________________________

Request Body

pair <string, string>

 A key value pair of the person profile property

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

POST /2022/06/REST/Self/Profile/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 44

This is the example request body:

{
	"key": "NewProperty1",
	"value": "111"
}

______________________________________________________________

Response

Success Response Body

201: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. Returns an object where property names correspond to profile keys and property values correspond to profile names.

Example

{
   "key": "NewProperty1",
   "value": "111"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: Either the request is malformed and therefore invalid, or the specified profile property key is reserved or longer than 62 characters

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

409: The person profile property with the specified key already exists

413: The length of the specified person property profile value exceeds the 64KB limit

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Profile/{key}/ 

Returns a profile property value for a person

Required Scope Token

bsn.api.self.profile.retrieve

______________________________________________________________

Segment

key string

The name of the profile property

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • key is set to PersonAccessTokenLifetime

GET /2022/06/REST/Self/Profile/PersonAccessTokenLifetime/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns a profile property value

Example

This is an example of a 200 level response:

"00:15:00"

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT  /Self/Profile/{key}/ 

Creates or updates a person profile property value 

Required Scope Token

bsn.api.self.profile.update

______________________________________________________________

Segment

key string 

The name of the profile property

______________________________________________________________

Request Body

string

The profile property value to update

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • key is set to PersonRefreshTokenLifetime

PUT /2022/06/REST/Self/Profile/PersonRefreshTokenLifetime/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 12

This is the example request body:

"1.00:00:00"

______________________________________________________________

Response

Success

201: Returns this status code if the person property value is defined for first time

204: Returns this status code if the person property value already exists and has been updated

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

413: The length of the specified user profile property exceeds the 64KB limit

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

DELETE  /Self/Profile/{key}/ 

Removes a profile property for a person

Required Scope Token

bsn.api.self.profile.update

______________________________________________________________

Segment

key string

The name of the profile property

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • key is set to NewProperty1

DELETE /2022/06/REST/Self/Profile/NewProperty1/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success

204: The profile property has been removed

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

5XX: Any 500 code is an internal server error

GET /Self/Tokens/{token}/ 

Gets the status of the specified OAuth2 person access or refresh token

Required Scope Token

bsn.api.self.token.validate

______________________________________________________________

Segment

token string 

 A person access or refresh token

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • token is set to {{Token}}

GET /2022/06/REST/Self/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the Token Info Entity

Example

{
   "token": {{Token}},
   "scope": "bsn.api.self",
   "validFrom": "2023-11-29T17:43:55Z",
   "validTo": "2023-11-29T17:58:55Z"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The specified person or access refresh token is expired, revoked, or invalid.

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

DELETE /Self/Tokens/{token}/ 

Revokes a person access or refresh token

Required Scope Token

bsn.api.self.token.revoke

______________________________________________________________

Segment

token string

 A person access or refresh token

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • token is set to {{Token}}

DELETE /2022/06/REST/Self/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success

204: The person access or refresh token has been deleted

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The specified person or access refresh token is expired, revoked, or invalid.

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/ 

Returns the networks associated with a person

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

GET /2022/06/REST/Self/Networks/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns an array of Network Entity instances in which the current person is a member

Example

[
  {
    "id": 12345,
    "name": "ControlCloud_Network1",
    "creationDate": "2020-07-14T18:40:58.087Z",
    "lastModifiedDate": "2020-07-14T18:40:58.087Z",
    "lockoutDate": null,
    "isLockedOut": false,
    "lastLockoutDate": null,
    "settings": {
      "userAccessTokenLifetime": "00:15:00",
      "userRefreshTokenLifetime": "1.00:00:00",
      "deviceAccessTokenLifetime": "00:15:00",
      "deviceRefreshTokenLifetime": "730.00:00:00",
      "deviceRegistrationTokenLifetime": "730.00:00:00",
      "automaticTaggedPlaylistApprovalEnabled": false,
      "lastModifiedDate": "2020-07-14T18:41:00.613Z"
    },
    "subscription": {
      "id": 12345,
      "level": "Control",
      "creationDate": "2020-07-14T18:40:58.783Z",
      "lastModifiedDate": "2020-07-14T18:40:58.783Z",
      "expireDate": null
    }
  }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /Self/Networks/ 

Creates a network for the person.

Required Scope Token

bsn.api.self.networks.create

______________________________________________________________

Request Body

The Network Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

POST /2022/06/REST/Self/Networks/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 581

This is the example request body:

{
  "id": 0,
  "name": "TestDisplay",
  "creationDate": "0001-01-01T00:00:00",
  "lastModifiedDate": "0001-01-01T00:00:00",
  "lockoutDate": null,
  "isLockedOut": false,
  "lastLockoutDate": null,
  "settings": {
    "userAccessTokenLifetime": "00:15:00",
    "userRefreshTokenLifetime": "1.00:00:00",
    "deviceAccessTokenLifetime": "00:15:00",
    "deviceRefreshTokenLifetime": "730.00:00:00",
    "deviceRegistrationTokenLifetime": "730.00:00:00",
    "automaticTaggedPlaylistApprovalEnabled": false,
    "lastModifiedDate": "0001-01-01T00:00:00"
  },
  "subscription": null
}

______________________________________________________________

Response

Success Response Body

201: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. The response includes the network entity (see Network Entity).

Example

{
   "id": 12345,
   "name": "TestDisplay",
   "creationDate": "2023-12-07T18:29:58.5041056Z",
   "lastModifiedDate": "2023-12-07T18:29:58.5041056Z",
   "lockoutDate": null,
   "isLockedOut": false,
   "lastLockoutDate": null,
   "settings":    {
      "userAccessTokenLifetime": "00:15:00",
      "userRefreshTokenLifetime": "1.00:00:00",
      "deviceAccessTokenLifetime": "00:15:00",
      "deviceRefreshTokenLifetime": "730.00:00:00",
      "deviceRegistrationTokenLifetime": "730.00:00:00",
      "automaticTaggedPlaylistApprovalEnabled": false,
      "lastModifiedDate": "2023-12-07T18:29:58.5041056Z"
   },
   "subscription":    {
      "id": 12345,
      "level": "Control",
      "creationDate": "2023-12-07T18:29:58.5142438Z",
      "lastModifiedDate": "2023-12-07T18:29:58.5142438Z",
      "expireDate": null
   }
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{id:int}/ 

Get a network associated with a specified id

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

id int

The unique identifier for a network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Networks/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: Returns the Network Entity

Example

This is an example of a 200 level response:

{
   "id": 12345,
   "name": "JaneDoeTesting",
   "creationDate": "2020-07-09T19:09:04.937Z",
   "lastModifiedDate": "2020-07-09T19:09:04.937Z",
   "lockoutDate": null,
   "isLockedOut": false,
   "lastLockoutDate": null,
   "settings":    {
      "userAccessTokenLifetime": "00:15:00",
      "userRefreshTokenLifetime": "1.00:00:00",
      "deviceAccessTokenLifetime": "00:15:00",
      "deviceRefreshTokenLifetime": "730.00:00:00",
      "deviceRegistrationTokenLifetime": "730.00:00:00",
      "automaticTaggedPlaylistApprovalEnabled": false,
      "lastModifiedDate": "2020-07-09T19:09:06.77Z"
   },
   "subscription":    {
      "id": 12345,
      "level": "Content",
      "creationDate": "2020-08-17T20:49:45.633Z",
      "lastModifiedDate": "2020-08-17T20:49:45.633Z",
      "expireDate": "2030-08-16T00:00:00Z"
   }
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PATCH /Self/Networks/{networkId:int}/ 

Applies changes to a network associated with a specified id

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

networkId int

The unique identifier for a network

______________________________________________________________

Request Body

These properties are entries in an array. Every entry must have all three of these properties:

op string:  The type of operation - in this case it is always "replace"

path string: A Uri path that references the location within the target document where the update will be performed

value:  The replacement value(s) for the id or serial of the group(s). This can be an array.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • networkId is set to 12345

PATCH /2022/06/REST/Self/Networks/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 94

This is the example request body:

[
  {
    "op": "replace",
    "path": "/subscription/level/",
    "value": "Trial"
  }
]

______________________________________________________________

Response

Success

204The parameters have been successfully replaced

Failure

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

404: The server cannot find the requested resource (the path does not exist)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{name}/ 

Returns a network associated with a specified name.

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

name string

The name of a network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • name is set to JaneDoeTesting

GET /2022/06/REST/Self/Networks/JaneDoeTesting/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the Network Entity

Example

This is an example of a 200 level response:

{
   "id": 12345,
   "name": "JaneDoeTesting",
   "creationDate": "2020-07-09T19:09:04.937Z",
   "lastModifiedDate": "2020-07-09T19:09:04.937Z",
   "lockoutDate": null,
   "isLockedOut": false,
   "lastLockoutDate": null,
   "settings":    {
      "userAccessTokenLifetime": "00:15:00",
      "userRefreshTokenLifetime": "30.00:00:00",
      "deviceAccessTokenLifetime": "00:15:00",
      "deviceRefreshTokenLifetime": "730.00:00:00",
      "deviceRegistrationTokenLifetime": "730.00:00:00",
      "automaticTaggedPlaylistApprovalEnabled": false,
      "lastModifiedDate": "2023-12-07T21:41:44.01Z"
   },
   "subscription":    {
      "id": 12345,
      "level": "Content",
      "creationDate": "2020-08-17T20:49:45.633Z",
      "lastModifiedDate": "2020-08-17T20:49:45.633Z",
      "expireDate": "2030-08-16T00:00:00Z"
   }
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PATCH /Self/Networks/{networkName}/ 

Applies changes to a network associated with a specified id

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

networkName string

The name of the network

______________________________________________________________

Request Body

These properties are entries in an array. Every entry must have all three of these properties:

op string:  The type of operation - in this case it is always "replace"

path string: A Uri path that references the location within the target document where the update will be performed

value:  The replacement value(s) for the id or serial of the group(s). This can be an array.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • networkName is set to JaneDoeTesting

PATCH /2022/06/REST/Self/Networks/JaneDoeTesting/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 94

This is the example request body:

[
  {
    "op": "replace",
    "path": "/subscription/level/",
    "value": "Trial"
  }
]

______________________________________________________________

Response

Success

204The parameters have been successfully replaced

Failure

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

404: The server cannot find the requested resource (the path does not exist)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{id:int}/Settings/ 

Returns the settings associated with a specified network.

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

id int 

The unique identifier for a network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Networks/12345/Settings/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200Returns the Network Settings Entity

Example

This is an example of a 200 level response:

{
   "userAccessTokenLifetime": "00:15:00",
   "userRefreshTokenLifetime": "1.00:00:00",
   "deviceAccessTokenLifetime": "00:15:00",
   "deviceRefreshTokenLifetime": "730.00:00:00",
   "deviceRegistrationTokenLifetime": "730.00:00:00",
   "automaticTaggedPlaylistApprovalEnabled": false,
   "lastModifiedDate": "2020-07-09T19:09:06.77Z"
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Networks/{id:int}/Settings/ 

Update the settings associated with a specified network

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

id int 

The unique identifier for a network

______________________________________________________________

Request Body

The Network Settings Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

PUT /2022/06/REST/Self/Networks/12345/Settings/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 335

This is the example request body:

{
   "userAccessTokenLifetime": "00:15:00",
   "userRefreshTokenLifetime": "30.00:00:00",
   "deviceAccessTokenLifetime": "00:15:00",
   "deviceRefreshTokenLifetime": "730.00:00:00",
   "deviceRegistrationTokenLifetime": "730.00:00:00",
   "automaticTaggedPlaylistApprovalEnabled": false,
   "lastModifiedDate": "0001-01-01T00:00:00"
}

______________________________________________________________

Response

Success

204: The specified settings have been updated on the network

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{name}/Settings/ 

Get the settings associated with a specified network.

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

name string 

The network name

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to JaneDoeTesting

GET /2022/06/REST/Self/Networks/JaneDoeTesting/Settings/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the Network Settings Entity

Example

{
   "userAccessTokenLifetime": "00:15:00",
   "userRefreshTokenLifetime": "1.00:00:00",
   "deviceAccessTokenLifetime": "00:15:00",
   "deviceRefreshTokenLifetime": "730.00:00:00",
   "deviceRegistrationTokenLifetime": "730.00:00:00",
   "automaticTaggedPlaylistApprovalEnabled": false,
   "lastModifiedDate": "2020-07-09T19:09:06.77Z"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Networks/{name}/Settings/ 

Update the settings associated with a specified network

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

name string

The network name

______________________________________________________________

Request Body

The Network Settings Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • name is set to JaneDoeTesting

PUT /2022/06/REST/Self/Networks/JaneDoeTesting/Settings/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 335

This is the example request body:

{
   "userAccessTokenLifetime": "00:15:00",
   "userRefreshTokenLifetime": "30.00:00:00",
   "deviceAccessTokenLifetime": "00:15:00",
   "deviceRefreshTokenLifetime": "730.00:00:00",
   "deviceRegistrationTokenLifetime": "730.00:00:00",
   "automaticTaggedPlaylistApprovalEnabled": false,
   "lastModifiedDate": "0001-01-01T00:00:00"
}

______________________________________________________________

Response

Success

204: The network settings have been updated

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{id:int}/Subscription/ 

Returns the current subscription information associated with a specified network.

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

id int 

The unique identifier for a network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Networks/12345/Subscription/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: Returns the Network Subscription Entity

Example

This is an example of a 200 level response:

{
   "id": 12345,
   "level": "Content",
   "creationDate": "2020-08-17T20:49:45.633Z",
   "lastModifiedDate": "2020-08-17T20:49:45.633Z",
   "expireDate": "2030-08-16T00:00:00Z"
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Networks/{id:int}/Subscription/ 

Updates the current subscription information associated with a specified network. A regular user can only use this to enable a trial period of the Content Cloud (if it was not previously enabled).

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

id int 

The unique identifier for a network

______________________________________________________________

Request Body

The Network Subscription Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

PUT /2022/06/REST/Self/Networks/12345/Subscription/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 114

This is the example request body:

{
   "id": 0,
   "level": "Trial",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "expireDate": null
}

______________________________________________________________

Response

Success

204: The subscription information was updated

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{name}/Subscription/ 

Returns the current subscription information associated with a specified network.

Required Scope

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

name string

The network name

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • name is set to JaneDoeTesting

GET /2022/06/REST/Self/Networks/JaneDoeTesting/Subscription/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the Network Subscription Entity

Example

{
   "id": 12345,
   "level": "Trial",
   "creationDate": "2020-08-17T20:49:45.633Z",
   "lastModifiedDate": "2020-08-17T20:49:45.633Z",
   "expireDate": "2030-08-16T00:00:00Z"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Networks/{name}/Subscription/ 

Updates the current subscription information associated with a specified network. A regular user can only use this to enable a trial period of the Content Cloud (if it was not previously enabled).

Required Scope Token

bsn.api.self.networks.update

______________________________________________________________

Segment

name string

The network name

______________________________________________________________

Request Body

The Network Subscription Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • name is set to JaneDoeTesting

PUT /2022/06/REST/Self/Networks/JaneDoeTesting/Subscription/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 114

This is the example request body:

{
   "id": 0,
   "level": "Trial",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "expireDate": null
}

______________________________________________________________

Response

Success

204: Updated the subscription information associated with the network

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{id:int}/Subscriptions/ 

Returns the current subscription, and all previously expired subscriptions, associated with a specified network

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

id int 

The network identifier

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Networks/12345/Subscriptions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns an array of Network Subscription entities 

Example

[
      {
      "id": 12347,
      "level": "Content",
      "creationDate": "2020-08-17T20:49:45.633Z",
      "lastModifiedDate": "2020-08-17T20:49:45.633Z",
      "expireDate": "2030-08-16T00:00:00Z"
   },
      {
      "id": 12346,
      "level": "Trial",
      "creationDate": "2020-07-24T23:05:45.517Z",
      "lastModifiedDate": "2020-07-24T23:05:45.517Z",
      "expireDate": "2020-08-17T20:49:45.633Z"
   },
      {
      "id": 12345,
      "level": "Control",
      "creationDate": "2020-07-09T19:09:05.853Z",
      "lastModifiedDate": "2020-07-09T19:09:05.853Z",
      "expireDate": "2020-07-24T23:05:45.517Z"
   }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Networks/{name}/Subscriptions/ 

Returns the current subscription, and all previously expired subscriptions, associated with a specified network

Required Scope Token

bsn.api.self.networks.retrieve

______________________________________________________________

Segment

name string

The network name

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • name is set to JaneDoeTesting

GET /2022/06/REST/Self/Networks/JaneDoeTesting/Subscriptions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns an array of Network Subscription entities 

Example

[
      {
      "id": 12347,
      "level": "Content",
      "creationDate": "2020-08-17T20:49:45.633Z",
      "lastModifiedDate": "2020-08-17T20:49:45.633Z",
      "expireDate": "2030-08-16T00:00:00Z"
   },
      {
      "id": 12346,
      "level": "Trial",
      "creationDate": "2020-07-24T23:05:45.517Z",
      "lastModifiedDate": "2020-07-24T23:05:45.517Z",
      "expireDate": "2020-08-17T20:49:45.633Z"
   },
      {
      "id": 12345,
      "level": "Control",
      "creationDate": "2020-07-09T19:09:05.853Z",
      "lastModifiedDate": "2020-07-09T19:09:05.853Z",
      "expireDate": "2020-07-24T23:05:45.517Z"
   }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/ 

Returns all user entities that the customer is associated with over all networks where the person has a user record

Required Scope Token

bsn.api.self.users.retrieve

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

GET /2022/06/REST/Self/Users/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns an array of user entities (see User Entity) if the user is a member of multiple networks, or to a single User Entity if the user is only a member of one network, or nothing if the user is not a member of any network.

Example

[
      {
      "id": 12345,
      "person":       {
         "id": 1234,
         "login": "JaneDoe@brightsign.biz",
         "password": null,
         "firstName": "Jane",
         "lastName": "Doe",
         "creationDate": "2020-07-09T19:05:20.247Z",
         "lastModifiedDate": "2023-11-29T17:40:54.403Z",
         "activationDate": "2020-07-09T19:05:38.723Z"
      },
      "network":       {
         "id": 1234,
         "name": "JaneDoeTesting"
      },
      "description": "Network Administrator",
      "creationDate": "2020-07-09T19:09:04.98Z",
      "lastModifiedDate": "2020-08-17T20:49:48.377Z",
      "lastLoginDate": "2023-12-07T22:11:53.24Z",
      "isLockedOut": false,
      "lastLockoutDate": null,
      "roleName": "Administrators",
      "permissions":       [
                  {
            "entityId": 12345,
            "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
            "principal":             {
               "login": "JaneDoe@brightsign.biz",
               "type": "User",
               "id": 1234
            },
            "isFixed": true,
            "isInherited": false,
            "isAllowed": true,
            "creationDate": "2020-08-17T20:49:48.353Z"
         }
      ]
   }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET  /Self/Users/{id:int}/ 

Returns information about your membership in a network

Required Scope Token

bsn.api.self.users.retrieve

______________________________________________________________

Segment

id int 

The unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: Returns the User Entity

Example

This is an example of a 200 level response:

{
  "id": 12345,
  "person": {
    "id": 1234,
    "login": "JaneDoe@brightsign.biz",
    "password": null,
    "firstName": "Jane",
    "lastName": "Doe",
    "creationDate": "2020-07-09T19:05:20.247Z",
    "lastModifiedDate": "2023-11-29T17:40:54.403Z",
    "activationDate": "2020-07-09T19:05:38.723Z"
  },
  "network": {
    "id": 1234,
    "name": "JaneDoeTesting"
  },
  "description": "Network Administrator",
  "creationDate": "2020-07-09T19:09:04.98Z",
  "lastModifiedDate": "2020-08-17T20:49:48.377Z",
  "lastLoginDate": "2023-12-07T22:11:53.24Z",
  "isLockedOut": false,
  "lastLockoutDate": null,
  "roleName": "Administrators",
  "permissions": [
    {
      "entityId": 12345,
      "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
      "principal": {
        "login": "JaneDoe@brightsign.biz",
        "type": "User",
        "id": 1234
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": true,
      "creationDate": "2020-08-17T20:49:48.353Z"
    }
  ]
}

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Role/ 

Returns information about the role you have in a network

Required Scope Token

bsn.api.self.roles.retrieve

______________________________________________________________

Segment

id int 

The unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/Role/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: This returns the User Entity

Example

This is an example of a 200 level response:

{
   "id": 12345,
   "isCustom": true,
   "name": "CustomRole",
   "description": "",
   "creationDate": "2023-07-10T14:16:58.433Z",
   "userCount": 1,
   "users": null,
   "permissions":    [
            {
         "entityId": null,
         "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
         "principal":          {
            "name": "CustomRole",
            "isCustom": true,
            "type": "Role",
            "id": 12345
         },
         "isFixed": false,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2023-08-17T20:49:45.793Z"
      }
   ]
}

Success Response

204: No content (the user is not assigned to a role)

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Profile/ 

Returns the user profile settings

Required Scope Token

bsn.api.self.users.profile.retrieve

______________________________________________________________

Segment

id int

The unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/Profile/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{PersonAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: The return type is object, where property names are profile keys and the profile values are those property values

Example

{
   "enableCustomRolesManagement": "true",
   "showAdvancedSecuritySettings": "False"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /Self/Users/{id:int}/Profile/ 

Creates a new user profile property (it does not replace an existing user profile property)

Required Scope Token

bsn.api.self.users.profile.update

______________________________________________________________

Segment

id int 

The unique identifier for a user

______________________________________________________________

Request Body

pair <string, string>

 A key value pair. There should be not more than 100 properties per user, and each property value should be not more than 64KB. 

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

POST /2022/06/REST/Self/Users/12345/Profile/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 45

This is the example request body:

{
	"key": "New Key 1",
	"value": "My Value"
}

______________________________________________________________

Response

Success Response Body

201: Returns the key value pair and a link to the GET method to retrieve it. 

Example

{
   "key": "New Key 1",
   "value": "My Value"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

409: The profile property with the specified key already exists or is reserved

413: The specified profile property value size exceeds the 64KB limit

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Profile/{key}/ 

Returns the value of a user profile property

Required Scope Token

bsn.api.self.users.profile.retrieve

______________________________________________________________

Segment

id int 

The unique identifier for a user

key string 

The name of the profile property

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • key is set to New Key 1

GET /2022/06/REST/Self/Users/12345/Profile/New%20Key%201 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response with Body

200: Returns the value of the requested user profile key 

Example

This is an example of a status 200 response:

"My Value"

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Users/{id:int}/Profile/{key}/ 

Creates or updates the value of a user profile property

Required Scope Token

bsn.api.self.users.profile.update

______________________________________________________________

Segments

id int 

The unique identifier for a user

key string 

The name of the profile property

______________________________________________________________

Request Body

string

The profile property value to update

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • key is set to userStartupPage

  • string is set to "Admin"

PUT /2022/06/REST/Self/Users/12345/Profile/userStartupPage HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 7

This is the example request body:

"Admin"

______________________________________________________________

Response 

Success

201: Returns this status code if the property value is defined for first time

204: Returns this status code if the property already exists and has been updated

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: Either the request is malformed and therefore invalid, or the specified user profile property key is reserved or longer than 62 characters 

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

413: The length of the specified user profile property exceeds the 64KB limit

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

DELETE /Self/Users/{id:int}/Profile/{key}/ 

Removes a specified property from a user profile

Required Scope Token

bsn.api.self.users.profile.update

______________________________________________________________

Segments

id int 

The unique identifier for a user

key string 

The name of the profile property

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • key is set to New Key 1

DELETE /2022/06/REST/Self/Users/12345/Profile/New%20Key%201 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success

204: The specified property has been removed from the user profile

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Permissions/ 

Returns the permissions granted to a given user

Required Scope Token

bsn.api.self.users.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the paged list of Permission entities granted to a specific user

Example

[
  {
    "entityId": 12345,
    "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
    "principal": {
      "login": "JohnDoe@brightsign.biz",
      "type": "User",
      "id": 12345
    },
    "isFixed": true,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "2020-08-17T20:49:48.353Z"
  }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Role/Permissions/ 

Returns permissions granted to a given user

Required Scope Token

bsn.api.self.roles.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/Role/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the array of Permission entities granted to a specific role

Example

[
  {
    "entityId": null,
    "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
    "principal": {
      "name": "CustomRole",
      "isCustom": true,
      "type": "Role",
      "id": 12345
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "2020-08-17T20:49:45.793Z"
  }
]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Self/Users/{id:int}/Notifications/ 

Returns the user notification settings

Required Scope Token

bsn.api.self.users.notifications.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

GET /2022/06/REST/Self/Users/12345/Notifications/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns information about whether each setting in User Notification Settings Entity is enabled or disabled

Example

{
   "networkSuspendingNotificationEnabled": false,
   "networkSuspendingNotificationTemplate": null,
   "networkSuspendedNotificationEnabled": true,
   "networkSuspendedNotificationTemplate": null,
   "networkSubscriptionUpgradedNotificationEnabled": true,
   "networkSubscriptionUpgradedNotificationTemplate": null,
   "networkTrialPeriodStartedNotificationEnabled": true,
   "networkTrialPeriodStartedNotificationTemplate": null,
   "networkTrialPeriodExpiringNotificationEnabled": true,
   "networkTrialPeriodExpiringNotificationTemplate": null,
   "networkTrialPeriodExpiredNotificationEnabled": true,
   "networkTrialPeriodExpiredNotificationTemplate": null,
   "deviceFailureNotificationEnabled": false,
   "deviceFailureNotificationTemplate": null,
   "devicesFailureNotificationEnabled": false,
   "devicesFailureNotificationTemplate": null,
   "deviceDisconnectedNotificationEnabled": false,
   "deviceDisconnectedNotificationTemplate": null,
   "devicesDisconnectedNotificationEnabled": false,
   "devicesDisconnectedNotificationTemplate": null,
   "subscriptionCreatedNotificationEnabled": false,
   "subscriptionCreatedNotificationTemplate": null,
   "subscriptionsCreatedNotificationEnabled": false,
   "subscriptionsCreatedNotificationTemplate": null,
   "subscriptionQueuedNotificationEnabled": false,
   "subscriptionQueuedNotificationTemplate": null,
   "subscriptionsQueuedNotificationEnabled": false,
   "subscriptionsQueuedNotificationTemplate": null,
   "graceSubscriptionExpiringNotificationEnabled": false,
   "graceSubscriptionExpiringNotificationTemplate": null,
   "graceSubscriptionsExpiringNotificationEnabled": false,
   "graceSubscriptionsExpiringNotificationTemplate": null,
   "demoSubscriptionExpiringNotificationEnabled": false,
   "demoSubscriptionExpiringNotificationTemplate": null,
   "demoSubscriptionsExpiringNotificationEnabled": false,
   "demoSubscriptionsExpiringNotificationTemplate": null,
   "subscriptionExpiringNotificationEnabled": false,
   "subscriptionExpiringNotificationTemplate": null,
   "subscriptionsExpiringNotificationEnabled": false,
   "subscriptionsExpiringNotificationTemplate": null,
   "subscriptionExpiredNotificationEnabled": false,
   "subscriptionExpiredNotificationTemplate": null,
   "subscriptionsExpiredNotificationEnabled": false,
   "subscriptionsExpiredNotificationTemplate": null,
   "subscriptionSuspendingNotificationEnabled": false,
   "subscriptionSuspendingNotificationTemplate": null,
   "subscriptionsSuspendingNotificationEnabled": false,
   "subscriptionsSuspendingNotificationTemplate": null,
   "subscriptionSuspendedNotificationEnabled": true,
   "subscriptionSuspendedNotificationTemplate": null,
   "subscriptionsSuspendedNotificationEnabled": true,
   "subscriptionsSuspendedNotificationTemplate": null
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /Self/Users/{id:int}/Notifications/ 

Updates the user notification settings

Required Scope Token

bsn.api.self.users.notifications.update

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Body

The User Notification Settings Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

PUT /2022/06/REST/Self/Users/12345/Notifications/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 2799

This is the example request body:

{
   "networkSuspendingNotificationEnabled": false,
   "networkSuspendingNotificationTemplate": null,
   "networkSuspendedNotificationEnabled": true,
   "networkSuspendedNotificationTemplate": null,
   "networkSubscriptionUpgradedNotificationEnabled": true,
   "networkSubscriptionUpgradedNotificationTemplate": null,
   "networkTrialPeriodStartedNotificationEnabled": true,
   "networkTrialPeriodStartedNotificationTemplate": null,
   "networkTrialPeriodExpiringNotificationEnabled": true,
   "networkTrialPeriodExpiringNotificationTemplate": null,
   "networkTrialPeriodExpiredNotificationEnabled": true,
   "networkTrialPeriodExpiredNotificationTemplate": null,
   "deviceFailureNotificationEnabled": false,
   "deviceFailureNotificationTemplate": null,
   "devicesFailureNotificationEnabled": false,
   "devicesFailureNotificationTemplate": null,
   "deviceDisconnectedNotificationEnabled": false,
   "deviceDisconnectedNotificationTemplate": null,
   "devicesDisconnectedNotificationEnabled": false,
   "devicesDisconnectedNotificationTemplate": null,
   "subscriptionCreatedNotificationEnabled": false,
   "subscriptionCreatedNotificationTemplate": null,
   "subscriptionsCreatedNotificationEnabled": false,
   "subscriptionsCreatedNotificationTemplate": null,
   "subscriptionQueuedNotificationEnabled": false,
   "subscriptionQueuedNotificationTemplate": null,
   "subscriptionsQueuedNotificationEnabled": false,
   "subscriptionsQueuedNotificationTemplate": null,
   "graceSubscriptionExpiringNotificationEnabled": false,
   "graceSubscriptionExpiringNotificationTemplate": null,
   "graceSubscriptionsExpiringNotificationEnabled": false,
   "graceSubscriptionsExpiringNotificationTemplate": null,
   "demoSubscriptionExpiringNotificationEnabled": false,
   "demoSubscriptionExpiringNotificationTemplate": null,
   "demoSubscriptionsExpiringNotificationEnabled": false,
   "demoSubscriptionsExpiringNotificationTemplate": null,
   "subscriptionExpiringNotificationEnabled": false,
   "subscriptionExpiringNotificationTemplate": null,
   "subscriptionsExpiringNotificationEnabled": false,
   "subscriptionsExpiringNotificationTemplate": null,
   "subscriptionExpiredNotificationEnabled": false,
   "subscriptionExpiredNotificationTemplate": null,
   "subscriptionsExpiredNotificationEnabled": false,
   "subscriptionsExpiredNotificationTemplate": null,
   "subscriptionSuspendingNotificationEnabled": false,
   "subscriptionSuspendingNotificationTemplate": null,
   "subscriptionsSuspendingNotificationEnabled": false,
   "subscriptionsSuspendingNotificationTemplate": null,
   "subscriptionSuspendedNotificationEnabled": true,
   "subscriptionSuspendedNotificationTemplate": null,
   "subscriptionsSuspendedNotificationEnabled": true,
   "subscriptionsSuspendedNotificationTemplate": null
}

______________________________________________________________

Response

Success

204: The specified user notification settings have been updated on the network

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

  • No labels