Users

Note

This help should be accurate and comprehensive. If you see anything missing or that needs to be fixed, see How to Contribute or let us know in the Juice Slack #documentation channel.

The Users endpoints provide a way to view user details, as well, as update, deactivate and control user access to applications.

Get a List of Users

GET /api/v1/jb/users/

Get a list of Users

Example Request:

GET /api/v1/jb/users/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
  {
    "extra": { },
    "last_login": "2016-06-01T13:34:30.718746Z",
    "email": "user@juice.com",
    "handle": "@user",
    "first_name": "User",
    "last_name": "User",
    "is_active": true,
    "date_joined": "2013-07-28T21:04:32Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/o.png",
    "last_activated": "2016-06-01T13:22:24.439209Z",
    "last_deactivated": null,
    "apps": [
      "zylTKNVx"
    ],
    "clientadmin_of": []
  }
]
Response JSON Object:
 
  • extra (int) – extra data associated with the user for use in your apps
  • email (string) – the user’s email address
  • handle (string) – the user’s discussion handle
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_active (boolean) – the active status of the user
  • is_demo_user (boolean) – the demo status of the user
  • profile_color (string) – hex color code of the user’s profile
  • profile_avatar (string) – the user’s selected avatar
  • apps (array) – A list of app ids to which the user has access
  • clientadmin_of (array) – A list of client ids to which the user is an admin
  • last_login (date) – the last date the user logged into the system
  • date_joined (date) – the date the user was created
  • last_activated (date) – the date the user was last activated
  • last_deactivated (date) – the date the user was last deactivated
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Get a List of Users for an app

GET /api/v1/jb/users/?app={slug}

Get a list of Users for an app

Example Request:

GET /api/v1/jb/users/?app=jb3demo
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
  {
    "extra": { },
    "last_login": "2016-06-01T13:34:30.718746Z",
    "email": "user@juice.com",
    "handle": "@user",
    "first_name": "User",
    "last_name": "User",
    "is_active": true,
    "date_joined": "2013-07-28T21:04:32Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/o.png",
    "last_activated": "2016-06-01T13:22:24.439209Z",
    "last_deactivated": null,
    "apps": [
      "zylTKNVx"
    ],
    "clientadmin_of": []
  }
]
Response JSON Object:
 
  • extra (int) – extra data associated with the user for use in your apps
  • email (string) – the user’s email address
  • handle (string) – the user’s discussion handle
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_active (boolean) – the active status of the user
  • is_demo_user (boolean) – the demo status of the user
  • profile_color (string) – hex color code of the user’s profile
  • profile_avatar (string) – the user’s selected avatar
  • apps (array) – A list of app ids to which the user has access
  • clientadmin_of (array) – A list of client ids to which the user is an admin
  • last_login (date) – the last date the user logged into the system
  • date_joined (date) – the date the user was created
  • last_activated (date) – the date the user was last activated
  • last_deactivated (date) – the date the user was last deactivated
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Get a User’s Details

GET /api/v1/jb/users/(string: email)/

Get a User’s Details

Example Request:

GET /api/v1/jb/users/user@juice.com/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "extra": { },
  "last_login": "2016-06-01T13:34:30.718746Z",
  "email": "user@juice.com",
  "handle": "@user",
  "first_name": "User",
  "last_name": "User",
  "is_active": true,
  "date_joined": "2013-07-28T21:04:32Z",
  "is_demo_user": false,
  "profile_color": "ff0000",
  "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/o.png",
  "last_activated": "2016-06-01T13:22:24.439209Z",
  "last_deactivated": null,
  "apps": [
    "zylTKNVx"
  ],
  "clientadmin_of": []
}
Parameters:
  • email (string) – The user’s email address
Response JSON Object:
 
  • extra (int) – extra data associated with the user for use in your apps
  • email (string) – the user’s email address
  • handle (string) – the user’s discussion handle
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_active (boolean) – the active status of the user
  • is_demo_user (boolean) – the demo status of the user
  • profile_color (string) – hex color code of the user’s profile
  • profile_avatar (string) – the user’s selected avatar
  • apps (array) – A list of app ids to which the user has access
  • clientadmin_of (array) – A list of client ids to which the user is an admin
  • last_login (date) – the last date the user logged into the system
  • date_joined (date) – the date the user was created
  • last_activated (date) – the date the user was last activated
  • last_deactivated (date) – the date the user was last deactivated
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Updating a User’s Details

