UsersApi Resource

POST /users

For a trusted user, this method allows that user to create another user within our system and also creates an apiKey(auto-generated random) for this user

Request Body
media type data type description
application/json User (JSON) The details of the user to be created. Note: All fields are compulsory
Response Body
media type data type description
application/json User (JSON) A json representing the created user

Example

Request
POST /users
Content-Type: application/json
Accept: application/json

                
{
  "username" : "...",
  "password" : "...",
  "firstName" : "...",
  "lastName" : "...",
  "email" : "...",
  "companyName" : "...",
  "companyCode" : "..."
}
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
{
  "username" : "...",
  "firstName" : "...",
  "email" : "..."
}
                
              

GET /users/apiKey

This method has been deprecated.

For a trusted user, this method allows gets the API key the authenticated user.

Response Body
media type data type description
application/json UserAPIKey (JSON) A structure containing the User and his api key.

Example

Request
GET /users/apiKey
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "user" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "apiKey" : "..."
}
                
              

GET /users/bookmarks

For an authenticated user, this method returns all bookmarked Observers and Sectors.

Response Body
media type data type description
application/json Bookmarks (JSON) A json structure containing information about the bookmarks made by the user.

Example

Request
GET /users/bookmarks
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "observerBookmarks" : [ {
    "observer" : {
      "id" : 12345,
      "name" : "...",
      "created" : { },
      "kpiId" : 12345
    },
    "user" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "editable" : true,
    "language" : "KA"
  }, {
    "observer" : {
      "id" : 12345,
      "name" : "...",
      "created" : { },
      "kpiId" : 12345
    },
    "user" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "editable" : true,
    "language" : "LG"
  } ],
  "sectorBookmarks" : [ {
    "sector" : {
      "id" : 12345,
      "title" : "...",
      "language" : "SG",
      "tariff" : { }
    },
    "user" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "editable" : true
  }, {
    "sector" : {
      "id" : 12345,
      "title" : "...",
      "language" : "SO",
      "tariff" : { }
    },
    "user" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "editable" : true
  } ]
}
                
              

GET /users/copyrequests

For an authenticated user, this method returns all CopyRequests for Observers and Sectors.

Response Body
media type data type description
application/json CopyRequests (JSON) A json structure containing information about the copy request available from the user.

Example

Request
GET /users/copyrequests
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "copyObserverRequests" : [ {
    "observer" : {
      "id" : 12345,
      "name" : "...",
      "created" : { },
      "kpiId" : 12345
    },
    "id" : 12345,
    "sender" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "recipient" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "created" : { }
  }, {
    "observer" : {
      "id" : 12345,
      "name" : "...",
      "created" : { },
      "kpiId" : 12345
    },
    "id" : 12345,
    "sender" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "recipient" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "created" : { }
  } ],
  "copySectorRequests" : [ {
    "sector" : {
      "id" : 12345,
      "title" : "...",
      "language" : "GL",
      "tariff" : { }
    },
    "id" : 12345,
    "sender" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "recipient" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "created" : { }
  }, {
    "sector" : {
      "id" : 12345,
      "title" : "...",
      "language" : "KN",
      "tariff" : { }
    },
    "id" : 12345,
    "sender" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "recipient" : {
      "username" : "...",
      "firstName" : "...",
      "email" : "..."
    },
    "created" : { }
  } ]
}
                
              

GET /users/roles

For a trusted user, this method returns that user's roles.

Response Body
media type data type description
application/json UserRoles (JSON) A structure containing information about the roles of the user.

Example

Request
GET /users/roles
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "user" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "roles" : [ "...", "..." ]
}
                
              

GET /users/usagestatistics

For an authenticated user, this method returns the usage statistics of all observers currently and previously owned by the user

Request Parameters
name type description constraints
timestampBegin query Specifies the start of the date range for which statistics are required. Note: Will be rounded to the nearest month required
timestampEnd query Specifies the end of the date range for which statistics are required Note: Will be rounded to the nearest month required
Response Body
media type data type description
application/json UsageStatistics (JSON) A JSON output representing the usage statistics of the user

Example

