SideDrawer API documentation

Everything you need to implement your own SideDrawer experience!

Introduction

SideDrawer APIs has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Calling the APIs

All requests should be made over HTTPS via the URL https://{MODULE}-{SideDrawerApiVersion} + resource endpoint, where the {SideDrawerApiVersion} is the path of API version complemented by the API module {MODULE} related to the resource. Any API call made over plain HTTP or without a valid authentication will fail.

When you call any of our API from your end, you will need to make sure to replace the different resources with the corresponding values according to your needs.

For example, if you need to fetch information about a specific User, then you need to make an HTTP request with a method of GET to https://{MODULE}-{SideDrawerApiVersion}/accounts/{id} where /accounts/{id} is the resource, which includes the path parameter {id} that should be replaced by the identification of the account you need to fetch.

We provide for each API endpoint:

  1. A list of the request parameters with the corresponding definition and differentiating them according to the following types:

    • [PATH]: parameters within the resource to point to a specific instance of that resource. They must be placed before the query string (?) and be within curly braces { }

    • [QUERY]: parameters (required or optional) are placed right next to the resource, after a question mark (?), with the format of name=value separated by ampersands (&).

  2. A list of the body attributes with the corresponding definition.

Notice: as reference you can identify the required request parameters or body attributes by a red asterisk character (*) next to the parameter/attribute name (e.g. username*)

Authentication

The authentication needed to perform any API call is integrated with OAuth2, generating an access token called JWT which contains information in the form of claims.

Access Token Generation

Access tokens are used to inform an API that the bearer of the token has been authorized to access the API and perform a predetermined set of actions (specified by the scopes granted).

The endpoints to generate valid Access Tokens are under the Developer API module, which contains also the set of APIs to manage the setting of the organization.

Access Token for Testing

GET /tenant/tenant-id/{tenantId}/applications/client-id/{clientId}/test

Generates valid Access Tokens only for test purposes for the specific Organization identified by the request parameters.

Parameter

Param Type

Data Type

Notes

tenantId*

[PATH]

string

Organization identifier

clientId*

[PATH]

string

Client identifier as part of the Organization credentials.

responseType

[QUERY]

string

Response Type

Possible Values: [html, redirectSideDrawer Tiles_url]

Example:

Request URL

https://DEVELOPER-SideDrawerApiVersion/tenant/tenant-id/111111111111111111111111/applications/client-id/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/test?responseType=redirect_url

Response Status Code

200

Response Body

{
  "redirectUrl": "https://SideDrawerAccess/authorize?response_type=code&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&redirect_uri=https://SideDrawerDomain/?referralCode=organization&scope=openid&connection=con_XXXXXXXXXXXXXXXX"
}

Access Token for Production

POST /tenant/tenant-id/{tenantId}/applications/client-id/{clientId}/auth

Generates valid Access Tokens for production environment of the specific Organization identified by the request parameters.

Parameter

Param Type

Data Type

Notes

tenantId*

[PATH]

string

Organization identifier

clientId*

[PATH]

string

Client identifier as part of the Organization credentials.

Request Body

Attribute

Data Type

Notes

clientSecret*

string

Client secret notified to the Organization as part of their credentials.

username*

string

username of an Organization user.

password*

string

user password.

Example:

Request URL

https://DEVELOPER-SideDrawerApiVersion/tenant/tenant-id/111111111111111111111111/applications/client-id/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/auth

Request Body

{
  "clientSecret": "LjdsafKJ98LKJ98LKJ09KJlkj.......",
  "username": "admin@organizationdomain.com",
  "password": "123456789"
}

Response Status Code

200

Response Body

{
  "access_token": "lkqj3lkj3l2j435l23hj4llk2jh43l5j2h43l........",
  "expires_in": 86400,
  "token_type": "Bearer"
}

SideDrawer User API 1.0

This API module allows you to manage SideDrawer accounts with the functionalities needed to Create, List, Update and Delete and handle any information related to the user accounts.

SideDrawer User Accounts

SideDrawer User Accounts Creation

POST /accounts

Try it here

Allows to create the user account defined in the request.

Request Body

Attribute

Data Type

Notes

username*

string

Account Username, by default takes Auth0 userName (email)

firsName*

string

Account first name, by default takes Auth0 first name

LastName*

string

Account last name, by default takes Auth0 last name

profilePhoto

string

Profile Photo URL

dateOfBirth

string

Date of Birth (DD/MM/YYYY)

maritalStatus

string

Possible Values: [ single, rather_not_say, married, separated, divorced, widowed, defunct ]

primaryResidence.buildingNumber

string

Address building number

primaryResidence.streetName

 

Address street name

primaryResidence.unitNumber

string

Address unit number

primaryResidence.city

string

Address city

primaryResidence.provinceState

string

Address province/ state

primaryResidence.postalZip

string

Address zip code

primaryResidence.country

string

Address country

gender

string

Possible Values:[ female, male, rather_not_say, other ]

emails.primary

boolean

Is it a primary Email address?

emails.verified

boolean

Was the email verified?

emails.address

string

Email address, by default takes Auth0 Email

phones.primary

boolean

Is it a primary phone number?

phones.verified

boolean

Was the phone verified?

phones.number*

number

Phone number

phones.ext*

number

Phone number extension

phones.mobile*

boolean

Is it a mobile number?

settings.notificationMethod*

string

Preferred communication method.

Possible Values: [ push, email, sms ]

settings.communicationLanguage*

string

Preferred communication Language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

settings.preferredLanguage*

string

Preferred Language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

settings.country*

string

Country Codes ISO 3166 (Two letters)

Possible Values: [ AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SK, SI, SB, SO, ZA, GS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW ]

settings.mfaDisabled*

boolean

Is Multi-Factor Authentication disabled?

settings.mfaMode*

string

Possible Values: [ sometimes, everyTime, never ]

agreements.locale*

string

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

agreements.type*

string

Possible Values: [ tos, privacy_policies, anti_spam ]

agreements.version*

string

Relative to the versioning of agreements.

agreements.consent*

boolean

User´s choice.

invitationCode

string

Invitation Code sent for other user from an invitation email

referralCode

string

Invitation Code sent from a referral, business or sponsor

cobrandId

string

Cobrand identifier

defaultTeam

string

Default Team identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts

Request Body

{
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "US"
  },
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "number": 5556667777,
      "ext": 0,
      "mobile": true
    }
  ],
  "settings": {
    "notificationMethod": "email",
    "communicationLanguage": "en-US",
    "preferredLanguage": "en-US",
    "country": "CA",
    "mfaDisabled": true,
    "mfaMode": "never"
  },
  "agreements": [
    {
      "locale": "en-US",
      "type": "tos",
      "version": 0,
      "consent": true
    }
  ]
}

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999"
}

SideDrawer User Account Lookup

Get the information for the specific user account identified by different request parameters as follow:

By id

GET /accounts/account-id/{id}

Try it here

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    }
  ],
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "USA",
    "id": "999999999999999999999999"
  },
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-10-22T15:30:12.836Z",
  "updatedAt": "2020-10-22T15:30:12.836Z",
  "id": "999999999999999999999999"
}

By username

GET /accounts/username/{username}

Try it here

Parameter

Param Type

Data Type

Notes

username*

[PATH]

string

Username related to the user account

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/username/johnnymcdowell%40maildomain.com

Response Status Code

200

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    }
  ],
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "USA",
    "id": "999999999999999999999999"
  },
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-10-22T15:30:12.836Z",
  "updatedAt": "2020-10-22T15:30:12.836Z",
  "id": "999999999999999999999999"
}

By openId

GET /accounts/open-id/{openId}

Try it here

Parameter

Param Type

Data Type

Notes

openId*

[PATH]

string

Unique identifier of the user account

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/open-id/auth0|999999999999999999999999

Response Status Code

200

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    }
  ],
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "USA",
    "id": "999999999999999999999999"
  },
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-10-22T15:30:12.836Z",
  "updatedAt": "2020-10-22T15:30:12.836Z",
  "id": "999999999999999999999999"
}

SideDrawer User Account Checks

GET /accounts/username/{username}/check

Try it here

The response reflects the existence or not of the username identified by the request parameter.

Parameter

Param Type

Data Type

Notes

username*

[PATH]

string

Username related to the user account

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/username/johnnymcdowell%40maildomain.com/check

Response Status Code

200

SideDrawer User Account Update

PUT /accounts/account-id/{id}

Try it here

Allows to make changes in the information for the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Request Body

Attribute

Data Type

Notes

username*

string

Account Username

firsName*

string

Account first name

LastName*

string

Account last name

profilePhoto

string

Profile Photo URL

dateOfBirth

string

Date of Birth (DD/MM/YYYY)

maritalStatus

string

Possible Values: [ single, rather_not_say, married, separated, divorced, widowed, defunct ]

primaryResidence.buildingNumber

string

Address building number

primaryResidence.streetName

 

Address street name

primaryResidence.unitNumber

string

Address unit number

primaryResidence.city

string

Address city

primaryResidence.provinceState

string

Address province/ state

primaryResidence.postalZip

string

Address zip code

primaryResidence.country

string

Address country

gender

string

Possible Values:[ female, male, rather_not_say, other ]

emails.primary

boolean

Is it a primary Email address?

emails.verified

boolean

Was the email verified?

emails.address*

string

Email address, by default takes Auth0 Email

phones.primary

boolean

Is it a primary phone number?

phones.verified

boolean

Was the phone verified?

phones.number*

number

Phone number

phones.ext*

number

Phone number extension

phones.mobile*

boolean

Is it a mobile number?

invitationCode

string

Invitation Code sent for other user from an invitation email

referralCode

string

Invitation Code sent from a referral, business or sponsor

cobrandId

string

Cobrand identifier.

defaultTeam

string

Default Team identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999

Request Body

{
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "USA"
  },
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "number": 5556667777,
      "ext": 0,
      "mobile": true
    }
  ]
}

Response Status Code

200

Response Body

{
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "25/10/1990",
  "maritalStatus": "single",
  "primaryResidence": {
    "buildingNumber": "123",
    "streetName": "Anystreet Rd",
    "unitNumber": "",
    "city": "Anytown",
    "provinceState": "California",
    "postalZip": "90100",
    "country": "USA"
  },
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "number": 5556667777,
      "ext": 0,
      "mobile": true
    }
  ],
  "primaryResidence": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-10-22T15:30:12.836Z",
  "updatedAt": "2020-10-22T15:30:12.836Z",
  "id": "999999999999999999999999"
}

Log Out session

DELETE /accounts/logout

Try it here

Destroys the active session.

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/logout

Response Status Code

200

Invitation Creation

POST /accounts/invitations

Try it here

Allows to create and send an invitation for a specific user to get it own SideDrawer.

Request Body

Attribute

Data Type

Notes

firsName

string

Contributor First name

LastName

string

Contributor Last name

email*

string

Contributor email address

phone

string

Contributor phone

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/invitations

Request Body

{
  "firstName": "Johnny",
  "lastName": "McDowell",
  "email": "johnnymcdowell@maildomain.com",
  "phone": "5553334444"
}

Response Status Code

201

Response Body

  true

Multi-Factor Authentication (MFA)

MFA Identification Code generation

POST /accounts/account-id/{id}/mfa

Try it here

Send identification code generated to a specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Request Body

Attribute

Data Type

Notes

type*

string

Multi factor authentication type

Possible Values: [ email, sms]

notificationType*

string

Notification type

Possible Values: [ mfaEmail]

locale

string

Communication language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/mfa

Request Body

{
  "type": "email",
  "notificationType": "mfaEmail",
  "locale": "en-US"
}

Response Status Code

201

Response Body

{}

MFA Identification Code Verification

GET /accounts/account-id/{id}/mfa/mfa-code/{code}

Try it here

Verify the validity of the identification code generated for a specific user account according to the request parameters.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

code*

[PATH]

number

Identification code.

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/mfa/mfa-code/123456

Response Status Code

200

Response Body

{
  "msg": "validated"
}

Account Settings

SideDrawer User Account Settings Lookup

GET accounts/account-id/{id}/settings

Try it here

Gets the settings for the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/settings

Response Status Code

200

Response Body

{
  "communicationLanguage": "en-US",
  "mfaDisabled": false,
  "notificationMethod": "email",
  "country": "CA",
  "preferredLanguage": "en-US",
  "mfaMode": "never",
  "account": "999999999999999999999999",
  "createdAt": "2020-09-26T11:33:49.976Z",
  "updatedAt": "2020-10-23T00:22:37.319Z",
  "id": "999999999999999999999999"
}