PATCH /api/v1/jb/users/(string: email)/

It’s possible to update a user’s first name, last name, active status, demo status, extra data, and assigned applications. Client admins cannot be updated via the API.

Example Request:

PATCH /api/v1/jb/users/user@juice.com/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

{
  "apps": [
    "zylTKNVx"
  ]
}

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "extra": { },
  "last_login": "2016-06-01T13:34:30.718746Z",
  "email": "user@juice.com",
  "handle": "@user",
  "first_name": "User",
  "last_name": "User",
  "is_active": true,
  "date_joined": "2013-07-28T21:04:32Z",
  "is_demo_user": false,
  "profile_color": "ff0000",
  "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/o.png",
  "last_activated": "2016-06-01T13:22:24.439209Z",
  "last_deactivated": null,
  "apps": [
    "zylTKNVx"
  ],
  "clientadmin_of": []
}
Parameters:
  • email (string) – The user’s email address
Request JSON Object:
 
  • extra (object) – extra data associated with the user for use in your apps (optional)
  • first_name (string) – the user’s first name (optional)
  • last_name (string) – the user’s last name (optional)
  • is_active (boolean) – the active status of the user (optional)
  • is_demo_user (boolean) – the demo status of the user (optional)
  • apps (array) – A list of app ids to which the user has access (optional)
Response JSON Object:
 
  • extra (object) – extra data associated with the user for use in your apps
  • email (string) – the user’s email address
  • handle (string) – the user’s discussion handle
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_active (boolean) – the active status of the user
  • is_demo_user (boolean) – the demo status of the user
  • profile_color (string) – hex color code of the user’s profile
  • profile_avatar (string) – the user’s selected avatar
  • apps (array) – A list of app ids to which the user has access
  • clientadmin_of (array) – A list of client ids to which the user is an admin
  • last_login (date) – the last date the user logged into the system
  • date_joined (date) – the date the user was created
  • last_activated (date) – the date the user was last activated
  • last_deactivated (date) – the date the user was last deactivated
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Creating a User

POST /api/v1/jb/users/

Create a user.

Example Request:

POST /api/v1/jb/users/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

{
  "email": "new_user@juiceanalytics.com",
  "extra": {},
  "first_name": "Jane",
  "last_name": "Doe",
  "is_demo_user": false,
  "apps": ["abcdefgh"]
}

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "extra": { },
  "last_login": "2016-06-01T13:34:30.718746Z",
  "email": "new_user@juiceanalytics.com",
  "handle": "@new_user",
  "first_name": "Jane",
  "last_name": "Doe",
  "is_active": true,
  "date_joined": "2013-07-28T21:04:32Z",
  "is_demo_user": false,
  "profile_color": "ff0000",
  "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/o.png",
  "last_activated": "2016-06-01T13:22:24.439209Z",
  "last_deactivated": null,
  "apps": ["abcdefgh"],
  "clientadmin_of": []
}
Request JSON Object:
 
  • email (string) – the user’s email address
  • extra (object) – extra data associated with the user for use in your apps
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_demo_user (booleean) – should the user be shown anonymized data for the app if such data exists.
  • apps (array) – A list of app IDs that the user is allowed to see
Response JSON Object:
 
  • extra (object) – extra data associated with the user for use in your apps
  • email (string) – the user’s email address
  • handle (string) – the user’s discussion handle
  • first_name (string) – the user’s first name
  • last_name (string) – the user’s last name
  • is_active (boolean) – the active status of the user
  • is_demo_user (boolean) – the demo status of the user
  • profile_color (string) – hex color code of the user’s profile
  • profile_avatar (string) – the user’s selected avatar
  • apps (array) – A list of app ids to which the user has access
  • clientadmin_of (array) – A list of client ids to which the user is an admin
  • last_login (date) – the last date the user logged into the system
  • date_joined (date) – the date the user was created
  • last_activated (date) – the date the user was last activated
  • last_deactivated (date) – the date the user was last deactivated
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Deactivating a User

