Skip to main content
POST
/
v1
/
users
Create User
curl --request POST \
  --url https://api.privy.io/v1/users \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'privy-app-id: <privy-app-id>' \
  --data '
{
  "linked_accounts": [
    {
      "address": "[email protected]",
      "type": "email"
    }
  ]
}
'
{
  "id": "did:privy:cm3np4u9j001rc8b73seqmqqk",
  "created_at": 1731974895,
  "linked_accounts": [
    {
      "address": "[email protected]",
      "type": "email",
      "first_verified_at": 1674788927,
      "latest_verified_at": 1674788927,
      "verified_at": 1674788927
    },
    {
      "type": "farcaster",
      "fid": 4423,
      "owner_address": "0xE6bFb4137F3A8C069F98cc775f324A84FE45FdFF",
      "username": "payton",
      "display_name": "payton ↑",
      "bio": "engineering at /privy. building pixelpool.xyz, the first Farcaster video client. nyc. 👨‍💻🍎🏳️‍🌈  nf.td/payton",
      "profile_picture": "https://supercast.mypinata.cloud/ipfs/QmNexfCxdnFzWdJqKVgrjd27UGLMexNaw5FXu1XKR3cQF7?filename=IMG_2799.png",
      "profile_picture_url": "https://supercast.mypinata.cloud/ipfs/QmNexfCxdnFzWdJqKVgrjd27UGLMexNaw5FXu1XKR3cQF7?filename=IMG_2799.png",
      "verified_at": 1740678402,
      "first_verified_at": 1740678402,
      "latest_verified_at": 1741194370
    },
    {
      "type": "passkey",
      "credential_id": "Il5vP-3Tm3hNmDVBmDlREgXzIOJnZEaiVnT-XMliXe-BufP9GL1-d3qhozk9IkZwQ_",
      "authenticator_name": "1Password",
      "public_key": "pQECAyYgASFYIKdGwx5XxZ/7CJJzT8d5L6jyLNQdTH7X+rSZdPJ9Ux/QIlggRm4OcJ8F3aB5zYz3T9LxLdDfGpWvYkHgS4A8tPz9CqE=",
      "created_with_browser": "Chrome",
      "created_with_os": "Mac OS",
      "created_with_device": "Macintosh",
      "enrolled_in_mfa": true,
      "verified_at": 1741194420,
      "first_verified_at": 1741194420,
      "latest_verified_at": 1741194420
    }
  ],
  "mfa_methods": [
    {
      "type": "passkey",
      "verified_at": 1741194420
    }
  ],
  "has_accepted_terms": true,
  "is_guest": false
}

SDK methods

Learn more about creating users using our SDKs here.

Authorizations

Authorization
string
header
required

Basic Auth header with your app ID as the username and your app secret as the password.

Headers

privy-app-id
string
required

ID of your Privy app.

Body

application/json
linked_accounts
(LinkedAccountWalletInput · object | LinkedAccountEmailInput · object | LinkedAccountPhoneInput · object | LinkedAccountGoogleInput · object | LinkedAccountTwitterInput · object | LinkedAccountDiscordInput · object | LinkedAccountGithubInput · object | LinkedAccountSpotifyInput · object | LinkedAccountInstagramInput · object | LinkedAccountTiktokInput · object | LinkedAccountLineInput · object | LinkedAccountTwitchInput · object | LinkedAccountAppleInput · object | LinkedAccountLinkedInInput · object | LinkedAccountFarcasterInput · object | LinkedAccountTelegramInput · object | LinkedAccountCustomJWTInput · object)[]
required

The payload for importing a wallet account.

Example:
{
"type": "email",
"address": "[email protected]"
}
custom_metadata
CustomMetadata · object

Custom metadata associated with the user.

wallets
object[]

Wallets to create for the user.

Response

200 - application/json

Newly created user object.

A Privy user object.

id
string
required
linked_accounts
(LinkedAccountEmail · object | LinkedAccountPhone · object | LinkedAccountEthereum · object | LinkedAccountSolana · object | LinkedAccountSmartWallet · object | LinkedAccountEthereumEmbeddedWallet · object | LinkedAccountSolanaEmbeddedWallet · object | LinkedAccountBitcoinSegwitEmbeddedWallet · object | LinkedAccountBitcoinTaprootEmbeddedWallet · object | LinkedAccountCurveSigningEmbeddedWallet · object | LinkedAccountGoogleOauth · object | LinkedAccountTwitterOauth · object | LinkedAccountDiscordOauth · object | LinkedAccountGithubOauth · object | LinkedAccountSpotifyOauth · object | LinkedAccountInstagramOauth · object | LinkedAccountTiktokOauth · object | LinkedAccountLineOauth · object | LinkedAccountTwitchOauth · object | LinkedAccountLinkedInOauth · object | LinkedAccountAppleOauth · object | LinkedAccountCustomOauth · object | LinkedAccountCustomJwt · object | LinkedAccountFarcaster · object | LinkedAccountPasskey · object | LinkedAccountTelegram · object | LinkedAccountCrossApp · object | LinkedAccountAuthorizationKey · object)[]
required

An email account linked to the user.

mfa_methods
(SmsMfaMethod · object | TotpMfaMethod · object | PasskeyMfaMethod · object)[]
required

A SMS MFA method.

created_at
number
required

Unix timestamp of when the user was created in milliseconds.

has_accepted_terms
boolean
required

Indicates if the user has accepted the terms of service.

is_guest
boolean
required

Indicates if the user is a guest account user.

custom_metadata
CustomMetadata · object

Custom metadata associated with the user.