SideDrawer User Account Settings Update

PUT accounts/account-id/{id}/settings

Try it here

Allows to make changes in the settings for the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Request Body

Attribute

Data Type

Notes

notificationMethod*

string

Multi factor authentication type

Possible Values: [ push, email, sms ]

communicationLanguage*

string

Preferred communication Language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

preferredLanguage*

string

Communication language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

country*

string

Country Codes ISO 3166 (Two letters)

Possible Values: [ AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SK, SI, SB, SO, ZA, GS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW ]

mfaDisabled*

boolean

Is Multi-Factor Authentication disabled?

mfaMode*

string

Possible Values: [ sometimes, everyTime, never ]

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/settings

Request Body

{
  "notificationMethod": "email",
  "communicationLanguage": "en-US",
  "preferredLanguage": "en-US",
  "country": "CA",
  "mfaDisabled": true,
  "mfaMode": "sometimes"
}

Response Status Code

200

Response Body

{
  "communicationLanguage": "en-US",
  "mfaDisabled": false,
  "_id": "999999999999999999999999",
  "notificationMethod": "email",
  "country": "AR",
  "preferredLanguage": "en-US",
  "mfaMode": "never",
  "account": "999999999999999999999999",
  "createdAt": "2020-09-26T11:33:49.976Z",
  "updatedAt": "2020-10-23T00:22:37.319Z",
  "__v": 0
}

Agreements

SideDrawer User Account Agreements Lookup

GET /accounts/account-id/{id}/agreements

Try it here

Lists the agreements related to the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/agreements

Request Body

{
  "locale": "en-US  ",
  "type": "tos",
  "version": 0,
  "consent": true
}

Response Status Code

200

Response Body

[
  {
    "account": "999999999999999999999999",
    "locale": "en-US",
    "type": "tos",
    "version": "0",
    "consent": true,
    "createdAt": "2020-09-26T11:33:49.976Z",
    "updatedAt": "2020-09-26T11:33:49.976Z",
    "id": "999999999999999999999999"
  }
]

SideDrawer User Account Agreement Setting

POST /accounts/account-id/{id}/agreements

Try it here

Set agreement response to the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Request Body

Attribute

Data Type

Notes

locale*

string

Communication language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

type*

string

Possible Values: [ tos, privacy_policies, anti_spam ]

version*

number

Relative to the versioning of agreements.

consent*

boolean

User´s choice.

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/agreements

Request Body

{
  "locale": "en-US  ",
  "type": "tos",
  "version": 0,
  "consent": true
}

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999"
}

Emails

SideDrawer User Account Email Addition

POST /accounts/account-id/{id}/email

Try it here

Register a new email to the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/email

Request Body

{
  "primary": true,
  "verified": true,
  "address": "additionalemail@maildomain.com"
}

Response Status Code

201

Response Body

  {
    "active": true,
    "username": "johnnymcdowell@maildomain.com",
    "firstName": "Johnny",
    "lastName": "McDowell",
    "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
    "dateOfBirth": "1990-10-25T00:00:00.000Z",
    "maritalStatus": "single",
    "gender": "male",
    "emails": [
      {
        "primary": true,
        "verified": true,
        "_id": "999999999999999999999999",
        "address": "johnnymcdowell@maildomain.com"
      }
    ],
    "phones": [
      {
        "primary": true,
        "verified": true,
        "mobile": true,
        "_id": "999999999999999999999999",
        "number": 5556667777,
        "ext": 0
      }
    ],
    "primaryResidence": "999999999999999999999999",
    "openId": "auth0|999999999999999999999999",
    "customerId": "cus_XXXXXXXXXXXXXX",
    "createdAt": "2020-09-26T11:33:49.943Z",
    "updatedAt": "2020-10-22T21:44:23.519Z",
    "id": "999999999999999999999999"
  }

SideDrawer User Account Email Deletion

DELETE /accounts/account-id/{id}/email/email-address/{address}

Try it here

Delete an email address from the specific user account identified by the request parameters.

Parameter

Param Type

Data Type

Notes

id*

[PATH]

string

User account identifier

address*

[PATH]

string

Email address.

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/email/email-address/additionalemail@maildomain.com

Response Status Code

200

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "1990-10-25T00:00:00.000Z",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    }
  ],
  "primaryResidence": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-09-26T11:33:49.943Z",
  "updatedAt": "2020-10-22T21:44:23.519Z",
  "id": "999999999999999999999999"
}

Phone numbers

SideDrawer User Account Phone Addition

POST /accounts/account-id/{id}/phone

Try it here

Register a new phone number to the specific user account identified by the request parameter.

Parameter

Param Type

Data Type

Notes

id*

PATH

string

User account identifier

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/phone

Request Body

{
  "primary": false,
  "verified": false,
  "number": 9998887777,
  "ext": 0,
  "mobile": true
}

Response Status Code

201

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "1990-10-25T00:00:00.000Z",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    },
    {
      "primary": false,
      "verified": false,
      "number": 9998887777,
      "ext": 0,
      "mobile": true
    }
  ],
  "primaryResidence": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-09-26T11:33:49.943Z",
  "updatedAt": "2020-10-22T21:44:23.519Z",
  "id": "999999999999999999999999"
}

SideDrawer User Account Phone Deletion

DELETE /accounts/account-id/{id}/phone/phone-number/{number}

Try it here

Delete a phone number from the specific user account identified by the request parameters.

Parameter

Param Type

Data Type

Notes

id*

PATH

string

User account identifier

number*

PATH

number

Phone number

Example:

Request URL

https://USER-SideDrawerApiVersion/accounts/account-id/999999999999999999999999/phone/phone-number/9998887777

Response Status Code

200

Response Body

{
  "active": true,
  "username": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "profilePhoto": "https://freeicons.io/contact-us-set-1/a-icon-47345",
  "dateOfBirth": "1990-10-25T00:00:00.000Z",
  "maritalStatus": "single",
  "gender": "male",
  "emails": [
    {
      "primary": true,
      "verified": true,
      "_id": "999999999999999999999999",
      "address": "johnnymcdowell@maildomain.com"
    }
  ],
  "phones": [
    {
      "primary": true,
      "verified": true,
      "mobile": true,
      "_id": "999999999999999999999999",
      "number": 5556667777,
      "ext": 0
    }
  ],
  "primaryResidence": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "customerId": "cus_XXXXXXXXXXXXXX",
  "createdAt": "2020-09-26T11:33:49.943Z",
  "updatedAt": "2020-10-22T21:44:23.519Z",
  "id": "999999999999999999999999"
}

SideDrawer Records API 1.0

This API allows you to manage no only the SideDrawer settings but also all the contents inside of them at different level and the different features related as described below.

SideDrawer

SideDrawer Creation

POST /sidedrawer

Try it here

Creates a SideDrawer with a specific subscription license.

Request Body

Attribute

Data Type

Notes

name

string

Sidedrawer Name

emailUsername

string

Email username

profilePhoto

string

Profile photo

firstName

string

SideDrawer owner first name

lastName

string

SideDrawer owner last name

type

string

SideDrawer type (Individual as default)

default

boolean

Is the account's default SideDrawer?

editable

boolean

Is editable?

licenseKey

string

SideDrawer license Key

brandCode

string

Brading code.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer

Request Body

{
  "name": "Own SD",
  "emailUsername": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "type": "individual",
  "default": true,
  "editable": true,
  "licenseKey": "999999999999999999999999",
  "brandCode": "brandcode"
}

Response Status Code

201

Response Body

{
  "id": "999999999999999999999999"
}

SideDrawer Update

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}

Try it here

Allows to make changes in the settings for the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

PATH

string

SideDrawer identifier

Request Body

Attribute

Data Type

Notes

name

string

Sidedrawer Name

emailUsername

string

Email username

profilePhoto

string

Profile photo

firstName

string

SideDrawer owner first name

lastName

string

SideDrawer owner last name

default

boolean

Is the account's default SideDrawer?

licenseKey

string

SideDrawer license Key

brandCode

string

Brading code.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999

Request Body

{
  "name": "Own SD",
  "emailUsername": "johnnymcdowell@maildomain.com",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "brandCode": "brandcode",
  "profilePhoto": null,
  "default": true,
  "editable": true
}

Response Status Code

201

Response Body

{
  "type": "individual",
  "active": true,
  "editable": true,
  "default": true,
  "name": "Own SD",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "brandCode": "brandcode",
  "status": "ACTIVE",
  "email": "johnnymcdowell@maildomain.com",
  "createdAt": "2020-10-23T02:07:02.015Z",
  "updatedAt": "2020-10-23T02:07:02.015Z",
  "id": "999999999999999999999999"
}

SideDrawer Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}

Try it here

Delete the SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

PATH

string

SideDrawer identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999

Response Status Code

200

Response Body

 

SideDrawer Lookup

GET /sidedrawer/sidedrawer-id/{sidedrawerId}

Try it here

Gets the settings for the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999",
  "name": "Own SD",
  "active": true,
  "default": true,
  "firstName": "Johnny",
  "lastName": "McDowell",
  "status": "ACTIVE",
  "type": "individual",
  "editable": true,
  "userSidedrawerRole": [
    "sd_owner"
  ],
  "subscriptionFeatures": {
    "account.licensePriority": "1010",
    "account.featureAddOn": "0",
    "account.maxOwnedSideDrawers": "1",
    "sidedrawer.maxSDRecords": "8",
    "sidedrawer.maxSDGBs": "10",
    "ownedSDs.transferSDOwnership": "0",
    "ownedSDs.transferRecordOwnership": "0",
    "guestSDs.sdEditorAbility": "0",
    "guestSDs.sdViewerAbility": "1",
    "guestSDs.sdInfoAbility": "1",
    "guestSDs.recordEditorAbility": "0",
    "guestSDs.recordViewerAbility": "1",
    "guestSDs.recordInfoAbility": "1",
    "ownedSDs.featureInviteSDCollaborator": "1",
    "ownedSDs.featureInviteRecordCollaborator": "1",
    "account.notificationsMenuAccess": "0",
    "account.notesMenuAccess": "0",
    "account.networkMenuAccess": "0",
    "ownedSDs.activeNotificationsPush": "0",
    "ownedSDs.activeNotificationsEmail": "0",
    "ownedSDs.activeNotificationsSMS": "0",
    "guestSDs.activeNotificationsPush": "0",
    "guestSDs.activeNotificationsEmail": "0",
    "guestSDs.activeNotificationsSMS": "0",
    "ownedSDs.reminderNotificationsPush": "0",
    "ownedSDs.reminderNotificationsEmail": "0",
    "ownedSDs.reminderNotificationsSMS": "0",
    "guestSDs.reminderNotificationsPush": "0",
    "guestSDs.reminderNotificationsEmail": "0",
    "guestSDs.reminderNotificationsSMS": "0",
    "account.guestSDEditorAbility": "0",
    "account.guestSDInfoAbility": "1",
    "account.guestRecordEditorAbility": "0",
    "account.guestRecordInfoAbility": "1",
    "account.guestSDViewerAbility": "1",
    "account.guestRecordViewerAbility": "1",
    "account.featureInbox": "0",
    "sidedrawer.maxUploadMBs": "10",
    "account.sponsorSideDrawers": "0"
  }
}

SideDrawer Branding

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/branding

Try it here

Gets the branding (images and styles) related to a specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier

locale

[QUERY]

string

Communication language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

darkMode

[QUERY]

string

Possible Values: [ darkMode, lightMode ]

Example:

Request URL