Request
GET /users/usagestatistics
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "observerUsageStatistics" : [ {
    "observerId" : 12345,
    "name" : "...",
    "language" : "...",
    "documentCount" : 12345
  }, {
    "observerId" : 12345,
    "name" : "...",
    "language" : "...",
    "documentCount" : 12345
  } ],
  "user" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  }
}
                
              

PUT /users/{userId}

For a trusted user, this method allows that user to modify the details of another user within our system. Note: The userId and emailId of the user cannot be modified and any change in the password in this call will not be reflected

Request Parameters
name type description
userId path
Request Body
media type data type description
application/json User (JSON) The details of the user to be modified. Note: All fields are compulsory
Response Body
media type data type description
application/json User (JSON) A json representing the modified user

Example

Request
PUT /users/{userId}
Content-Type: application/json
Accept: application/json

                
{
  "username" : "...",
  "password" : "...",
  "firstName" : "...",
  "lastName" : "...",
  "email" : "...",
  "companyName" : "...",
  "companyCode" : "..."
}
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "username" : "...",
  "firstName" : "...",
  "email" : "..."
}
                
              

GET /users/confirm/credentials

This method has been deprecated. Use the method GET UsersApi instead.

For a trusted user, this method confirms that the user credentials are correct, returning an empty HTTP 200 OK reply or a HTTP 401 reply on bad user credentials.

NOTE: You are not required to do this call, the user credentials are confirmed on each individual api call. This method only exist if you would like to explicitly confirm the user credentials for some reason.

Response Body
media type data type description
application/json string (JSON)

Example

Request
GET /users/confirm/credentials
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

DELETE /users/copyobserverrequests/{copyRequestId}

For an authenticated user, this method allows that user to decline any copyrequest sent to the user

Request Parameters
name type description constraints
copyRequestId path The copyRequestId of the request to be activated required, min: 1
Response Body
media type data type description
application/json CopyObserverRequest (JSON) A JSON representing the removed sectorCopyRequest.

Example

Request
DELETE /users/copyobserverrequests/{copyRequestId}
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "observer" : {
    "id" : 12345,
    "name" : "...",
    "created" : { },
    "kpiId" : 12345
  },
  "id" : 12345,
  "sender" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "recipient" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "created" : { }
}
                
              

DELETE /users/copysectorrequests/{copyRequestId}

For an authenticated user, this method allows that user to decline any copyrequest sent to the user

Request Parameters
name type description constraints
copyRequestId path The copyRequestId of the request to be activated required, min: 1
Response Body
media type data type description
application/json CopySectorRequest (JSON) A JSON representing the removed sectorCopyRequest.

Example

Request
DELETE /users/copysectorrequests/{copyRequestId}
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "sector" : {
    "id" : 12345,
    "title" : "...",
    "language" : "SG",
    "tariff" : { }
  },
  "id" : 12345,
  "sender" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "recipient" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "created" : { }
}
                
              

POST /users/{userId}/activate

For a trusted user, this method allows that user to activate any new user that has been created Note: From the method POST UsersApi documentation, the confirmation link clicked by the user will also contain a parameter uuId. This parameter needs to be retrieved and passed into this method for activation to work

Request Parameters
name type description constraints
userId path The userId of the user to be activated required
uuId query The uuId received from the confirmation link required
Response Body
media type data type description
application/json boolean (JSON) A boolean representing whether the operation was successful

Example

Request
POST /users/{userId}/activate
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
...
                
              

GET /users/{userId}/apiKey

For a trusted user, this method allows gets the API key of a specified (other) user.

Request Parameters
name type description
userId path The user id of the user whose api key is being requested.
Response Body
media type data type description
application/json UserAPIKey (JSON) A structure containing the User and his api key.

Example

Request
GET /users/{userId}/apiKey
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "user" : {
    "username" : "...",
    "firstName" : "...",
    "email" : "..."
  },
  "apiKey" : "..."
}
                
              

PUT /users/{userId}/email

For a trusted user, this method allows that user to modify the email of another user within our system. After the call is made, a request to change the email is saved on our system, and the email is changed once the request is confirmed from the users' email account.

