---
title: "Lookup User by Custom Auth ID"
method: POST
path: "/v1/users/custom_auth/id"
tags: ["Users"]
---

# Lookup User by Custom Auth ID

`POST /v1/users/custom_auth/id`

Looks up a user by their custom auth ID.

## Headers

- `privy-app-id` string, required — ID of your Privy app.

## Request body

- object
  - `custom_user_id` string, required

## Response `200`

Object with user data.

- User — A Privy user object.
  - `created_at` number, required — Unix timestamp of when the user was created in seconds.
  - `custom_metadata` CustomMetadata — Custom metadata associated with the user.
  - `has_accepted_terms` boolean, required — Indicates if the user has accepted the terms of service.
  - `id` string, required
  - `is_guest` boolean, required — Indicates if the user is a guest account user.
  - `linked_accounts` LinkedAccount[], required
    - union — A linked account for the user.
      - object — An email account linked to the user.
        - `address` string, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `type` 'email', required
        - `verified_at` number, required
      - object — A phone number account linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `number` string
        - `phoneNumber` string, required
        - `type` 'phone', required
        - `verified_at` number, required
      - object — An Ethereum wallet account linked to the user.
        - `address` string, required
        - `chain_id` string
        - `chain_type` 'ethereum', required
        - `connector_type` string
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'unknown', required
        - `wallet_client_type` string
      - object — A Solana wallet account linked to the user.
        - `address` string, required
        - `chain_type` 'solana', required
        - `connector_type` string
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'unknown', required
        - `wallet_client_type` string
      - object — A smart wallet account linked to the user.
        - `address` string, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `smart_wallet_type` 'safe' | 'kernel' | 'light_account' | 'biconomy' | 'coinbase_smart_wallet' | 'thirdweb' | 'nexus', required — The supported smart wallet providers.
        - `smart_wallet_version` string
        - `type` 'smart_wallet', required
        - `verified_at` number, required
      - object — An Ethereum embedded wallet account linked to the user.
        - `address` string, required
        - `chain_id` string, required
        - `chain_type` 'ethereum', required
        - `connector_type` 'embedded', required
        - `delegated` boolean, required
        - `first_verified_at` number, nullable, required
        - `id` string, nullable, required
        - `imported` boolean, required
        - `latest_verified_at` number, nullable, required
        - `recovery_method` 'privy' | 'user-passcode' | 'google-drive' | 'icloud' | 'recovery-encryption-key' | 'privy-v2', required — The method used to recover an embedded wallet account.
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'privy', required
        - `wallet_client_type` 'privy', required
        - `wallet_index` number, required
      - object — A Solana embedded wallet account linked to the user.
        - `address` string, required
        - `chain_id` string, required
        - `chain_type` 'solana', required
        - `connector_type` 'embedded', required
        - `delegated` boolean, required
        - `first_verified_at` number, nullable, required
        - `id` string, nullable, required
        - `imported` boolean, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string, required
        - `recovery_method` 'privy' | 'user-passcode' | 'google-drive' | 'icloud' | 'recovery-encryption-key' | 'privy-v2', required — The method used to recover an embedded wallet account.
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'privy', required
        - `wallet_client_type` 'privy', required
        - `wallet_index` number, required
      - object — A Bitcoin SegWit embedded wallet account linked to the user.
        - `address` string, required
        - `chain_id` string, required
        - `chain_type` 'bitcoin-segwit', required
        - `connector_type` 'embedded', required
        - `delegated` boolean, required
        - `first_verified_at` number, nullable, required
        - `id` string, nullable, required
        - `imported` boolean, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string, required
        - `recovery_method` 'privy' | 'user-passcode' | 'google-drive' | 'icloud' | 'recovery-encryption-key' | 'privy-v2', required — The method used to recover an embedded wallet account.
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'privy', required
        - `wallet_client_type` 'privy', required
        - `wallet_index` number, required
      - object — A Bitcoin Taproot embedded wallet account linked to the user.
        - `address` string, required
        - `chain_id` string, required
        - `chain_type` 'bitcoin-taproot', required
        - `connector_type` 'embedded', required
        - `delegated` boolean, required
        - `first_verified_at` number, nullable, required
        - `id` string, nullable, required
        - `imported` boolean, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string, required
        - `recovery_method` 'privy' | 'user-passcode' | 'google-drive' | 'icloud' | 'recovery-encryption-key' | 'privy-v2', required — The method used to recover an embedded wallet account.
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'privy', required
        - `wallet_client_type` 'privy', required
        - `wallet_index` number, required
      - object — A curve signing embedded wallet account linked to the user.
        - `address` string, required
        - `chain_id` string, required
        - `chain_type` 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet', required — The wallet chain types that support curve-based signing.
        - `connector_type` 'embedded', required
        - `delegated` boolean, required
        - `first_verified_at` number, nullable, required
        - `id` string, nullable, required
        - `imported` boolean, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string, required
        - `recovery_method` 'privy' | 'user-passcode' | 'google-drive' | 'icloud' | 'recovery-encryption-key' | 'privy-v2', required — The method used to recover an embedded wallet account.
        - `type` 'wallet', required
        - `verified_at` number, required
        - `wallet_client` 'privy', required
        - `wallet_client_type` 'privy', required
        - `wallet_index` number, required
      - object — A Google OAuth account linked to the user.
        - `email` string, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `subject` string, required
        - `type` 'google_oauth', required
        - `verified_at` number, required
      - object — A Twitter OAuth account linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `profile_picture_url` string, nullable, required
        - `subject` string, required
        - `type` 'twitter_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A Discord OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `subject` string, required
        - `type` 'discord_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A GitHub OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `subject` string, required
        - `type` 'github_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A Spotify OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `subject` string, required
        - `type` 'spotify_oauth', required
        - `verified_at` number, required
      - object — An Instagram OAuth account linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `subject` string, required
        - `type` 'instagram_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A TikTok OAuth account linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `subject` string, required
        - `type` 'tiktok_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A LINE OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string, nullable, required
        - `profile_picture_url` string, nullable, required
        - `subject` string, required
        - `type` 'line_oauth', required
        - `verified_at` number, required
      - object — A Twitch OAuth account linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `subject` string, required
        - `type` 'twitch_oauth', required
        - `username` string, nullable, required
        - `verified_at` number, required
      - object — A LinkedIn OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string
        - `subject` string, required
        - `type` 'linkedin_oauth', required
        - `vanity_name` string
        - `verified_at` number, required
      - object — An Apple OAuth account linked to the user.
        - `email` string, nullable, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `subject` string, required
        - `type` 'apple_oauth', required
        - `verified_at` number, required
      - object — A custom OAuth account linked to the user.
        - `email` string
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `name` string
        - `profile_picture_url` string
        - `subject` string, required
        - `type` string, required — The ID of a custom OAuth provider, set up for this app. Must start with "custom:".
        - `username` string
        - `verified_at` number, required
      - object — A custom JWT account linked to the user.
        - `custom_user_id` string, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `type` 'custom_auth', required
        - `verified_at` number, required
      - object — A Farcaster account linked to the user.
        - `bio` string
        - `display_name` string
        - `fid` number, required
        - `first_verified_at` number, nullable, required
        - `homepage_url` string
        - `latest_verified_at` number, nullable, required
        - `owner_address` string, required
        - `profile_picture` string
        - `profile_picture_url` string
        - `signer_public_key` string
        - `type` 'farcaster', required
        - `username` string
        - `verified_at` number, required
      - object — A passkey account linked to the user.
        - `authenticator_name` string
        - `created_with_browser` string
        - `created_with_device` string
        - `created_with_os` string
        - `credential_id` string, required
        - `enrolled_in_mfa` boolean, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string
        - `type` 'passkey', required
        - `verified_at` number, required
      - object — A Telegram account linked to the user.
        - `first_name` string, nullable
        - `first_verified_at` number, nullable, required
        - `last_name` string, nullable
        - `latest_verified_at` number, nullable, required
        - `photo_url` string, nullable
        - `telegram_user_id` string, required
        - `type` 'telegram', required
        - `username` string, nullable
        - `verified_at` number, required
      - object — A cross-app account linked to the user.
        - `embedded_wallets` CrossAppEmbeddedWallet[], required
          - `address` string, required
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `provider_app_id` string, required
        - `smart_wallets` CrossAppSmartWallet[], required
          - `address` string, required
        - `subject` string, required
        - `type` 'cross_app', required
        - `verified_at` number, required
      - object — An authorization key linked to the user.
        - `first_verified_at` number, nullable, required
        - `latest_verified_at` number, nullable, required
        - `public_key` string, required
        - `type` 'authorization_key', required
        - `verified_at` number, required
  - `mfa_methods` LinkedMfaMethod[], required
    - union — A multi-factor authentication method linked to the user.
      - object — A SMS MFA method.
        - `type` 'sms', required
        - `verified_at` number, required
      - object — A TOTP MFA method.
        - `type` 'totp', required
        - `verified_at` number, required
      - object — A Passkey MFA method.
        - `type` 'passkey', required
        - `verified_at` number, required

---

[API](https://skmtc.net/privy-io/apis/privy-api.md) · [All operations](https://skmtc.net/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/privy-io/privy-api/versions/bb2eb34156cc/schema)
