Skip to main content
GET
/
shared-user
/
{shared-user-id}
/
Get User Details
curl --request GET \
  --url https://management.scanova.io/shared-user/{shared-user-id}/ \
  --header 'Authorization: <api-key>'
{
  "id": 479,
  "shared_user": {
    "id": 1452,
    "first_name": "Jon",
    "last_name": "Doe",
    "full_name": "Jon Doe",
    "email": "jon.doe@scanova.io",
    "is_shared": true,
    "date_joined": "2023-09-11T16:28:22.113793+05:30",
    "is_social_signup": false,
    "is_sso_login": false,
    "has_usable_password": true,
    "language": "en",
    "last_login": null,
    "first_login": false,
    "enforce_mfa": false,
    "mfa_enabled": false,
    "mfa_status": "Disabled"
  },
  "access_level": {
    "id": 1,
    "name": "Manager",
    "permissions": [
      {
        "id": 22,
        "code": "QR_CODE_CAN_ADD",
        "name": "Can Add QR Code",
        "description": "Can add QR Code",
        "is_boolean": true
      }
    ],
    "is_custom": false
  },
  "invitation_sent_on": "2023-09-11T16:28:22.227002+05:30",
  "invitation_accepted_on": null,
  "is_invitation_sent": true,
  "is_invitation_accepted": false,
  "created": "2023-09-11T16:28:22.223671+05:30",
  "modified": "2023-09-11T16:28:22.227109+05:30",
  "tags": [
    {
      "id": 2950,
      "name": "SOCIAL ALL FIELDS"
    }
  ]
}

Overview

Retrieves detailed information about a specific user in your account, including their role, permissions, invitation status, and activity details.

Purpose

User Information

  • Detailed User Data: Get comprehensive user information
  • Role and Permissions: View user’s access level and permissions
  • Invitation Status: Check invitation and acceptance status
  • Activity Tracking: Monitor user activity and engagement

User Management

  • User Profile: View complete user profile
  • Permission Review: Review user’s specific permissions
  • Status Monitoring: Track user invitation and acceptance
  • Access Control: Understand user’s access level

Path Parameters

ParameterTypeRequiredDescriptionExample
shared-user-idintegerYesID of the shared user479

Response Structure

The response returns a complete user object with detailed information:
FieldTypeDescription
idintegerShared user relationship ID
shared_userobjectUser details (name, email, activity)
access_levelobjectUser’s role and permissions
invitation_sent_onstring/nullWhen invitation was sent
invitation_accepted_onstring/nullWhen invitation was accepted
is_invitation_sentbooleanWhether invitation has been sent
is_invitation_acceptedbooleanWhether invitation has been accepted
createdstringWhen user was added to account
modifiedstringWhen user was last modified
tagsarrayTags assigned to the user

Examples

Get User Details

curl -X GET "https://management.scanova.io/shared-user/479/" \
  -H "Authorization: YOUR_API_KEY"

Response Example