DELETE /api/v1/jb/users/(string: email)/

Deactivate a User by email

Example Request:

DELETE /api/v1/jb/users/user@juice.com/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

HTTP/1.1 204 NO CONTENT
Vary: Accept, Cookie
Parameters:
  • email (string) – The user’s email address

Get a List of Users You’ve Invited

GET /api/v1/jb/users/invitations/

Get a list of pending invited users

Example Request:

GET /api/v1/jb/users/invitations/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

 HTTP/1.1 200 OK
 Vary: Accept
 Content-Type: text/javascript

[
   {
     "id": 3,
     "user": {
       "extra": {},
       "last_login": null,
       "email": "jason@juice.com",
       "handle": "@jason",
       "first_name": "",
       "last_name": "",
       "is_active": true,
       "date_joined": "2016-06-01T18:13:17.943920Z",
       "is_demo_user": false,
       "profile_color": "ff0000",
       "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
       "last_activated": "2016-06-01T18:13:17.943951Z",
       "last_deactivated": null,
       "apps": []
     },
     "initial_apps": [],
     "extra": {},
     "email": "invited_user@juiceanalytics.com",
     "key": "0626d808767dc0abc76a4266ad2df687b3008156",
     "date_invited": "2016-06-01T18:24:04.358609Z",
     "invitation_email_count": 1
   },
 ]
Response JSON Object:
 
  • id (int) – the id of the invite
  • user (object) – the user who performed the invite
  • extra (int) – extra data associated with the user for use in your apps
  • email (string) – the invited user’s email address
  • key (string) – a unique key to identify the invited user
  • initial_apps (array) – A list of app ids to which the user has been invited
  • date_invited (date) – the date the user invited to join the system
  • invitation_email_count (int) – a counter to show how many times the user has been sent an invite
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Get a List of Users You’ve Invited for an app

GET /api/v1/jb/users/invitations/?app={slug}

Get a list of pending invited users for an app

Example Request:

GET /api/v1/jb/users/invitations/?app=jb3demo
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

Example Response:

 HTTP/1.1 200 OK
 Vary: Accept
 Content-Type: text/javascript

[
   {
     "id": 3,
     "user": {
       "extra": {},
       "last_login": null,
       "email": "jason@juice.com",
       "handle": "@jason",
       "first_name": "",
       "last_name": "",
       "is_active": true,
       "date_joined": "2016-06-01T18:13:17.943920Z",
       "is_demo_user": false,
       "profile_color": "ff0000",
       "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
       "last_activated": "2016-06-01T18:13:17.943951Z",
       "last_deactivated": null,
       "apps": []
     },
     "initial_apps": [],
     "extra": {},
     "email": "invited_user@juiceanalytics.com",
     "key": "0626d808767dc0abc76a4266ad2df687b3008156",
     "date_invited": "2016-06-01T18:24:04.358609Z",
     "invitation_email_count": 1
   },
 ]
Response JSON Object:
 
  • id (int) – the id of the invite
  • user (object) – the user who performed the invite
  • extra (int) – extra data associated with the user for use in your apps
  • email (string) – the invited user’s email address
  • key (string) – a unique key to identify the invited user
  • initial_apps (array) – A list of app ids to which the user has been invited
  • date_invited (date) – the date the user invited to join the system
  • invitation_email_count (int) – a counter to show how many times the user has been sent an invite
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Invite a User

POST /api/v1/jb/users/invitations/

Invite a User

Example Request:

POST /api/v1/jb/users/invitations/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

