Skip to content

Get user by identifier

Request

Get user by any unique identifier field (id, email, externalId, accountAddress, etc.). Business (with user management permission) or admin. ⚠️ The identifier travels in the URL - for PII such as email prefer POST /users/info (identifier in body). Use include parameter for related data. Note: Including status/balances adds latency - consider separate calls for performance-critical scenarios.

Security
authJWT or projectKey
Path
identifierstringrequired
Query
includeArray of strings

Include related data (comma-separated). Valid options: status, balances. ⚠️ Performance: status and balances require additional queries - use sparingly.

curl -i -X GET \
  'https://docs.pers.ninja/_mock/swagger/users/{identifier}?include=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

User found

Bodyapplication/json
idstringrequired
emailstring
identifierEmailstringrequired

Universal identifier email for deterministic operations. Generated from B2B inputs (email, externalId) for wallet salt generation and external integrations.

Example:"user123@user.pers.internal"
firstNamestring or nullrequired

User first name

lastNamestring or nullrequired

User last name

externalIdstring or nullrequired

User external id

instagramAccountIdstring or nullrequired

Instagram account id

googleAccountNamestring or nullrequired

Google account name

customDataobject or nullrequired

Custom data

publicProfileobject or nullrequired

Public profile data

isActivebooleanrequired

Is active

currentSigningAccountIdstring

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

User-owned counterfactual smart contract wallets that can receive tokens

createdAtstring, (date-time)required

Timestamp when the user was created

updatedAtstring or null, (date-time)required

Timestamp when the user was last updated

registrationSourceobject or null

Registration source tracking for analytics - captures channel and attribution when user was created

Example:
{ "channel": "web", "medium": "referral", "campaign": "launch_2026" }
lastActivityAtstring or null, (date-time)

Last activity timestamp. Updated whenever user generates tokens (login or refresh). Tracks last time user was active (~1 hour precision).

activityCountnumber

Total activity count. Increments on every token generation (login + refresh). Measures true user engagement.

Example:42
includedobject or null

Included related entities. Only populated when include parameter is specified.

accountAddressstring or nullrequireddeprecated

User account address

Response
{ "id": "string", "email": "string", "identifierEmail": "user123@user.pers.internal", "firstName": "string", "lastName": "string", "externalId": "string", "accountAddress": "string", "instagramAccountId": "string", "googleAccountName": "string", "customData": {}, "publicProfile": {}, "isActive": true, "currentSigningAccountId": "string", "wallets": [ { … } ], "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "registrationSource": { "channel": "web", "medium": "referral", "campaign": "launch_2026" }, "lastActivityAt": "2019-08-24T14:15:22Z", "activityCount": 42, "included": { "statusTypes": [ … ], "tokenBalances": [ … ] } }