https://USER-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/branding

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999",
  "brandCode": "brandcode",
  "tenant": "999999999999999999999999",
  "brandName": "SideDrawerDefault",
  "locale": "en-US",
  "primaryLogoExpanded": {
    "large": "https://imagesource/Logo-640x480.png",
    "medium": "https://imagesource/Logo-640x480.png",
    "small": "https://imagesource/Logo-640x480.png"
  },
  "primaryLogoContracted": {
    "large": "https://imagesource/Logo-320x380.png",
    "medium": "https://imagesource/Logo-320x380.png",
    "small": "https://imagesource/Logo-320x380.png"
  },
  "secondaryLogo": {
    "large": "https://imagesource/LogoNegative-640x480.png",
    "medium": "https://imagesource/LogoNegative-640x480.png",
    "small": "https://imagesource/LogoNegative-640x480.png"
  },
  "primaryIsoLogo": {
    "large": "https://imagesource/LogoIso-320x380.png",
    "medium": "https://imagesource/LogoIso-320x380.png",
    "small": "https://imagesource/LogoIso-320x380.png"
  },
  "secondaryIsoLogo": {
    "large": "https://imagesource/LogoIsoNegative-320x380.png",
    "medium": "https://imagesource/LogoIsoNegative-320x380.png",
    "small": "https://imagesource/LogoIsoNegative-320x380.png"
  },
  "topBanner": {
    "large": "https://imagesource/Logo-640x480.png",
    "medium": "https://imagesource/Logo-640x480.png",
    "small": "https://imagesource/Logo-640x480.png"
  },
  "footerMessage": "2020 &copy; SideDrawer Inc. All rights reserved. <img src='loguito de SD'>",
  "styleSheet": {
    "fontFamily": "poppins",
    "appBackground": "#FFFFFF",
    "primaryColor": "#FF9500",
    "primaryAccentColor": "#404040",
    "primaryColorSemiTransparent": "#FFF4E6",
    "secondaryAccentColor": "#535353",
    "tertiaryAccentColor": "#9E9E9E",
    "backgroundShade": "#DADADA",
    "accentBackground": "#F0F4F6",
    "headerBackground": "#F7F7F7",
    "inactiveButton": "#F2F2F2",
    "alertsErrors": "#FF0000",
    "checkbox": "#3369FF",
    "progressBar": "#00BB66",
    "appCameraBackground": "#000000",
    "successBar": "#00BB00"
  },
  "appSections": {
    "manageSubscriptions": true,
    "paymentDetails": true,
    "tellAFriend": true,
    "faqs": true,
    "helpAndSupport": true,
    "about": true
  },
  "active": true,
  "hideDefaultRecordTypes": false,
  "default": true
}

SideDrawer Tiles

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/home

Try it here

Gets the settings and the all the Tiles related to the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier

locale

[QUERY]

string

Communication language

Possible Values: [ en-CA, es-US, fr-CA, en-US ]

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/home?locale=en-US

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999",
  "name": "Own SD",
  "firstName": "Johnny",
  "lastName": "McDowell",
  "email": "johnnymcdowell@maildomain.com",
  "default": true,
  "active": true,
  "status": "ACTIVE",
  "type": "individual",
  "userSidedrawerRole": [
    "sd_owner"
  ],
  "subscriptionFeatures": {
    "account.licensePriority": "1010",
    "account.featureAddOn": "0",
    "account.maxOwnedSideDrawers": "1",
    "sidedrawer.maxSDRecords": "8",
    "sidedrawer.maxSDGBs": "10",
    "ownedSDs.transferSDOwnership": "0",
    "ownedSDs.transferRecordOwnership": "0",
    "guestSDs.sdEditorAbility": "0",
    "guestSDs.sdViewerAbility": "1",
    "guestSDs.sdInfoAbility": "1",
    "guestSDs.recordEditorAbility": "0",
    "guestSDs.recordViewerAbility": "1",
    "guestSDs.recordInfoAbility": "1",
    "ownedSDs.featureInviteSDCollaborator": "1",
    "ownedSDs.featureInviteRecordCollaborator": "1",
    "account.notificationsMenuAccess": "0",
    "account.notesMenuAccess": "0",
    "account.networkMenuAccess": "0",
    "ownedSDs.activeNotificationsPush": "0",
    "ownedSDs.activeNotificationsEmail": "0",
    "ownedSDs.activeNotificationsSMS": "0",
    "guestSDs.activeNotificationsPush": "0",
    "guestSDs.activeNotificationsEmail": "0",
    "guestSDs.activeNotificationsSMS": "0",
    "ownedSDs.reminderNotificationsPush": "0",
    "ownedSDs.reminderNotificationsEmail": "0",
    "ownedSDs.reminderNotificationsSMS": "0",
    "guestSDs.reminderNotificationsPush": "0",
    "guestSDs.reminderNotificationsEmail": "0",
    "guestSDs.reminderNotificationsSMS": "0",
    "account.guestSDEditorAbility": "0",
    "account.guestSDInfoAbility": "1",
    "account.guestRecordEditorAbility": "0",
    "account.guestRecordInfoAbility": "1",
    "account.guestSDViewerAbility": "1",
    "account.guestRecordViewerAbility": "1",
    "account.featureInbox": "0",
    "sidedrawer.maxUploadMBs": "10",
    "account.sponsorSideDrawers": "0"
  },
  "maxRecordsReached": false,
  "integrations": null,
  "recordsType": [
    {
      "name": "careerEducation",
      "logo": "https://imagesource/graduation-cap-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Career & Education"
        }
      ]
    },
    {
      "name": "collectibles",
      "logo": "https://imagesource/guitars-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Collectibles"
        }
      ]
    },
    {
      "name": "healthMedical",
      "logo": "https://imagesource/minus-small-regular.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Health & Medical"
        }
      ]
    },
    {
      "name": "identityDocs",
      "logo": "https://imagesource/id-card-small-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Identity Documents"
        }
      ]
    },
    {
      "name": "insurancePolicies",
      "logo": "https://imagesource/umbrella-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Insurance Policies"
        }
      ]
    },
    {
      "name": "investments",
      "logo": "https://imagesource/chart-line-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Investments"
        }
      ]
    },
    {
      "name": "legalDocs",
      "logo": "https://imagesource/file-contract-small-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Legal Documents"
        }
      ]
    },
    {
      "name": "personalFinances",
      "logo": "https://imagesource/hand-holding-usd-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Personal Finances"
        }
      ]
    },
    {
      "name": "realEstate",
      "logo": "https://imagesource/home-lg-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Real Estate"
        }
      ]
    },
    {
      "name": "serviceAccounts",
      "logo": "https://imagesource/credit-card-small-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Service Accounts & Memberships"
        }
      ]
    },
    {
      "name": "transportation",
      "logo": "https://imagesource/cars-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Vehicles & Transportation"
        }
      ]
    },
    {
      "name": "wishLists",
      "logo": "https://imagesource/tasks-light.png",
      "count": 0,
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Wish Lists"
        }
      ]
    }
  ]
}

SideDrawer Licenses

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/licenses

Try it here

Gets the Licenses related to the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/licenses

Response Status Code

200

Response Body

[
  {
    "subscriptionId": "sub_XXXXXXXXXXXXXX",
    "plan": {
      "id": "plan_XXXXXXXXXXXXXX",
      "name": "SideDrawer Premium Yearly"
    },
    "sponsored": false,
    "renewsOn": "2020-09-26T13:37:24.000Z"
  },
  {
    "subscriptionId": "sub_YYYYYYYYYYYYYY",
    "plan": {
      "id": "plan_YYYYYYYYYYYYYY",
      "name": "SD Starter Monthly"
    },
    "sponsored": true,
    "sponsor": "Sponsor Name",
    "renewsOn": "2020-09-26T11:33:48.000Z"
  }
]

SideDrawer Email Availability Check

GET /sidedrawer/check-email

Try it here

Verify whether the username specified as request parameter is already in use in the existing Inbox email addresses of any SideDrawer.

Parameter

Param Type

Data Type

Notes

emailUsername*

[QUERY]

string

Username related to inbox addresses.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/check-email?emailUsername=testmail

Response Status Code

200

Response Body

email_username_available

SideDrawer Records

SideDrawer Record Creation

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/records

Try it here

Creates a Record into the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier to create the Records

Request Body

Attribute

Data Type

Notes

name*

string

Record Name

description*

string

Record description

uniqueReference

string

Current timestamp

storageLocation

string

Physical storage place

recordSubtypeName*

string

Subtype name of the record.

recordSubtypeOther

string

Specifies the recordSubtype if was selected 'Other' option in recordSubtypeName

recordTypeName*

string

Type name of the record.

editable

boolean

Is the Record editable?

recordDetails

JSON

Additional fields related to the Record Type without a fixed structure.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records

Request Body

{
   "name":"Personal Antiques",
   "description":"",
   "uniqueReference":"2020-10-23 06:52:12.591",
   "storageLocation":"",
   "recordTypeName":"collectibles",
   "recordSubtypeName":"antiques",
   "recordSubtypeOther":"",
   "recordDetails":{    
   },
   "lastModifiedBy":null,
   "updatedAt":null,
   "status":null,
   "editable":null
}

Response Status Code

200

Response Body

{"id":"999999999999999999999999"}

SideDrawer Records Search

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/records

Try it here

Lists all the Records for the specific SideDrawer identified in the request and related to the filtering criteria defined as request parameters as follow:

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Records

name

[QUERY]

string

Name of the Records

uniqueReference

[QUERY]

string

Current timestamp

recordTypeName

[QUERY]

string

Type name of records.

recordSubtypeName

[QUERY]

string

Subtype name of records.

recordSubtypeOther

[QUERY]

string

Specifies the recordSubtype if was selected 'Other' option in recordSubtypeName

recordTypeId

[QUERY]

string

Record type identifier.

recordSubtypeId

[QUERY]

string

Record subtype identifier.

status

[QUERY]

string

Possible values: [ACTIVE, INACTIVE, CLOSED, DRAFT, DELETED]

locale

[QUERY]

string

Locale of the record type

Possible Values: [en-CA, es-US, en-US]

Empty result could be return if there are no records that matches with the filtering criteria defined.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records?recordTypeName=collectibles&locale=en-US

Response Status Code

200

Response Body

[
  {
    "id": "999999999999999999999999",
    "name": "Personal Antiques",
    "storageLocation": "",
    "recordSubtypeOther": "",
    "description": "",
    "recordSubtype": {
      "id": "999999999999999999999999",
      "name": "antiques",
      "logo": "https://imagesource/guitars-light.png",
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Antiques"
        }
      ]
    },
    "recordType": {
      "id": "999999999999999999999999",
      "name": "collectibles",
      "logo": "https://imagesource/guitars-light.png",
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Collectibles"
        }
      ]
    },
    "status": null,
    "updatedAt": "2020-10-23T09:52:15.677Z",
    "lastModifiedBy": "User Name",
    "contributors": [],
    "editable": false
  }
]

SideDrawer Record Lookup

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}

Try it here

Gets the settings for the specific SideDrawer Record identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999

Response Status Code

200

Response Body

{
   "id":"999999999999999999999999",
   "name":"Collaborated License Plates",
   "description":"",
   "uniqueReference":"2020-10-23 07:12:45.024",
   "storageLocation":"",
   "recordSubtypeName":"licensePlates",
   "recordTypeName":"collectibles",
   "recordSubtype":{
      "blockSections":{
         "blockDescription":false,
         "blockFiles":false,
         "blockLinkedRecords":false,
         "blockCollaborators":false,
         "blockSpecificFields":false
      },
      "orderId":0,
      "name":"antiques",
      "logo":"https://imagesource/guitars-light.png",
      "displayValue":[
         {
            "locale":"en-US",
            "value":"License Plates"
         },
         {
            "locale":"en-US",
            "value":"License Plates"
         },
         {
            "locale":"es-US",
            "value":"Licencias o Patentes de Vehículo"
         }
      ],
      "id":"999999999999999999999999"
   },
   "recordType":{
      "sidedrawerType":"individual",
      "orderId":0,
      "name":"collectibles",
      "logo":"https://imagesource/guitars-light.png",
      "displayValue":[
         {
            "locale":"en-US",
            "value":"Collectibles"
         },
         {
            "locale":"en-US",
            "value":"Collectibles"
         },
         {
            "locale":"es-US",
            "value":"Colecciones"
         }
      ],
      "id":"999999999999999999999999"
   },
   "recordSubtypeOther":"",
   "active":true,
   "updatedAt":"2020-10-23T10:12:46.808Z",
   "status":null,
   "recordDetails":{
      "cloudStorageFolder":[
      ]
   },
   "filesHistory":[
   ],
   "userSidedrawerRole":[
      "sd_owner",
      "sd_editor"
   ],
   "userRecordRole":[
      "rec_owner"
   ]
}

SideDrawer Record Update

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}

Try it here

Allows to make changes in the settings for the specific SideDrawer Record identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Request Body

Attribute

Data Type

Notes

name*

string

Record Name

description*

string

Record description

uniqueReference

string

Current timestamp

storageLocation

string

Physical storage place

recordSubtypeName*

string

Subtype name of the record.

recordSubtypeOther

string

Specifies the recordSubtype if was selected 'Other' option in recordSubtypeName

recordTypeName*

string

Type name of the record.

editable

boolean

Is the Record editable?

recordDetails

string

Additional fields related to the Record Type without a fixed structure.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999

Request Body

