Skip to main content
Return the full profile of a single user in your company. Beyond identity (name, email, role, currencies, status), the result joins in the user’s integrations (with the connector’s human name), managers, group attributions, compensation-plan attributions and custom user attributes. Membership windows (manager / group / plan) are YYYY-MM month strings; a null end / departure date means the assignment is still ongoing. Each attribute is rendered human-readable — amounts carry their currency, dates are YYYY-MM-DD, picklists render as labels and user references as {id, email, name} objects rather than raw ids — and an unset attribute surfaces as null. Each attribute here is this user’s value. For the schema behind them — each attribute’s type, whether it is synced from a source system, and the labels a picklist accepts — call list_user_attributes. shared_resources is the half of “why can this user see X” that their role does not carry: views, reports and dashboards shared with them individually. A user whose role denies a whole category can still reach specific resources this way, so read it alongside get_role on their role id rather than concluding from the permissions alone. The rows follow the same shape get_role returns for a role’s shares. Sharing is a live-environment concept, so those are the live ones. Reading someone else’s shares is administrative information: rows for a source you are not allowed to read the sharing of are dropped, and a caller with no such permission on any source gets an empty list. Calling get_user on yourself always returns your own shares in full.

Parameters

Body

string
required
Id of the user to look up — the id list_users returns. An exact email is accepted too.

Response

Body

string
string
Deep link to open this user in the Qobra web app.
string
string
string
User lifecycle state: pending (invited, not logged in yet), active, inactive (deactivated), archived (has left the company; hidden by default in list_users). One of: inactive, pending, active, archived.
object
The user’s permission role — what decides what they may see and do, not their status. Pass its id to get_role to read the permissions behind it.
string
Currency the user is actually paid in. One of: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RMB, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYI, UYU, UZS, VEF, VND, VUV, WON, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, XSU, YER, ZAR, ZMK, ZWL.
string
Currency the user’s commissions are computed in. One of: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RMB, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYI, UYU, UZS, VEF, VND, VUV, WON, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, XSU, YER, ZAR, ZMK, ZWL.
boolean
Whether the user holds a paid Qobra license (a seat). Only licensed users have their compensations calculated and a statement to view — an unlicensed user’s statement is never computed, which is the usual reason someone ‘can’t see X’s statement’. A newly-arrived user typically needs a license added; a departed user who no longer appears in the data is a candidate for archiving to free their seat.
boolean
True when the user is NOT licensed yet has compensations that would otherwise be calculated — the statement can’t be computed for lack of a seat. This is what raises the red warning banner at the top of a statement; resolve it by assigning the user a license.
object[]
The user’s links to the company’s connected integrations (HRIS, CRM…), one entry per integration they are matched in. An empty list means the user is matched in none — which is what ‘this user is missing from the <integration> sync’ looks like. Use list_users to answer sync-coverage questions over the whole company in one call; never call get_user per user.
string
When this user’s identity was last refreshed from the HRIS integration. Null means never synced — either the company has no HRIS connected, or this user has never been matched in it.
object[]
object[]
object[]
object[]
object[]
Resources shared with this user individually, on top of whatever their role grants — call get_role with their role id for the other channel, which covers everyone holding that role. Read the two together: this is what makes someone see a view their role alone would deny, so a permission answer built on the role only can be wrong. Empty when nothing is shared with them individually — or, on a user other than yourself, when nothing shared with them belongs to a resource you may administer the sharing of. Same shape as get_role’s shared_resources. Live environment only.