{
  "email": "new_user@juiceanalytics.com",
  "client": 1,
  "extra": {},
  "initial_apps": [
    "zylTKNVx",
  ],
  "is_demo_user": "true"
}

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "id": 4,
  "user": {
    "extra": {},
    "last_login": null,
    "email": "jason@juice.com",
    "handle": "@jason",
    "first_name": "",
    "last_name": "",
    "is_active": true,
    "date_joined": "2016-06-01T18:13:17.943920Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
    "last_activated": "2016-06-01T18:13:17.943951Z",
    "last_deactivated": null,
    "apps": []
  },
  "initial_apps": ["zylTKNVx",],
  "extra": {},
  "email": "new_user@juiceanalytics.com",
  "key": "0626d808767dc0abc76a4266ad2df687b3008156",
  "date_invited": "2016-06-01T18:24:04.358609Z",
  "invitation_email_count": 1,
  "is_demo_user": "true"
},
Request JSON Object:
 
  • email (string) – the invited user’s email address
  • client (int) – the client to assign the invited user to
  • extra (object) – extra data associated with the user for use in your apps
  • initial_apps (array) – A list of app IDs to add to the invited user
  • is_demo_user (string) – Set the invitee to be a demo_user
Response JSON Object:
 
  • user (object) – the user who performed the invite
  • extra (object) – extra data associated with the user for use in your apps
  • email (string) – the invited user’s email address
  • key (string) – a unique key to identify the invited user
  • initial_apps (array) – A list of app details to which the user has been invited
  • date_invited (date) – the date the user invited to join the system
  • invitation_email_count (int) – a counter to show how many times the user has been sent an invite
  • is_demo_user (string) – Will the invitee be a demo_user
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Invite a list of Users

POST /api/v1/jb/users/invitations/

Invite a list of Users

Example Request:

POST /api/v1/jb/users/invitations/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

[{
  "email": "new_user@juiceanalytics.com",
  "client": 1,
  "extra": {},
  "initial_apps": [
    "zylTKNVx",
  ],
  "is_demo_user": "true"
},
{
  "email": "new_user2@juiceanalytics.com",
  "client": 1,
  "extra": {},
  "initial_apps": [
    "hsYD763",
  ],
  "is_demo_user": "true"
},
{
  "email": "new_user3@juiceanalytics.com",
  "client": 1,
  "extra": {},
  "initial_apps": [
    "sMfh63S",
  ],
  "is_demo_user": "true"
}]

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[{
  "id": 4,
  "user": {
    "extra": {},
    "last_login": null,
    "email": "jason@juice.com",
    "handle": "@jason",
    "first_name": "",
    "last_name": "",
    "is_active": true,
    "date_joined": "2016-06-01T18:13:17.943920Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
    "last_activated": "2016-06-01T18:13:17.943951Z",
    "last_deactivated": null,
    "apps": []
  },
  "initial_apps": ["zylTKNVx",],
  "extra": {},
  "email": "new_user@juiceanalytics.com",
  "key": "0626d808767dc0abc76a4266ad2df687b3008156",
  "date_invited": "2016-06-01T18:24:04.358609Z",
  "invitation_email_count": 1,
  "is_demo_user": "true"
},
{
  "id": 4,
  "user": {
    "extra": {},
    "last_login": null,
    "email": "jason@juice.com",
    "handle": "@jason",
    "first_name": "",
    "last_name": "",
    "is_active": true,
    "date_joined": "2016-06-01T18:13:17.943920Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
    "last_activated": "2016-06-01T18:13:17.943951Z",
    "last_deactivated": null,
    "apps": []
  },
  "initial_apps": ["hsYD763",],
  "extra": {},
  "email": "new_user2@juiceanalytics.com",
  "key": "0626fd8fds78f87dsa4266adfdsfsdfsd7b3008156",
  "date_invited": "2016-06-01T18:24:04.358609Z",
  "invitation_email_count": 1,
  "is_demo_user": "true"
},
{
  "id": 4,
  "user": {
    "extra": {},
    "last_login": null,
    "email": "jason@juice.com",
    "handle": "@jason",
    "first_name": "",
    "last_name": "",
    "is_active": true,
    "date_joined": "2016-06-01T18:13:17.943920Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
    "last_activated": "2016-06-01T18:13:17.943951Z",
    "last_deactivated": null,
    "apps": []
  },
  "initial_apps": ["sMfh63S",],
  "extra": {},
  "email": "new_user3@juiceanalytics.com",
  "key": "0626d88sjdgwte63HDFS7266ad2df687b3008156",
  "date_invited": "2016-06-01T18:24:04.358609Z",
  "invitation_email_count": 1,
  "is_demo_user": "true"
}]
Request JSON Object:
 
  • email (string) – the invited user’s email address
  • client (int) – the client to assign the invited user to
  • extra (object) – extra data associated with the user for use in your apps
  • initial_apps (array) – A list of app IDs to add to the invited user
  • is_demo_user (string) – Set the invitee to be a demo_user