{
   "name":"Personal License Plates",
   "description":"",
   "uniqueReference":"2020-10-23 07:19:58.939",
   "storageLocation":"",
   "recordTypeName":"collectibles",
   "recordSubtypeName":"licensePlates",
   "recordSubtypeOther":"",
   "recordDetails":{
      "cloudStorageFolder":[         
      ]
   },
   "lastModifiedBy":"User Name",
   "updatedAt":"2020-10-23T10:12:46.853Z",
   "status":null,
   "editable":true
}

Response Status Code

200

Response Body

{"id":"999999999999999999999999"}

SideDrawer Record Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}

Try it here

Delete the SideDrawer Record identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/transfer

Response Status Code

200

SideDrawer Record Transfer

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/transfer

Try it here

Allows to transfer a specific SideDrawer Record identified by the request parameters to another SideDrawer indicated in the request body.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

Request Body

Attribute

Data Type

Notes

destinationSidedrawerId*

string

Destination SideDrawer Identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/transfer

Request Body

{
  "destinationSidedrawerId": "88888888888888888888888888"
}

Response Status Code

200

SideDrawer Record Files

SideDrawer Record File Upload

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/record-files

Try it here

Upload files into the specific SideDrawer Record identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

Request Body

Attribute

Data Type

Notes

fileName*

string

This is the unique name that the binary will have at SideDrawer Database it has to be unique and can be set by the App. In order to do so, add the timestamp when EACH file is posted (YYMMDDHHMMSS_*), all timestamps for each file will be different

correlationId*

string

A uniquely defined parameter that will allow the API to "group" all files uploaded as part of the same process. This needs to be added to the API. This field has to be unique enough at least for the SideDrawer/Record combination.
Recommendation is to use the timestamp (YYMMDDHHMMSS) of the instant in which the user "submits" the upload of the file or image collection.

uploadDetail

string

This is the detail of the upload instance

caption

string

This is the "caption" of each image that is uploaded (mandatory only for image files)
Determine if this uses the captionName or the caption locale-driven value

uploadTitle

string

This is what should be listed in the "File History" list.

fileType*

string

Determines what kind of file is being pushed.

Possible Values: [image, document, cloud]

Request Body

Attribute

Data Type

Notes

file*

string($binary)

File to be uploaded

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files?correlationId=20201231235959&uploadTitle=filename&fileName=20201231235959_filename&caption=&fileType=document&fileExtension=.pdf

Response Status Code

201

Response Body

{
   "cloaudStorage":false,
   "active":true,
   "correlationId":"20201231235959",
   "uploadTitle":"filename",
   "fileName":"20201231235959_filename",
   "caption":"",
   "fileType":"document",
   "fileUrl":"SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/YY102970810472_filename.pdf",
   "uploader":"auth0|999999999999999999999999",
   "fileSize":373584,
   "createdAt":"2020-10-23T11:31:38.492Z",
   "updatedAt":"2020-10-23T11:31:38.492Z",
   "id":"999999999999999999999999"
}

SideDrawer Record Files

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/record-files

Try it here

List all the files for the specific SideDrawer Record identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files

Response Status Code

200

Response Body

[
   {
      "correlationId":"20201231235959",
      "uploadTitle":"filename",
      "fileType":"document",
      "files":[
         {
            "cloaudStorage":false,
            "active":true,
            "fileName":"20201231235959_filename",
            "caption":"",
            "fileType":"document",
            "fileUrl":"SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_filename.pdf",
            "uploader":"SD Johnny",
            "fileSize":373584,
            "updatedAt":"2020-10-23T11:31:38.492Z"
         }
      ]
   }
]

SideDrawer Record File Update

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/record-files/{name}

Try it here

Allows to make changes in the settings for the specific SideDrawer Record File identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

name*

[PATH]

string

File Name with extension.

Request Body

Attribute

Data Type

Notes

uploadDetail

string

This is the detail of the upload instance, it is NOT mandatory

caption

string

This is the "caption" of each image that is uploaded, it is mandatory for images, it is not mandatory for documents.

Determine if this uses the captionName or the caption locale-driven value

uploadTitle

string

This is what should be listed in the "File History" list.

correlationId

string

A un

s mandatory for all uploads, and it has to be unique enough at least for the SideDrawer/Record combination.

Recommendation is to use the timestamp (YYMMDDHHMMSS) of the instant in which the user "submits" the upload of the file or image collection.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_FileName.pdf

Request Body

{
  "uploadDetail": "some details",
  "caption": "",
  "uploadTitle": "New title",
  "correlationId": "20201231235959"
}

Response Status Code

200

Response Body

{
  "cloaudStorage": false,
  "active": true,
  "_id": "999999999999999999999999",
  "correlationId": "20201231235959",
  "uploadTitle": "New title",
  "fileName": "20201231235959_filename",
  "caption": "",
  "fileType": "document",
  "fileUrl":"SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_filename.pdf",
  "recordDetail": "999999999999999999999999",
  "uploader": "auth0|999999999999999999999999",
  "fileSize": 798066,
  "createdAt": "2020-10-19T18:37:37.146Z",
  "updatedAt": "2020-10-19T18:37:37.146Z",
  "__v": 0,
  "uploadDetail": "some details"
}

SideDrawer Record File Download

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/record-files/{name}

Try it here

Allows to download a specific File from the SideDrawer Record File identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

name*

[PATH]

string

File Name with extension.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_FileName.pdf

Request Body

{
  "uploadDetail": "some details",
  "caption": "",
  "uploadTitle": "New title",
  "correlationId": "20201231235959"
}

Response Status Code

200

Response Body

{
  "cloaudStorage": false,
  "active": true,
  "_id": "999999999999999999999999",
  "correlationId": "20201231235959",
  "uploadTitle": "New title",
  "fileName": "20201231235959_filename",
  "caption": "",
  "fileType": "document",
  "fileUrl":"SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_filename.pdf",
  "recordDetail": "999999999999999999999999",
  "uploader": "auth0|999999999999999999999999",
  "fileSize": 798066,
  "createdAt": "2020-10-19T18:37:37.146Z",
  "updatedAt": "2020-10-19T18:37:37.146Z",
  "__v": 0,
  "uploadDetail": "some details"
}

SideDrawer Record File Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/record-files/{filename}

Try it here

Delete the SideDrawer Record File identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier as parent of the File

fileName*

[PATH]

string

File Name with extension.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_FileName.pdf

Request Body

{
  "uploadDetail": "some details",
  "caption": "",
  "uploadTitle": "New title",
  "correlationId": "20201231235959"
}

Response Status Code

200

Response Body

{
  "cloaudStorage": false,
  "active": true,
  "_id": "999999999999999999999999",
  "correlationId": "20201231235959",
  "uploadTitle": "New title",
  "fileName": "20201231235959_filename",
  "caption": "",
  "fileType": "document",
  "fileUrl":"SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/record-files/20201231235959_filename.pdf",
  "recordDetail": "999999999999999999999999",
  "uploader": "auth0|999999999999999999999999",
  "fileSize": 798066,
  "createdAt": "2020-10-19T18:37:37.146Z",
  "updatedAt": "2020-10-19T18:37:37.146Z",
  "__v": 0,
  "uploadDetail": "some details"
}

SideDrawer Timeline

SideDrawer Events

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/log

Try it here

Lists all the events occurred into the specific SideDrawer identified by the request parameter

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier to create the Events

entityType

[QUERY]

string

Entity related to the event.

Possible Values: [SideDrawer, Record, File, Network, License, Inbox, Subscription, Notification, Note]

modificationType

[QUERY]

string

Event type.

Possible Values: [Create, Delete, Update]

sender

[QUERY]

string

OpenId related to the Sender.

locale

[QUERY]

string

Locale for the event.

Possible Values: [en-CA, es-US, en-US]

page

[QUERY]

number

Number of page inquired.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier to create the Events

entityType

[QUERY]

string

Entity related to the event.

Possible Values: [SideDrawer, Record, File, Network, License, Inbox, Subscription, Notification, Note]

modificationType

[QUERY]

string

Event type.

Possible Values: [Create, Delete, Update]

sender

[QUERY]

string

OpenId related to the Sender.

locale

[QUERY]

string

Locale for the event.

Possible Values: [en-CA, es-US, en-US]

page

[QUERY]

number

Number of page inquired.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/log?entityType=File&modificationType=Delete&locale=en-US

Response Status Code

200

Response Body

{
  "data": [
    {
      "user": "Johnny McDowell",
      "action": "deleted",
      "entity": "File",
      "sidedrawerId": "999999999999999999999999",
      "sidedrawerName": "SD Name",
      "time": "Today at 1:12 PM",
      "rawTime": "2020-10-23T13:12:33.548Z",
      "id": "999999999999999999999999",
      "recordId": "999999999999999999999999",
      "recordName": "Finance Docs",
      "fileName": "20201231235959_filename",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A File was deleted by <strong>Johnny McDowell</strong>, on <span style=\"font-family:sdfont;font-size:1em; background:sdbackgroundcolor\"> #Finance Docs </span>, within <strong>SD Name</strong></span>"
    }
  ],
  "page": {
    "totalItems": 1,
    "currentPage": 1,
    "pageSize": 10,
    "totalPages": 1,
    "startPage": 1,
    "endPage": 1,
    "startIndex": 0,
    "endIndex": 1,
    "pages": [
      1
    ]
  }
}

SideDrawer Notes

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/notes

Try it here

Searches and list the notes related to the specific SideDrawer identified by the request parameter and according to the filtering criteria defined as follow:

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notes

pinToTop

[QUERY]

string

Filter by Pin To Top attribute.

Possible Values: [pin, unpin]

sender

[QUERY]

string

openId related to the Sender.

locale

[QUERY]

string

Locale for the Note.

Possible Values: [en-CA, es-US, en-US]

page

[QUERY]

number

Number of page inquired.

Empty result could be return if there are no notes that matches with the filtering criteria defined.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notes?locale=en-US

Response Status Code

200

Response Body

{
  "data": [
    {
      "user": "Johnny McDowell",
      "action": "added",
      "entity": "Note",
      "sidedrawerId": "999999999999999999999999",
      "sidedrawerName": "SD Name",
      "time": "Today at 1:29 PM",
      "rawTime": "2020-10-23T13:29:20.570Z",
      "id": "999999999999999999999999",
      "message": "Example note",
      "pinToTop": false
    }
  ],
  "page": {
    "totalItems": 1,
    "currentPage": 1,
    "pageSize": 10,
    "totalPages": 1,
    "startPage": 1,
    "endPage": 1,
    "startIndex": 0,
    "endIndex": 0,
    "pages": [
      1
    ]
  }
}

SideDrawer Note Creation

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/notes

Try it here

Lists all the notes added in the specific SideDrawer identified by the request parameter

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Note

Request Body

Attribute

Data Type

Notes

note*

string

Note content.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notes

Request Body

{
  "note": "Example note"
}

Response Status Code

200

Response Body

{
  "_id": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "username": "auth0|999999999999999999999999",
  "entity": "Note",
  "modificationType": "Create",
  "snapshot": {
    "note": "Example note"
  },
  "createdAt": "2020-10-23T13:29:20.570Z",
  "updatedAt": "2020-10-23T13:29:20.570Z",
  "__v": 0
}

Pin SideDrawer Note

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notes/note-id/{noteId}/pin

Try it here

Sets the attribute to pin to the top the specific SideDrawer Note identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Note

noteId*

[PATH]

string

Note identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notes/note-id/999999999999999999999999/pin

Response Status Code

200

Response Body

{
  "_id": "5f92dab03c4d3c249ac96a52",
  "sidedrawerId": "5f6a4bb8802a6d6e56769836",
  "username": "auth0|5f6a4aa7c6447000704c057a",
  "entity": "Note",
  "modificationType": "Create",
  "snapshot": {
    "note": "Example note",
    "pinToTop": true
  },
  "createdAt": "2020-10-23T13:29:20.570Z",
  "updatedAt": "2020-10-23T13:29:20.570Z",
  "__v": 0
}

Unpin SideDrawer Note

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notes/note-id/{noteId}/unpin

Try it here

Sets the attribute to unpin from the top the specific SideDrawer Note identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Note

noteId*

[PATH]

string

Note identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notes/note-id/999999999999999999999999/unpin

Response Status Code

200

Response Body

{
  "_id": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "username": "auth0|999999999999999999999999",
  "entity": "Note",
  "modificationType": "Create",
  "snapshot": {
    "note": "Example note",
    "pinToTop": false
  },
  "createdAt": "2020-10-23T13:29:20.570Z",
  "updatedAt": "2020-10-23T13:29:20.570Z",
  "__v": 0
}

SideDrawer Note Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/notes/note-id/{noteId}

Try it here

