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
}

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
(Wallet · object | Email · object | Phone · object | Google · object | Twitter · object | Discord · object | Github · object | Spotify · object | Instagram · object | Tiktok · object | LINE · object | Apple · object | LinkedIn · object | Farcaster · object | Telegram · object | Custom JWT · object)[]
required
custom_metadata
object

Custom metadata associated with the user.

wallets
object[]

Wallets to create for the user.

Response

200 - application/json

Newly created user object.

id
string
required
linked_accounts
(Email · object | Phone · object | CrossApp · object | Authorization Key · object | Custom Jwt · object | Apple · object | Discord · object | Github · object | Google · object | Instagram · object | LinkedIn · object | Spotify · object | Tiktok · object | Line · object | Twitter · object | Smart Wallet · object | Passkey · object | Farcaster · object | Telegram · object | Ethereum · object | Ethereum Embedded Wallet · object | Solana · object | Solana Embedded Wallet · object | Bitcoin Segwit Embedded Wallet · object | Bitcoin Taproot Embedded Wallet · object)[]
required
mfa_methods
(Passkey · object | SMS · object | TOTP · object)[]
required
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
object

Custom metadata associated with the user.