Refer to POST UsersApi for instructions on sending the confirmation to the user

Please note that after 1 month, if the request is not confirmed, it is deleted

Request Parameters
name type description constraints
userId path The userId of the user whose email is to be modified  
email query The new email for the user required

Example

Request
PUT /users/{userId}/email
Content-Type: */*

                
...
                
              
Response
HTTP/1.1 204 No Content

              

PUT /users/{userId}/password

For a trusted user, this method allows that user to modify the password of another user within our system.

Request Parameters
name type description constraints
userId path The userId of the user whose password is to be modified  
password query The new password for the user required

Example

Request
PUT /users/{userId}/password
Content-Type: */*

                
...
                
              
Response
HTTP/1.1 204 No Content

              

POST /users/{userId}/sendConfirmationEmail

For a trusted user, this method allows that user to send a confirmation link to a user, to either activate his account or change the email id associated with his account. Please Note: For security reasons, we require that you provide us with the confirmation link that you would like the user to redirect to when he receives the email. In the body of the email, you would also be required to replace all occurrences of the confirmation link with the following string: {<%URL_PlaceHolder%>}. We require this as we will be appending a parameter to this link and the name of this parameter is uuId. When the user clicks this link, we require you to retrieve this uuId parameter and pass it as a parameter to the POST UsersApi or POST UsersApi call. Also, if you would like the email to be send from your email server, you may do that, but your email server must be registered with us.

Request Parameters
name type description default constraints
userId path The userId of the new user (to be activated)    
confirmationLink query The confirmation link for a user to confirm his email id (preferably on your server). We will append a parameter to this.   required
confirmationType query The type of confirmation email it is, user-activation, or email-change USER_ACTIVATION "EMAIL_MODIFICATION" or "USER_ACTIVATION"
Request Body
media type data type description
application/json Email (JSON) The details of the email to be sent to the new user. In the body of the email, all occurrences of the confirmationLink link must be replace with <%URL_PlaceHolder%>, else the user will not be activated
Response Body
media type data type description
application/json boolean (JSON) A boolean representing whether the operation was successful

Example

Request
POST /users/{userId}/sendConfirmationEmail
Content-Type: application/json
Accept: application/json

                
{
  "senderName" : "...",
  "senderEmail" : "...",
  "recipientAddress" : "...",
  "subject" : "...",
  "body" : "...",
  "attachmentName" : "...",
  "dataBase64" : "..."
}
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
...
                
              

PUT /users/copyobserverrequests/{copyRequestId}/activate

For an authenticated user, this method allows that user to activate any copyrequest sent to the user

Request Parameters
name type description constraints
copyRequestId path The copyRequestId of the request to be activated required, min: 1
Response Body
media type data type description
application/json Observer (JSON) A JSON representing the created customerObserver from the copyRequest.

Example

Request
PUT /users/copyobserverrequests/{copyRequestId}/activate
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "id" : 12345,
  "name" : "...",
  "created" : { },
  "kpiId" : 12345
}
                
              

PUT /users/copysectorrequests/{copyRequestId}/activate

For an authenticated user, this method allows that user to activate any copyrequest sent to the user

Request Parameters
name type description constraints
copyRequestId path The copyRequestId of the request to be activated required, min: 1
Response Body
media type data type description
application/json Sector (JSON) A JSON representing the created customerObserver from the copyRequest.

Example

Request
PUT /users/copysectorrequests/{copyRequestId}/activate
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "id" : 12345,
  "title" : "...",
  "language" : "CU",
  "tariff" : { }
}
                
              

POST /users/{userId}/email/confirm

For a trusted user, this method allows that user to confirm that the email associated with any other user should be changed. Note: From the method POST UsersApi documentation, the confirmation link clicked by the user will also contain a parameter uuId. This parameter needs to be retrieved and passed into this method for activation to work

Request Parameters
name type description constraints
userId path The userId of the user whose password is to be changed  
uuId query The uuId received from the confirmation link required
Response Body
media type data type description
application/json boolean (JSON) A boolean representing whether the operation was successful

Example

Request
POST /users/{userId}/email/confirm
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
...