Deletes the specific SideDrawer Note identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Note

noteId*

[PATH]

string

Note identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notes/note-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "_id": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "username": "auth0|999999999999999999999999",
  "entity": "Note",
  "modificationType": "Create",
  "snapshot": {
    "note": "Example note",
    "pinToTop": false
  },
  "createdAt": "2020-10-23T13:29:20.570Z",
  "updatedAt": "2020-10-23T13:29:20.570Z",
  "__v": 0
}

SideDrawer Notifications

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications

Try it here

Searches and list the notifications related to the specific SideDrawer identified by the request parameter and according to the filtering criteria defined as follow:

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notification.

pinToTop

[QUERY]

string

Filter by Pin To Top attribute.

Possible Values: [pin, unpin]

sender

[QUERY]

string

openId related to the Sender.

locale

[QUERY]

string

Locale for the Notification.

Possible Values: [en-CA, es-US, en-US]

page

[QUERY]

number

Number of page inquired.

Empty result could be return if there are no notifications that matches with the filtering criteria defined.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/unread-count

Response Status Code

200

Response Body

{
  "data": [
    {
      "user": "Johnny McDowell",
      "action": "added",
      "entity": "File",
      "sidedrawerId": "999999999999999999999999",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:45.052Z",
      "id": "999999999999999999999999",
      "recordId": "999999999999999999999999",
      "recordName": "Finance Docs",
      "fileName": "1603151537010-image.png",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A File was added by <strong>Johnny McDowell</strong>, on <span style=\"font-family:sdfont;font-size:1em; background:sdbackgroundcolor\"> #Finance Docs </span>, within <strong>SD Johnny</strong></span>",
      "read": false
    },
    {
      "user": "Mary Jane",
      "action": "added",
      "entity": "Email",
      "sidedrawerId": "999999999999999999999999",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:17.073Z",
      "id": "999999999999999999999999",
      "subject": "New Invoice",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A Email was added by <strong>Mary Jane</strong>, within <strong>SD Johnny</strong></span>",
      "read": true
    },
    {
      "user": "Mike Wazowski",
      "action": "added",
      "entity": "Email",
      "sidedrawerId": "999999999999999999999999",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:15.648Z",
      "id": "999999999999999999999999",
      "subject": "Old Invoice",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A Email was added by <strong>Mike Wazowski</strong>, within <strong>SD Johnny</strong></span>",
      "read": false
    }
  ],
  "page": {
    "totalItems": 3,
    "currentPage": 1,
    "pageSize": 10,
    "totalPages": 1,
    "startPage": 1,
    "endPage": 1,
    "startIndex": 0,
    "endIndex": 4,
    "pages": [
      1
    ]
  }
}

SideDrawer Notifications Unread Counter

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/unread-count

Try it here

Gets the counter of unread notifications for the specific SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notification.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/unread-count

Response Status Code

200

Response Body

2

Read SideDrawer Notification

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/notification-id/{notificationId}/read

Try it here

Mark as read the specific SideDrawer Notification identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notification.

notificationId*

[PATH]

string

Notification identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/notification-id/999999999999999999999999/read

Response Status Code

200

Response Body

{
  "read": true,
  "active": true,
  "_id": "999999999999999999999999",
  "logId": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "createdAt": "2020-10-19T23:52:17.105Z",
  "updatedAt": "2020-10-20T11:01:54.596Z",
  "__v": 0
}

Unread SideDrawer Notification

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/notification-id/{notificationId}/unread

Try it here

Mark as unread the specific SideDrawer Notification identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notification.

notificationId*

[PATH]

string

Notification identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/notification-id/999999999999999999999999/unread

Response Status Code

200

Response Body

{
  "read": true,
  "active": true,
  "_id": "999999999999999999999999",
  "logId": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "createdAt": "2020-10-19T23:52:17.105Z",
  "updatedAt": "2020-10-20T11:01:54.596Z",
  "__v": 0
}

Read all SideDrawer Notifications

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/read

Try it here

Mark as read all the Notification for the SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notifications.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/read

Response Status Code

200

Response Body

{
  "n": 3,
  "nModified": 3,
  "opTime": {
    "ts": "6886828296466595861",
    "t": 24
  },
  "electionId": "5fffffff0000000000000000",
  "ok": 1,
  "$clusterTime": {
    "clusterTime": "6886828296466595861",
    "signature": {
      "hash": "2nEB6cSVpcO8ZgLQgBezEgOXyqM=",
      "keyId": "6852021177125175298"
    }
  },
  "operationTime": "6886828296466595861"
}

Unread all SideDrawer Notifications

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/unread

Try it here

Mark as unread all the Notification for the SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notifications.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/unread

Response Status Code

200

Response Body

{
  "n": 3,
  "nModified": 3,
  "opTime": {
    "ts": "6886828296466595861",
    "t": 24
  },
  "electionId": "5fffffff0000000000000000",
  "ok": 1,
  "$clusterTime": {
    "clusterTime": "6886828296466595861",
    "signature": {
      "hash": "2nEB6cSVpcO8ZgLQgBezEgOXyqM=",
      "keyId": "6852021177125175298"
    }
  },
  "operationTime": "6886828296466595861"
}

SideDrawer Notification Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/notifications/notification-id/{notificationId}

Try it here

Deletes the specific SideDrawer Notification identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Notification.

notificationId*

[PATH]

string

Notification identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/notifications/notification-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "read": true,
  "active": true,
  "_id": "999999999999999999999999",
  "logId": "999999999999999999999999",
  "sidedrawerId": "999999999999999999999999",
  "openId": "auth0|999999999999999999999999",
  "createdAt": "2020-10-19T23:52:17.105Z",
  "updatedAt": "2020-10-20T11:01:54.596Z",
  "__v": 0
}

SideDrawer Timeline

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/timeline

Try it here

Gets the Timeline (logs, notes and notifications) for the specific SideDrawer identified by the request parameter

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Timeline.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/timeline

Response Status Code

200

Response Body

{
  "data": [
    {
      "user": "Johnny McDowell",
      "action": "added",
      "entity": "File",
      "sidedrawerId": "5f6a4bb8802a6d6e56769836",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:45.052Z",
      "id": "5f8e26cd05f3cb9b22e81e49",
      "recordId": "5f8ddc5005f3cb06e8e81d3d",
      "recordName": "Finance Docs",
      "fileName": "1603151537010-image.png",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A File was added by <strong>Johnny McDowell</strong>, on <span style=\"font-family:sdfont;font-size:1em; background:sdbackgroundcolor\"> #Finance Docs </span>, within <strong>SD Johnny</strong></span>",
      "read": false
    },
    {
      "user": "Mary Jane",
      "action": "added",
      "entity": "Email",
      "sidedrawerId": "5f6a4bb8802a6d6e56769836",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:17.073Z",
      "id": "5f8e26b105f3cbc24ee81e45",
      "subject": "New Invoice",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A Email was added by <strong>Mary Jane</strong>, within <strong>SD Johnny</strong></span>",
      "read": true
    },
    {
      "user": "Mike Wazowski",
      "action": "added",
      "entity": "Email",
      "sidedrawerId": "5f6a4bb8802a6d6e56769836",
      "sidedrawerName": "SD Johnny",
      "time": "Last Monday at 11:52 PM",
      "rawTime": "2020-10-19T23:52:15.648Z",
      "id": "5f8e26af05f3cb353ee81e41",
      "subject": "Old Invoice",
      "message": "<span style=\"font-family:sdfont;font-size:1em\">A Email was added by <strong>Mike Wazowski</strong>, within <strong>SD Johnny</strong></span>",
      "read": false
    }
  ],
  "page": {
    "totalItems": 3,
    "currentPage": 1,
    "pageSize": 10,
    "totalPages": 1,
    "startPage": 1,
    "endPage": 1,
    "startIndex": 0,
    "endIndex": 4,
    "pages": [
      1
    ]
  }
}

SideDrawer Related Records

SideDrawer Related Record Creation

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/related

Try it here

Creates a relationship between the specific SideDrawer Record identified by the request parameters and the record defined in the request body.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Request Body

Attribute

Data Type

Notes

recordId*

string

Related record identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/related

Request Body

{
  "recordId": "111111111111111111111111"
}

Response Status Code

200

Response Body

{
  "active": true,
  "relatedRecord": {
    "editable": true,
    "active": true,
    "name": "Antiques",
    "description": "",
    "uniqueReference": "2020-10-02 16:04:33.788",
    "storageLocation": "",
    "recordSubtypeOther": "sarasa",
    "updatedAt": "2020-10-02T19:04:37.358Z",
    "status": null,
    "sidedrawer": "999999999999999999999999",
    "recordSubtype": {
      "blockSections": {
        "blockDescription": false,
        "blockFiles": false,
        "blockLinkedRecords": false,
        "blockCollaborators": false,
        "blockSpecificFields": false
      },
      "orderId": 0,
      "name": "other",
      "logo": "https://imagesource/guitars-light.png",
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Other"
        },
        {
          "locale": "en-US",
          "value": "Other"
        }
      ],
      "id": "999999999999999999999999"
    },
    "recordType": {
      "sidedrawerType": "individual",
      "orderId": 0,
      "name": "collectibles",
      "logo": "https://imagesource/guitars-light.png",
      "displayValue": [
        {
          "locale": "en-US",
          "value": "Collectibles"
        },
        {
          "locale": "en-US",
          "value": "Collectibles"
        },
        {
          "locale": "es-US",
          "value": "Colecciones"
        }
      ],
      "id": "999999999999999999999999"
    },
    "createdAt": "2020-10-02T19:04:37.358Z",
    "id": "111111111111111111111111"
  },
  "createdAt": "2020-10-23T15:36:53.777Z",
  "updatedAt": "2020-10-23T15:36:53.777Z",
  "id": "999999999999999999999999"
}

SideDrawer Related Records

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/related

Try it here

Gets the records related to the specific SideDrawer Record identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/related

Response Status Code

200

Response Body

[
  {
    "id": "5f7779c56637843da3ea82a1",
    "name": "Personal antiques"
  }
]

SideDrawer Related Record Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/records/record-id/{recordId}/related

Try it here

Deletes the relationship between the specific SideDrawer Record identified by the request parameters and the record defined in the request body.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier

Request Body

Attribute

Data Type

Notes

recordId*

string

Related record identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/records/record-id/999999999999999999999999/related

Request Body

{
  "recordId": "111111111111111111111111"
}

Response Status Code

200

Response Body

{
  "active": true,
  "relatedRecord": "111111111111111111111111",
  "createdAt": "2020-10-23T15:36:53.777Z",
  "updatedAt": "2020-10-23T15:36:53.777Z",
  "id": "999999999999999999999999"
}

SideDrawer Tiles

SideDrawer Record Type

GET /records-type

Try it here

Lists the generic tiles defined for standard SideDrawer according to the following request parameters:

Parameter

Param Type

Data Type

Notes

sidedrawerType

[QUERY]

string

Type of standard SideDrawer (individual as default)

Possible Values: [individual, business]

locale

[QUERY]

string

Locale for names

Possible Values: [en-CA, es-US, en-US]

order

[QUERY]

number

Order to return the information (default ASC)

Possible Values: [ASC, DESC]

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/records-type?locale=en-US&order=ASC&sidedrawerType=individual

Response Status Code

200

Response Body

[
  {
    "id": "999999999999999999999999",
    "name": "legalDocs",
    "logo": "https://imagesource/file-contract-small-light.png",
    "orderId": 0,
    "sidedrawerType": "individual",
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Legal Documents"
      }
    ]
  },
  {
    "id": "999999999999999999999999",
    "name": "insurancePolicies",
    "logo": "https://imagesource/umbrella-light.png",
    "orderId": 0,
    "sidedrawerType": "individual",
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Insurance Policies"
      }
    ]
  },.......
]

SideDrawer Record Subtypes

SideDrawer Record Subtypes

GET /records-type/record-type-name/{recordTypeName}/record-subtype

Try it here

Lists the generic record subtypes defined for an specific SideDrawer Record Tile according to the following request parameters:

Parameter

Param Type

Data Type

Notes

recordTypeName*

[PATH]

string

Tile name related to the record types.

locale

[QUERY]

string

Locale for the Tiles

Possible Values: [en-CA, es-US, en-US]

order

[QUERY]

number

Order to return the information (default ASC)

Possible Values: [ASC, DESC]

These Record types are suggested in the Record settings

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/records-type/record-type-name/legalDocs/record-subtype?locale=en-US&order=ASC

Response Status Code

200

Response Body