{
  "id": 479,
  "shared_user": {
    "id": 1452,
    "first_name": "Jon Doe",
    "last_name": "",
    "full_name": "Jon Doe",
    "email": "jon.doe@scanova.io",
    "is_shared": true,
    "date_joined": "2023-09-11T16:28:22.113793+05:30",
    "is_social_signup": false,
    "is_sso_login": false,
    "has_usable_password": true,
    "language": "en",
    "last_login": null,
    "first_login": false,
    "enforce_mfa": false,
    "mfa_enabled": false,
    "mfa_status": "Disabled"
  },
  "access_level": {
    "id": 1,
    "name": "Manager",
    "permissions": [
      {
        "id": 22,
        "code": "QR_CODE_CAN_ADD",
        "name": "Can Add QR Code",
        "description": "Can add QR Code",
        "is_boolean": true
      },
      {
        "id": 23,
        "code": "QR_CODE_CAN_VIEW",
        "name": "Can view QR Code",
        "description": "Can view QR Code",
        "is_boolean": true
      },
      {
        "id": 24,
        "code": "QR_CODE_CAN_EDIT",
        "name": "Can edit QR Code",
        "description": "Can edit QR Code",
        "is_boolean": true
      },
      {
        "id": 26,
        "code": "QR_CODE_CAN_DOWNLOAD",
        "name": "Can download QR code",
        "description": "Can download QR Code",
        "is_boolean": true
      },
      {
        "id": 1,
        "code": "ANALYTICS_CAN_VIEW",
        "name": "Analytics Can View",
        "description": "Can view analytics",
        "is_boolean": true
      }
    ],
    "is_custom": false
  },
  "invitation_sent_on": "2023-09-11T16:28:22.227002+05:30",
  "invitation_accepted_on": null,
  "is_invitation_sent": true,
  "is_invitation_accepted": false,
  "created": "2023-09-11T16:28:22.223671+05:30",
  "modified": "2023-09-11T16:28:22.227109+05:30",
  "tags": []
}

User Information Fields

Basic Information

  • first_name: User’s first name
  • last_name: User’s last name
  • full_name: User’s complete name
  • email: User’s email address
  • language: User’s preferred language

Account Status

  • is_shared: Whether this is a shared user (true) or account owner (false)
  • date_joined: When the user joined
  • last_login: User’s last login time (null if never logged in)
  • first_login: Whether this is the user’s first login

Security Information

  • has_usable_password: Whether user has a usable password
  • enforce_mfa: Whether MFA is enforced for this user
  • mfa_enabled: Whether MFA is enabled for this user
  • mfa_status: Current MFA status

Authentication Methods

  • is_social_signup: Whether user signed up via social login
  • is_sso_login: Whether user uses SSO login

Integration Examples

JavaScript - User Profile Display

async function getUserDetails(userId) {
  try {
    const response = await fetch(`https://management.scanova.io/shared-user/${userId}/`, {
      method: 'GET',
      headers: {
        'Authorization': 'YOUR_API_KEY'
      }
    });
    
    if (response.ok) {
      const user = await response.json();
      
      // Display user information
      document.getElementById('userName').textContent = user.shared_user.full_name;
      document.getElementById('userEmail').textContent = user.shared_user.email;
      document.getElementById('userRole').textContent = user.access_level.name;
      document.getElementById('userStatus').textContent = user.is_invitation_accepted ? 'Active' : 'Pending';
      document.getElementById('lastLogin').textContent = user.shared_user.last_login ? 
        new Date(user.shared_user.last_login).toLocaleString() : 'Never';
      
      // Display permissions
      const permissionsList = document.getElementById('permissionsList');
      user.access_level.permissions.forEach(permission => {
        const li = document.createElement('li');
        li.textContent = permission.name;
        permissionsList.appendChild(li);
      });
      
      return user;
    } else {
      throw new Error('Failed to fetch user details');
    }
  } catch (error) {
    console.error('Error fetching user details:', error);
    return null;
  }
}

// Usage
getUserDetails(479);

Python - User Information Retrieval

import requests
from datetime import datetime

def get_user_details(user_id):
    url = f"https://management.scanova.io/shared-user/{user_id}/"
    headers = {"Authorization": "YOUR_API_KEY"}
    
    try:
        response = requests.get(url, headers=headers)
        response.raise_for_status()
        
        user = response.json()
        user_info = user['shared_user']
        access_level = user['access_level']
        
        print(f"User Details for {user_info['full_name']}")
        print("=" * 50)
        print(f"Email: {user_info['email']}")
        print(f"Role: {access_level['name']}")
        print(f"Status: {'Active' if user['is_invitation_accepted'] else 'Pending'}")
        print(f"Date Joined: {user_info['date_joined']}")
        print(f"Last Login: {user_info['last_login'] or 'Never'}")
        print(f"MFA Status: {user_info['mfa_status']}")
        print(f"Language: {user_info['language']}")
        
        print("\nPermissions:")
        for permission in access_level['permissions']:
            print(f"  - {permission['name']}: {permission['description']}")
        
        return user
        
    except requests.exceptions.RequestException as e:
        print(f"Error fetching user details: {e}")
        return None