Response JSON Object:
 
  • user (object) – the user who performed the invite
  • extra (object) – extra data associated with the user for use in your apps
  • email (string) – the invited user’s email address
  • key (string) – a unique key to identify the invited user
  • initial_apps (array) – A list of app details to which the user has been invited
  • date_invited (date) – the date the user invited to join the system
  • invitation_email_count (int) – a counter to show how many times the user has been sent an invite
  • is_demo_user (string) – Will the invitee be a demo_user
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

Change an invited user’s initial apps

PATCH /api/v1/jb/users/invitations/new_user@juiceanalytics.com/

Change an invited user’s initial apps

Example Request:

PATCH /api/v1/jb/users/invitations/new_user@juiceanalytics.com/
Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

{
  "initial_apps": [
    "KNVxzylT"
  ]
}

Example Response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "id": 4,
  "user": {
    "extra": {},
    "last_login": null,
    "email": "jason@juice.com",
    "handle": "@jason",
    "first_name": "",
    "last_name": "",
    "is_active": true,
    "date_joined": "2016-06-01T18:13:17.943920Z",
    "is_demo_user": false,
    "profile_color": "ff0000",
    "profile_avatar": "https://fruition-snapshots.s3.amazonaws.com/avatars/profile-defaults/default.png",
    "last_activated": "2016-06-01T18:13:17.943951Z",
    "last_deactivated": null,
    "apps": []
  },
  "initial_apps": ["KNVxzylT"],
  "extra": {},
  "email": "new_user@juiceanalytics.com",
  "key": "0626d808767dc0abc76a4266ad2df687b3008156",
  "date_invited": "2016-06-01T18:24:04.358609Z",
  "invitation_email_count": 1
},
Request JSON Object:
 
  • extra (object) – extra data associated with the user for use in your apps
  • initial_apps (array) – A list of app IDs to add to the invited user
Response JSON Object:
 
  • user (object) – the user who performed the invite
  • extra (object) – extra data associated with the user for use in your apps
  • email (string) – the invited user’s email address
  • key (string) – a unique key to identify the invited user
  • initial_apps (array) – A list of app details to which the user has been invited
  • date_invited (date) – the date the user invited to join the system
  • invitation_email_count (int) – a counter to show how many times the user has been sent an invite
Request Headers:
 
  • Accept – the response content type depends on Accept header
  • Authorization – contains the token to be used for authentication
Response Headers:
 
Status Codes:

View a users usage for an app

GET /api/v1/jb/users/{email}/usage/{app_id}/

View a users usage for an app

Example Request:

GET /api/v1/jb/users/user@juiceanalytics.com/usage/9f01c600/

Accept: application/json
Authorization: Token 7297b3ebb0e7f7baf5f54d39908dda99f5ea8665

{}

Example Response:

  HTTP/1.1 200 OK
  Vary: Accept
  Content-Type: text/javascript

  {
    "action_description": "Viewed Dashboard stack for TDOE ePlan",
    "email": "user@juiceanalytics.com",
    "full_name": "Christian Oliver",
    "timestamp": "2018-07-24T18:29:48.111374Z",
    "action": "STACK_ACCESS",
    "extra": {
        "app": "TDOE ePlan",
        "request": {
            "path": "/tdoe_eplan/dashboard",
            "session": "ylxgp8feaxc5vyor65ab5cs26zz8fsxx",
            "META": {
                "HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
                "SERVER_NAME": "31ca45546fe6",
                "HTTP_REFERER": "http://localhost:8000/",
                "REMOTE_ADDR": "172.20.0.1",
                "CONTENT_TYPE": "text/plain",
                "REQUEST_METHOD": "GET",
                "HTTP_HOST": "localhost:8000",
                "SERVER_PORT": "8000",
                "QUERY_STRING": "",
                "HTTP_ACCEPT_ENCODING": "gzip, deflate, br"
            }
        },
        "stack": "Dashboard",
        "app_id": "9f01c600"
    }
}