[
  {
    "id": "999999999999999999999999",
    "name": "birthCertificate",
    "logo": "https://imagesource/file-contract-light.png",
    "orderId": 0,
    "blockSections": {
      "blockDescription": false,
      "blockFiles": false,
      "blockLinkedRecords": false,
      "blockCollaborators": false,
      "blockSpecificFields": false
    },
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Birth Certificate"
      }
    ]
  },
  {
    "id": "999999999999999999999999",
    "name": "cemeteryPlot",
    "logo": "https://imagesource/home-lg-light.png",
    "orderId": 0,
    "blockSections": {
      "blockDescription": false,
      "blockFiles": false,
      "blockLinkedRecords": false,
      "blockCollaborators": false,
      "blockSpecificFields": false
    },
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Cemetary or Burial Plot"
      }
    ]
  },.......
]

Record Subtypes Specific Fields

SideDrawer Record Subtypes Fields

GET /records-type/record-type-name/{recordTypeName}/record-subtype/record-subtype-name/{recordSubtypeName}/specific-fields

Try it here

Lists the specific fields related to the specific SideDrawer Record type identified in the request parameters and considering the following:

Parameter

Param Type

Data Type

Notes

recordTypeName*

[PATH]

string

Tile name related to the record types.

recordSubtypeName*

[PATH]

string

Record subtype name related to the specific fields.

locale

[QUERY]

string

Locale for names

Possible Values: [en-CA, es-US, en-US]

order

[QUERY]

number

Order to return the information (default ASC)

Possible Values: [ASC, DESC]

These specific fields are suggested in the Record settings according to the Record subtype defined.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/records-type/record-type-name/identityDocs/record-subtype/record-subtype-name/passport/specific-fields?locale=en-US&order=ASC

Response Status Code

200

Response Body

[
  {
    "fieldName": "passportNumber",
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Passport Number"
      }
    ],
    "type": "isString",
    "formType": "string",
    "id": "999999999999999999999999",
    "orderId": 0
  },
  {
    "fieldName": "issueDate",
    "displayValue": [
      {
        "locale": "en-US",
        "value": "Issue Date"
      }
    ],
    "type": "isDate",
    "formType": "date",
    "id": "999999999999999999999999",
    "orderId": 0
  },........
]

Network

Accessible Assets

GET /network

Try it here

List the assets where the logged user has access or was invited to access, according to the filtering criteria defined as request parameters as follow:

Parameter

Param Type

Data Type

Notes

networkId

[QUERY]

string

Network identifier.

sidedrawerId

[QUERY]

string

SideDrawer identifier.

sidedrawerRole

[QUERY]

string

SideDrawer permission role.

Possible Values: [sd_owner, sd_editor, sd_viewer, sd_info]

recordId

[QUERY]

string

Record identifier.

recordRole

[QUERY]

string

Record permission role.

Possible Values: [rec_owner, rec_editor, rec_viewer, rec_info]

personal

[QUERY]

string

Personal relationship.

Possible Values: [spouse, partner, friend, sibling, child, grand_child, parent, grand_parent, in_law, relative, other]

profession

[QUERY]

string

Professional relationship.

Possible Values: [estate_lawyer, vip_client, client, lawyer, real_estate_agent, mortgage_broker, insurance_broker, investment_advisor, banking_relationship, manager, accountant, financial_planner, bookkeeper, executor, executor_advisor, sponsor, other]

invitationCode

[QUERY]

string

Invitation code.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/network?recordRole=rec_editor

Response Status Code

200

Response Body

[
  {
    "id": "999999999999999999999999",
    "recordRole": "rec_editor",
    "relation": {
      "profession": "",
      "professionOther": "",
      "personal": "grand_parent",
      "personalOther": ""
    },
    "sidedrawer": "999999999999999999999999",
    "record": "999999999999999999999999",
    "contributor": {
      "openId": "auth0|999999999999999999999999",
      "firstName": "Johnny",
      "lastName": "McDowell",
      "email": "johnnymcdowell@maildomain.com",
      "phoneNumber": ""
    }
  }
]

SideDrawer/Record Individual Collaborators

GET /my-network

Try it here

Lists all the active individual collaborators associated to the assets of the logged user or just the ones related to the specific SideDrawer or Record defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId

[QUERY]

string

SideDrawer identifier.

recordId

[QUERY]

string

Record identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/my-network?sidedrawerId=999999999999999999999999

Response Status Code

200

Response Body

[
  {
    "name": "Sponsor",
    "email": "johnnymcdowell@maildomain.com",
    "openId": "auth0|5f6f2219f00d9d0068ddd9ce",
    "phoneNumber": 5678943210,
    "profilePhoto": "https://imagesource/icons/avatar.png",
    "network": [
      {
        "id": "999999999999999999999999",
        "relation": {
          "profession": "mortgage_broker",
          "professionOther": "",
          "personal": "other",
          "personalOther": ""
        },
        "sidedrawer": "999999999999999999999999",
        "sidedrawerRole": "sd_editor"
      }
    ]
  },........
]

SideDrawer/Record Team Collaborators

GET /my-teams

Try it here

Lists all the active teams collaborators associated to the assets of the logged user or just the ones related to the specific SideDrawer or Record defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId

[QUERY]

string

SideDrawer identifier.

recordId

[QUERY]

string

Record identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/my-team?recordId=999999999999999999999999

Response Status Code

200

Response Body

 

SideDrawer/Record Invitations

GET /my-invitations

Try it here

Lists all the invitations to the logged user to access to the specific SideDrawer or Record defined as request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId

[QUERY]

string

SideDrawer identifier.

recordId

[QUERY]

string

Record identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/my-invitations?sidedrawerId=999999999999999999999999

Response Status Code

200

Response Body

[
  {
    "name": "Johnny McDowell",
    "email": "johnnymcdowell@maildomain.com",
    "openId": "",
    "phoneNumber": "",
    "profilePhoto": "",
    "network": [
      {
        "id": "999999999999999999999999",
        "relation": {
          "profession": "other",
          "professionOther": "",
          "personal": "grand_child",
          "personalOther": ""
        },
        "sidedrawer": "999999999999999999999999",
        "sidedrawerRole": "sd_editor"
      }
    ]
  }
]

SideDrawers

GET /sidedrawer/others

Try it here

Lists all the SideDrawers related to the logged user.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/others

Response Status Code

200

Response Body

[
  {
    "name": "Individual SD",
    "sdRole": "sd_viewer",
    "default": false,
    "sdPhoto": "https://imagesource/icons/avatars.png",
    "id": "5f7134e705d25b9233560a9b",
    "networkId": "5f7134e905d25b46e9560a9e",
    "plan": ""
  },
  {
    "name": "Business SD",
    "sdRole": "sd_editor",
    "default": false,
    "sdPhoto": "https://imagesource/icons/avatars.png",
    "id": "5f74c3b6663784b19dea7d6a",
    "networkId": "5f74c3b6663784e07fea7d6d",
    "plan": ""
  }
]

SideDrawer Collaborator Creation

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/network

Try it here

Creates a new SideDrawer Collaborator for the specific SideDrawer defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerRole*

string

SideDrawer permission role

Possible Values: [sd_owner, sd_editor, sd_viewer, sd_info]

contributor.firstName*

string

First name of the Contributor.

contributor.lastName*

string

Last name of the Contributor.

contributor.email*

string

Email of the Contributor.

contributor.phone*

string

Phone number of the Contributor.

contributor.teamId

string

Team identifier when the Collaborator is a team.

contributorType

string

Contributor Type.

Possible Values: [account, team, invitation]

relation.personal

string

Contributor Personal relationship

Possible Values: [spouse, partner, friend, sibling, child, grand_child, parent, grand_parent, in_law, relative, other]

relation.profession

string

Contributor Profession.

Possible Values: [estate_lawyer, vip_client, client, lawyer, real_estate_agent, mortgage_broker, insurance_broker, investment_advisor, banking_relationship, manager, accountant, financial_planner, bookkeeper, executor, executor_advisor, sponsor, other]

relation.personalOther

string

Description when the Contributor Personal relationship is “other“

relation.professionOther

string

Description when the Contributor Profession is “other“

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/network

Request Body

{
   "sideDrawer":"999999999999999999999999",
   "sidedrawerRole":"sd_editor",
   "contributor":{
      "openId":"",
      "firstName":"Johnny",
      "lastName":"McDowell",
      "email":"johnnymcdowell@maildomain.com",
      "phoneNumber":""
   },
   "relation":{
      "personal":"relative",
      "profession":"other",
      "professionOther":"",
      "personalOther":""
   }
}

Response Status Code

201

Response Body

{
   "active":true,
   "_id":"888888888888888888888888",
   "sidedrawerRole":"sd_editor",
   "invitationCode":"237d1c91-9fc5-48b2-acee-5b6949c6a93a",
   "contributorType":"invitation",
   "personal":"relative",
   "personalOther":"",
   "profession":"other",
   "professionOther":"",
   "sidedrawer":"999999999999999999999999",
   "createdAt":"2020-10-23T17:31:47.549Z",
   "updatedAt":"2020-10-23T17:31:47.549Z",
   "__v":0
}

SideDrawer Collaborator Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/network

Try it here

Deletes a SideDrawer Collaborator for the specific SideDrawer defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerRole*

string

SideDrawer permission role

Possible Values: [sd_owner, sd_editor, sd_viewer, sd_info]

contributor

string

Contributor openId when it is a registered user

teamId

string

Team identifier.

email

string

Contributor email when it is an Invitation

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/network

Request Body

{
  "recordRole": "sd_editor",
  "email": "johnnymcdowell@maildomain.com"
}

Response Status Code

200

Response Body

{
  "active": true,
  "sidedrawerRole": "sd_editor",
  "invitationCode": "e4740c76-19d3-4705-905e-57230abdd3ba",
  "contributorType": "invitation",
  "personal": "grand_child",
  "personalOther": "",
  "profession": "other",
  "professionOther": "",
  "sidedrawer": "999999999999999999999999",
  "createdAt": "2020-10-23T17:17:20.946Z",
  "updatedAt": "2020-10-23T17:17:20.946Z",
  "id": "888888888888888888888888"
}

SideDrawer Network Deletion By Id

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/network/network-id/{networkId}

Try it here

Delete the Network reationship for the specific SideDrawer and Network identifiers defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier.

networkId*

[PATH]

string

Network identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/network/network-id/888888888888888888888888

Response Status Code

200

Response Body

{
  "active": true,
  "sidedrawerRole": "sd_editor",
  "invitationCode": "e4740c76-19d3-4705-905e-57230abdd3ba",
  "contributorType": "invitation",
  "personal": "grand_child",
  "personalOther": "",
  "profession": "other",
  "professionOther": "",
  "sidedrawer": "999999999999999999999999",
  "createdAt": "2020-10-23T17:17:20.946Z",
  "updatedAt": "2020-10-23T17:17:20.946Z",
  "id": "888888888888888888888888"
}

SideDrawer Record Collaborator Creation

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/record/record-id/{recordId}/network

Try it here

Creates a new SideDrawer Record Collaborator for the specific SideDrawer Record defined as request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerRole*

string

SideDrawer permission role

Possible Values: [rec_owner, rec_editor, rec_viewer, rec_info]

contributor.firstName*

string

First name of the Contributor.

contributor.lastName*

string

Last name of the Contributor.

contributor.email*

string

Email of the Contributor.

contributor.phone*

string

Phone number of the Contributor.

contributor.teamId

string

Team identifier when the Collaborator is a team.

contributorType

string

Contributor Type.

Possible Values: [account, team, invitation]

relation.personal

string

Contributor Personal relationship

Possible Values: [spouse, partner, friend, sibling, child, grand_child, parent, grand_parent, in_law, relative, other]

relation.profession

string

Contributor Profession.

Possible Values: [estate_lawyer, vip_client, client, lawyer, real_estate_agent, mortgage_broker, insurance_broker, investment_advisor, banking_relationship, manager, accountant, financial_planner, bookkeeper, executor, executor_advisor, sponsor, other]

relation.personalOther

string

Description when the Contributor Personal relationship is “other“

relation.professionOther

string

Description when the Contributor Profession is “other“

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/record/record-id/888888888888888888888888/network

Request Body

{
   "sideDrawer":"999999999999999999999999",
   "record":"888888888888888888888888",
   "recordRole":"rec_editor",
   "sidedrawerRole":null,
   "contributor":{
      "openId":"",
      "firstName":"Johnny",
      "lastName":"McDowell",
      "email":" johnnymcdowell@maildomain.com",
      "phoneNumber":""
   },
   "relation":{
      "personal":"grand_child",
      "profession":"other",
      "professionOther":"",
      "personalOther":""
   }
}