# Usage
user_details = get_user_details(479)

PHP - User Profile Page

<?php
function getUserDetails($userId) {
    $url = "https://management.scanova.io/shared-user/{$userId}/";
    $headers = [
        "Authorization: YOUR_API_KEY"
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    if ($httpCode === 200) {
        $user = json_decode($response, true);
        $userInfo = $user['shared_user'];
        $accessLevel = $user['access_level'];
        
        echo "<h2>User Profile: {$userInfo['full_name']}</h2>";
        echo "<table border='1'>";
        echo "<tr><th>Field</th><th>Value</th></tr>";
        echo "<tr><td>Email</td><td>{$userInfo['email']}</td></tr>";
        echo "<tr><td>Role</td><td>{$accessLevel['name']}</td></tr>";
        echo "<tr><td>Status</td><td>" . ($user['is_invitation_accepted'] ? 'Active' : 'Pending') . "</td></tr>";
        echo "<tr><td>Date Joined</td><td>{$userInfo['date_joined']}</td></tr>";
        echo "<tr><td>Last Login</td><td>" . ($userInfo['last_login'] ?: 'Never') . "</td></tr>";
        echo "<tr><td>MFA Status</td><td>{$userInfo['mfa_status']}</td></tr>";
        echo "<tr><td>Language</td><td>{$userInfo['language']}</td></tr>";
        echo "</table>";
        
        echo "<h3>Permissions</h3>";
        echo "<ul>";
        foreach ($accessLevel['permissions'] as $permission) {
            echo "<li>{$permission['name']}: {$permission['description']}</li>";
        }
        echo "</ul>";
        
        return $user;
    } else {
        echo "Error fetching user details";
        return null;
    }
}

// Usage
$userId = $_GET['user_id'] ?? 479;
$userDetails = getUserDetails($userId);
?>

Use Cases

User Profile Management

  • User Details: Display comprehensive user information
  • Permission Review: Review user’s specific permissions
  • Status Monitoring: Track user invitation and acceptance
  • Activity Tracking: Monitor user login activity

Administrative Tools

  • User Audit: Review individual user access and activity
  • Permission Management: Understand user’s specific permissions
  • Access Control: Verify user access levels
  • User Support: Help users with account issues

API Integration

  • User Synchronization: Sync user data with external systems
  • Access Control: Implement role-based access control
  • User Analytics: Analyze individual user activity
  • Automated Management: Automate user management tasks
This endpoint provides detailed information about a specific user. Use this to get comprehensive user data including permissions, activity, and status information.
The user ID in the URL is the shared user relationship ID, not the user’s account ID. You can get this ID from the user list endpoint.

Authorizations

Authorization
string
header
required

API key authentication. Enter your API key directly in the Authorization header.

Path Parameters

shared-user-id
integer
required

ID of the shared user

Response

User details retrieved successfully

id
integer

Shared user relationship ID

Example:

479

shared_user
object
access_level
object
invitation_sent_on
string<date-time> | null

When the invitation was sent

Example:

"2023-09-11T16:28:22.227002+05:30"

invitation_accepted_on
string<date-time> | null

When the invitation was accepted

Example:

null

is_invitation_sent
boolean

Whether invitation has been sent

Example:

true

is_invitation_accepted
boolean

Whether invitation has been accepted

Example:

false

created
string<date-time>

When the user was added

Example:

"2023-09-11T16:28:22.223671+05:30"

modified
string<date-time>

When the user was last modified

Example:

"2023-09-11T16:28:22.227109+05:30"

tags
object[]

Tags assigned to the user