Response Status Code

201

Response Body

{
   "active":true,
   "_id":"777777777777777777777777",
   "record":"888888888888888888888888",
   "recordRole":"rec_editor",
   "invitationCode":"29e997a3-9f7c-4967-9711-6baa0648527c",
   "contributorType":"invitation",
   "personal":"grand_child",
   "personalOther":"",
   "profession":"other",
   "professionOther":"",
   "sidedrawer":"999999999999999999999999",
   "createdAt":"2020-10-23T17:51:43.790Z",
   "updatedAt":"2020-10-23T17:51:43.790Z",
   "__v":0
}

SideDrawer Record Collaborator Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/record/record-id/{recordId}/network

Try it here

Delete a Collaborator from the specific SideDrawer Record defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerRole*

string

SideDrawer permission role

Possible Values: [rec_owner, rec_editor, rec_viewer, rec_info]

contributor

string

Contributor openId when it is a registered user

teamId

string

Team identifier.

email

string

Contributor email when it is an Invitation

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/record/record-id/888888888888888888888888/network

Request Body

{
  "recordRole": "rec_editor",
  "email": "arsidedrawer+johnnymcdowell@maildomain.com"
}

Response Status Code

200

Response Body

{
  "active": true,
  "record": "888888888888888888888888",
  "recordRole": "rec_editor",
  "invitationCode": "29e997a3-9f7c-4967-9711-6baa0648527c",
  "contributorType": "invitation",
  "personal": "grand_child",
  "personalOther": "",
  "profession": "other",
  "professionOther": "",
  "sidedrawer": "999999999999999999999999",
  "createdAt": "2020-10-23T17:51:43.790Z",
  "updatedAt": "2020-10-23T17:51:43.790Z",
  "id": "777777777777777777777777"
}

SideDrawer Record Network Deletion By Id

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/record/record-id/{recordId}/network/network-id/{networkId}

Try it here

Delete the Network reationship from the specific SideDrawer Record and Network identifier defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Record.

recordId*

[PATH]

string

Record identifier.

networkId*

[PATH]

string

Network identifier.

Example:

Request URL

https://RECORDS-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/record/record-id/888888888888888888888888/network/network-id/777777777777777777777777

Response Status Code

200

Response Body

{
  "active": true,
  "record": "888888888888888888888888",
  "recordRole": "rec_editor",
  "invitationCode": "29e997a3-9f7c-4967-9711-6baa0648527c",
  "contributorType": "invitation",
  "personal": "grand_child",
  "personalOther": "",
  "profession": "other",
  "professionOther": "",
  "sidedrawer": "999999999999999999999999",
  "createdAt": "2020-10-23T17:51:43.790Z",
  "updatedAt": "2020-10-23T17:51:43.790Z",
  "id": "777777777777777777777777"
}

SideDrawer Inbox API 1.0

This API allows the user to manage the incoming emails to a specific email address set for the a SideDrawer, with the ability to move the attachment files to any SideDrawer Record.

Inbox

Inbox Synchronization

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/sync

Try it here

Synchronizes the Inbox with incoming emails for the specific SideDrawer defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/sync

Response Status Code

200

Emails

Email List

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox

Try it here

List all the emails related to the Inbox of the specific SideDrawer defined as request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox

Response Status Code

200

Response Body

[
  {
    "id": "999999999999999999999999",
    "sentDateTime": "2020-10-23T18:04:40.000Z",
    "hasAttachments": false,
    "attachmentsCount": 0,
    "subject": "Documentation",
    "bodyPreview": "test",
    "importance": "normal",
    "isRead": false,
    "isFlagged": false,
    "from": {
      "name": "Sender Name",
      "address": "sender@maildomain.com"
    },
    "to": [
      {
        "_id": "999999999999999999999999",
        "name": "johnnymcdowell@sidedrawer.com",
        "address": "johnnymcdowell@sidedrawer.com"
      }
    ]
  },
  {
    "id": "999999999999999999999999",
    "sentDateTime": "2020-10-23T18:04:40.000Z",
    "hasAttachments": false,
    "attachmentsCount": 0,
    "subject": "Information",
    "bodyPreview": "test",
    "importance": "normal",
    "isRead": false,
    "isFlagged": false,
    "from": {
      "name": "Another Sender",
      "address": "anothersender@maildomain.com"
    },
    "to": [
      {
        "_id": "999999999999999999999999",
        "name": "johnnymcdowell@sidedrawer.com",
        "address": "johnnymcdowell@sidedrawer.com"
      }
    ]
  },......
]

Email Details

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}

Try it here

Gets the details for the specific email into the SideDrawer defined as request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "id": "999999999999999999999999",
  "sentDateTime": "2020-10-23T18:04:40.000Z",
  "hasAttachments": false,
  "subject": "Information",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\">test</div></body></html>",
  "importance": "normal",
  "isRead": false,
  "isFlagged": false,
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "to": [
    {
      "_id": "5f931b4a6c945216d321e0af",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": []
}

Email Deletion

DELETE /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}

Try it here

Deletes the specific email into the SideDrawer defined as request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999

Response Status Code

200

Response Body

{
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "isFlagged": false,
  "active": true,
  "_id": "999999999999999999999999",
  "sidedrawer": "999999999999999999999999",
  "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEtAAA=",
  "sentDateTime": "2020-10-23T18:04:40.000Z",
  "hasAttachments": false,
  "subject": "Information",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\">test</div></body></html>",
  "bodyPreview": "test",
  "importance": "normal",
  "isRead": false,
  "to": [
    {
      "_id": "999999999999999999999999",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": [],
  "attachmentsCount": 0,
  "createdAt": "2020-10-23T18:04:58.653Z",
  "updatedAt": "2020-10-23T18:04:58.653Z",
  "__v": 0
}

Read Email

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}/read

Try it here

Mark as read the specific email into the SideDrawer identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999/read

Response Status Code

200

Response Body

{
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "isFlagged": false,
  "active": true,
  "_id": "999999999999999999999999",
  "sidedrawer": "999999999999999999999999",
  "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAA=",
  "sentDateTime": "2020-10-19T23:51:57.000Z",
  "hasAttachments": true,
  "subject": "Test",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\"><br></div></body></html>",
  "bodyPreview": "",
  "importance": "normal",
  "isRead": true,
  "to": [
    {
      "_id": "999999999999999999999999",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": [
    {
      "status": "inbox",
      "_id": "999999999999999999999999",
      "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAABEgAQAOq2cmFEpAZChy3FbtGn0xg=",
      "contentType": "image/png",
      "name": "image-20201016-132028.png",
      "url": "SideDrawerApiVersion/sidedrawer/sidedrawer-id/5f6a4bb8802a6d6e56769836/inbox/attachments/1603151536258-image-20201016-132028.png"
    }
  ],
  "attachmentsCount": 1,
  "createdAt": "2020-10-19T23:52:16.282Z",
  "updatedAt": "2020-10-23T18:26:03.327Z",
  "__v": 0
}

Unread Email

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}/un-read

Try it here

Mark as unread the specific email into the SideDrawer identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999/un-read

Response Status Code

200

Response Body

{
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "isFlagged": false,
  "active": true,
  "_id": "999999999999999999999999",
  "sidedrawer": "999999999999999999999999",
  "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAA=",
  "sentDateTime": "2020-10-19T23:51:57.000Z",
  "hasAttachments": true,
  "subject": "Test",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\"><br></div></body></html>",
  "bodyPreview": "",
  "importance": "normal",
  "isRead": true,
  "to": [
    {
      "_id": "999999999999999999999999",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": [
    {
      "status": "inbox",
      "_id": "999999999999999999999999",
      "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAABEgAQAOq2cmFEpAZChy3FbtGn0xg=",
      "contentType": "image/png",
      "name": "image-20201016-132028.png",
      "url": "SideDrawerApiVersion/sidedrawer/sidedrawer-id/5f6a4bb8802a6d6e56769836/inbox/attachments/1603151536258-image-20201016-132028.png"
    }
  ],
  "attachmentsCount": 1,
  "createdAt": "2020-10-19T23:52:16.282Z",
  "updatedAt": "2020-10-23T18:26:03.327Z",
  "__v": 0
}

Flag Email

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}/flag

Try it here

Mark as flagged the specific email into the SideDrawer identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999/flag

Response Status Code

200

Response Body

{
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "isFlagged": false,
  "active": true,
  "_id": "999999999999999999999999",
  "sidedrawer": "999999999999999999999999",
  "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAA=",
  "sentDateTime": "2020-10-19T23:51:57.000Z",
  "hasAttachments": true,
  "subject": "Test",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\"><br></div></body></html>",
  "bodyPreview": "",
  "importance": "normal",
  "isRead": true,
  "to": [
    {
      "_id": "999999999999999999999999",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": [
    {
      "status": "inbox",
      "_id": "999999999999999999999999",
      "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAABEgAQAOq2cmFEpAZChy3FbtGn0xg=",
      "contentType": "image/png",
      "name": "image-20201016-132028.png",
      "url": "SideDrawerApiVersion/sidedrawer/sidedrawer-id/5f6a4bb8802a6d6e56769836/inbox/attachments/1603151536258-image-20201016-132028.png"
    }
  ],
  "attachmentsCount": 1,
  "createdAt": "2020-10-19T23:52:16.282Z",
  "updatedAt": "2020-10-23T18:26:03.327Z",
  "__v": 0
}

Unflag Email

PUT /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/email/email-id/{emailId}/un-flag

Try it here

Mark as unflagged the specific email into the SideDrawer identified by the request parameters

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

emailId*

[PATH]

string

Email identifier.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/email/email-id/999999999999999999999999/un-flag

Response Status Code

200

Response Body

{
  "from": {
    "name": "Sender",
    "address": "sender@maildomain.com"
  },
  "isFlagged": false,
  "active": true,
  "_id": "999999999999999999999999",
  "sidedrawer": "999999999999999999999999",
  "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAA=",
  "sentDateTime": "2020-10-19T23:51:57.000Z",
  "hasAttachments": true,
  "subject": "Test",
  "body": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\"><br></div></body></html>",
  "bodyPreview": "",
  "importance": "normal",
  "isRead": true,
  "to": [
    {
      "_id": "999999999999999999999999",
      "name": "johnnymcdowell@sidedrawer.com",
      "address": "johnnymcdowell@sidedrawer.com"
    }
  ],
  "attachments": [
    {
      "status": "inbox",
      "_id": "999999999999999999999999",
      "microsoftId": "AAMkADdiNzg5MTQ0LTkyZjMtNDZiMS1iOWQ0LWY5YWNiNDI0MDMxNwBGAAAAAADzt41gdWNTRqEK6q09cAHLBwAK8_bb_cQ3SLfQfeXmxBbtAAAAAAEMAAAK8_bb_cQ3SLfQfeXmxBbtAABrEnEdAAABEgAQAOq2cmFEpAZChy3FbtGn0xg=",
      "contentType": "image/png",
      "name": "image-20201016-132028.png",
      "url": "SideDrawerApiVersion/sidedrawer/sidedrawer-id/5f6a4bb8802a6d6e56769836/inbox/attachments/1603151536258-image-20201016-132028.png"
    }
  ],
  "attachmentsCount": 1,
  "createdAt": "2020-10-19T23:52:16.282Z",
  "updatedAt": "2020-10-23T18:26:03.327Z",
  "__v": 0
}

Attachments

File Attachment Download

GET /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/attachments/{fileName}

Try it here

Allows to download a specific File Attachment from an email in the Inbox of the SideDrawer identified by the request parameter.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

fileName*

[PATH]

string

File name to download.

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/attachments/filename.png

Response Status Code

200

Response Body

Download file URL

File Attachment to Record

POST /sidedrawer/sidedrawer-id/{sidedrawerId}/inbox/attachments/{fileName}

Try it here

Copy the File Attachment from an email in the Inbox to Records into the SideDrawer identified by the request parameters.

Parameter

Param Type

Data Type

Notes

sidedrawerId*

[PATH]

string

SideDrawer identifier as parent of the Inbox.

fileName*

[PATH]

string

File name to copy to Records.

Request Body

Attribute

Data Type

Notes

records*

string array

List of Records identifiers to copy the file.

fileName*

string

Unique name that the binary will have at SideDrawer Database it has to be unique.

This is mandatory, and it can be set by the App. In order to do so, add the timestamp when EACH file is posted (YYMMDDHHMMSS_*), all timestamps for each file will be different

correlationId*

string

A uniquely defined parameter that will allow the API to "group" all files uploaded as part of the same process. This needs to be added to the API.

This field is mandatory for all uploads, and it has to be unique enough at least for the SideDrawer/Record combination.

Recommendation is to use the timestamp (YYMMDDHHMMSS) of the instant in which the user "submits" the upload of the file or image collection.

uploadDetail

string

Detail of the upload instance, it is NOT mandatory

caption

string

"caption" of each image that is uploaded, it is mandatory for images, it is not mandatory for documents.

Determine if this uses the captionName or the caption locale-driven value

uploadTitle

string

This is what should be listed in the "File History" list.

fileType

string

Type of file is being pushed

Possible Values: [ image, document ]

fileExtension

string

File extension

Example:

Request URL

https://INBOX-SideDrawerApiVersion/sidedrawer/sidedrawer-id/999999999999999999999999/inbox/attachments/filename.png

Request Body

{
   "records":[
      "999999999999999999999999"
   ],
   "fileName":"1603151536258-image.png",
   "correlationId":"20201231235959",
   "uploadDetail":"",
   "caption":"",
   "uploadTitle":"Johnny McDowell image-20201016-132028",
   "fileType":"document",
   "fileExtension":".png"
}

Response Status Code

201

Response Body

[
   {
      "CopyObjectResult":{
         "ETag":"\"61359d2243457455231de884058aa8cc\"",
         "LastModified":"2020-10-23T18:55:27.000Z"
      }
   }
]

SideDrawer Integration API 1.0

Cloud Storage Navigation

Drives

GET /integrations/cloud-storage/provider/{provider}/drive

Try it here

Gets the Drives for the specific provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive

Response Status Code

200

Response Body

[
  {
    "id": "1111111111",
    "name": "Your team's shared workspace",
    "type": "team_folder"
  }
]

Drive Content

GET /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}

Try it here

Gets the content in the root of the specific Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111

Response Status Code

200

Response Body

[
  {
    "id": "id:adsÑLKADSJñlkadsfÑLASD",
    "name": "Partners Files",
    "type": "folder"
  },
  {
    "id": "id:OIJojJlkOIJOIOJoJoijIJ",
    "name": "Client Files",
    "type": "folder"
  },
  {
    "id": "id:trdÑKmDRoiTRkltrdYTRrd",
    "name": "Example.txt",
    "type": "file"
  }
]

Drive Folder Content

GET /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/folder/folder-id/{folderId}

Try it here

Gets the content from the specific Drive Folder and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

folderId*

[PATH]

string

Folder identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/folder/folder-id/id%3AadsNLKADSJñlkadsfNLASD

Response Status Code

200

Response Body

[
  {
    "id": "id:adsÑLKADSJñlkadsfÑLASD",
    "name": "Partners Files",
    "type": "folder"
  },
  {
    "id": "id:OIJojJlkOIJOIOJoJoijIJ",
    "name": "Client Files",
    "type": "folder"
  },
  {
    "id": "id:trdÑKmDRoiTRkltrdYTRrd",
    "name": "Example.txt",
    "type": "file"
  }
]

Drive Folder to Record Assignment

POST /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/folder/folder-id/{folderId}

Try it here

Assign to a Record the specific Folder from the Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

folderId*

[PATH]

string

Folder identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerId*

string

SideDrawer identifier as parent of the target Record.

recordId*

string

Target Record identifier

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/folder/folder-id/id%3AadsNLKADSJñlkadsfNLASD

Request Body

{
  "sidedrawerId": "999999999999999999999999",
  "recordId": "555555555555555555555555"
}

Response Status Code

201

Response Body

{
  "_id": "123213213132131232131234",
  "record": {
    "editable": true,
    "active": true,
    "_id": "555555555555555555555555",
    "name": "Manager T Test",
    "description": "",
    "uniqueReference": "2020-10-02 17:27:01.365",
    "storageLocation": "",
    "recordSubtypeOther": "Test",
    "updatedAt": "2020-10-02T20:27:11.080Z",
    "status": null,
    "sidedrawer": "999999999999999999999999",
    "recordSubtype": {
      "blockSections": {
        "blockDescription": false,
        "blockFiles": false,
        "blockLinkedRecords": false,
        "blockCollaborators": false,
        "blockSpecificFields": false
      },
      "orderId": 0,
      "_id": "119732649819817476198732",
      "name": "other",
      "logo": "https://imagesource/notes-medical-light.png",
      "displayValue": [
        {
          "_id": "098as98a098da098a098asd9",
          "locale": "en-US",
          "value": "Other"
        },
        {
          "_id": "a9a9a0087009809a70987a09",
          "locale": "en-US",
          "value": "Other"
        }
      ],
      "recordType": "96fa96a96af9a968a97as632",
      "__v": 0
    },
    "recordType": {
      "sidedrawerType": "individual",
      "orderId": 0,
      "_id": "098as98a098da098a098asd9",
      "name": "healthMedical",
      "logo": "https://imagesource/minus-small-regular.png",
      "displayValue": [
        {
          "_id": "96fa96a96af9a968a97as632",
          "locale": "en-US",
          "value": "Health & Medical"
        },
        {
          "_id": "098as98a098da098a098asd9",
          "locale": "en-US",
          "value": "Health & Medical"
        },
        {
          "_id": "96fa96a96af9a968a97as632",
          "locale": "es-US",
          "value": "Salud & Clínica Médica"
        }
      ],
      "__v": 0
    },
    "createdAt": "2020-10-02T20:27:11.080Z",
    "__v": 0
  },
  "__v": 0,
  "cloudStorageFolder": [
    {
      "_id": "098as98a098da098a098asd9",
      "provider": "dropbox",
      "driveId": "1111111111",
      "folderId": "id:adsNLKADSJñlkadsfNLASD"
    }
  ]
}

Drive Folder to Record Unassignment

DELETE /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/folder/folder-id/{folderId}

Try it here

Remove from a Record the specific Folder in the Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

folderId*

[PATH]

string

Folder identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerId*

string

SideDrawer identifier as parent of the target Record.

recordId*

string

Target Record identifier

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/folder/folder-id/id%3AadsNLKADSJñlkadsfNLASD

Request Body

{
  "sidedrawerId": "999999999999999999999999",
  "recordId": "555555555555555555555555"
}

Response Status Code

200

Response Body

{
  "_id": "123213213132131232131234",
  "record": {
    "editable": true,
    "active": true,
    "_id": "555555555555555555555555",
    "name": "Manager T Test",
    "description": "",
    "uniqueReference": "2020-10-02 17:27:01.365",
    "storageLocation": "",
    "recordSubtypeOther": "Test",
    "updatedAt": "2020-10-02T20:27:11.080Z",
    "status": null,
    "sidedrawer": "999999999999999999999999",
    "recordSubtype": {
      "blockSections": {
        "blockDescription": false,
        "blockFiles": false,
        "blockLinkedRecords": false,
        "blockCollaborators": false,
        "blockSpecificFields": false
      },
      "orderId": 0,
      "_id": "119732649819817476198732",
      "name": "other",
      "logo": "https://imagesource/notes-medical-light.png",
      "displayValue": [
        {
          "_id": "098as98a098da098a098asd9",
          "locale": "en-US",
          "value": "Other"
        },
        {
          "_id": "a9a9a0087009809a70987a09",
          "locale": "en-US",
          "value": "Other"
        }
      ],
      "recordType": "96fa96a96af9a968a97as632",
      "__v": 0
    },
    "recordType": {
      "sidedrawerType": "individual",
      "orderId": 0,
      "_id": "098as98a098da098a098asd9",
      "name": "healthMedical",
      "logo": "https://imagesource/minus-small-regular.png",
      "displayValue": [
        {
          "_id": "96fa96a96af9a968a97as632",
          "locale": "en-US",
          "value": "Health & Medical"
        },
        {
          "_id": "098as98a098da098a098asd9",
          "locale": "en-US",
          "value": "Health & Medical"
        },
        {
          "_id": "96fa96a96af9a968a97as632",
          "locale": "es-US",
          "value": "Salud & Clínica Médica"
        }
      ],
      "__v": 0
    },
    "createdAt": "2020-10-02T20:27:11.080Z",
    "__v": 0
  },
  "__v": 0,
  "cloudStorageFolder": [
    {
      "_id": "098as98a098da098a098asd9",
      "provider": "dropbox",
      "driveId": "1111111111",
      "folderId": "id:adsNLKADSJñlkadsfNLASD"
    }
  ]
}

Drive File Download

GET /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/file/file-id/{fileId}

Try it here

Allows to download the specific File from the Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

fileId*

[PATH]

string

File identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/file/file-id/id%3AadsNLKADSJñlkadsfNLASD

Response Status Code

200

Response Body

Download file URL

Drive File to Record Assignment

POST /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/file/file-id/{fileId}

Try it here

Assign to a Record the specific File from the Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

fileId*

[PATH]

string

File identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerId*

string

SideDrawer identifier as parent of the target Record.

recordId*

string

Target Record identifier

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/file/file-id/id%3AadsNLKADSJñlkadsfNLASD

Request Body

{
  "sidedrawerId": "999999999999999999999999",
  "recordId": "555555555555555555555555"
}

Response Status Code

201

Response Body

{
  "cloaudStorage": true,
  "active": true,
  "uploader": "auth0|13298412309487104328798e",
  "sidedrawer": "999999999999999999999999",
  "fileName": "andromeda_1024x768.jpg",
  "fileType": "cloud",
  "fileUrl": "/SideDrawerApiVersion/integrations/cloud-storage/provider/dropbox/drive/drive-id/1111111111/file/file-id/id%3AadsNLKADSJñlkadsfNLASD",
  "correlationId": "9999999999999",
  "createdAt": "2020-10-23T19:43:56.335Z",
  "updatedAt": "2020-10-23T19:43:56.335Z",
  "id": "222222222222222222222222"
}

Drive File to Record Unassignment

DELETE /integrations/cloud-storage/provider/{provider}/drive/drive-id/{driveId}/file/file-id/{fileId}

Try it here

Remove from a Record the specific File in the Drive and Provider defined as request parameters.

Parameter

Param Type

Data Type

Notes

provider*

[PATH]

string

Provider identifier.

Possible Values: [onedrive, gdrive, dropbox]

driveId*

[PATH]

string

Drive identifier.

folderId*

[PATH]

string

Folder identifier.

tenantId*

[QUERY]

string

Tenant identifier linked to the provider.

sidedrawerId*

[QUERY]

string

SideDrawer identifier.

Request Body

Attribute

Data Type

Notes

sidedrawerId*

string

SideDrawer identifier as parent of the target Record.

recordId*

string

Target Record identifier

Example:

Request URL

https://INTEGRATION-SideDrawerApiVersion/integrations/cloud-storage/provider/dopbox/drive/drive-id/1111111111/file/file-id/id%3AadsNLKADSJñlkadsfNLASD

Request Body

{
  "sidedrawerId": "999999999999999999999999",
  "recordId": "555555555555555555555555"
}

Response Status Code

201

Response Body

{
  "cloaudStorage": true,
  "active": false,
  "uploader": "auth0|13298412309487104328798e",
  "sidedrawer": "999999999999999999999999",
  "fileName": "andromeda_1024x768.jpg",
  "fileType": "cloud",
  "fileUrl": "/SideDrawerApiVersion/integrations/cloud-storage/provider/dropbox/drive/drive-id/1111111111/file/file-id/id%3AadsNLKADSJñlkadsfNLASD",
  "correlationId": "9999999999999",
  "createdAt": "2020-10-23T19:43:56.335Z",
  "updatedAt": "2020-10-23T19:43:56.335Z",
  "id": "222222222222222222222222"
}

Apendix

General Errors

SideDrawer uses the following conventional HTTP response codes to indicate the result of an API request.

  • Codes in the 4xx range indicate an error that failed given the information provided. These are handled programmatically with a briefly explanation of the error occurred.

  • Codes in the 5xx range indicate servers errors.

HTTP Status Code

Meaning

Possible Causes

400

Bad Request

Malformed request due a misspelled parameter in the query string, it was used a parameter that isn't valid for that endpoint, or forgot a required data attribute in the request body.

403

Forbidden

Invalid API key due the logged user has not rights or the resource was deleted.

404

Not Found

You may have misspelled the resource or the endpoint path in the request URL.

409

Handled Exception

The request did not pass the required validations.

500

Internal Server Error

We had a problem with our server. Please try again later and let us know if the problem persists.

 

Work with us

Do YOU want to get involved with SideDrawer?
Contact us and get started with SideDrawer TODAY!