Skip to main content
PATCH
/
v1
/
contacts
Update a contact
curl --request PATCH \
  --url https://dashboard.privy.com/v1/v1/contacts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "jane@example.com",
  "first_name": "Janet",
  "tags": [
    "vip",
    "wholesale"
  ]
}
'
{
  "data": {
    "first_name": "Janet",
    "last_name": "Doe",
    "email": "jane@example.com",
    "email_permission": "subscribed",
    "phone_number": "+15551234567",
    "contact_phone_permission": "subscribed",
    "tags": [
      "vip",
      "wholesale"
    ],
    "custom_fields": {
      "loyalty_tier": "gold"
    },
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-04-01T12:15:00Z"
  }
}

Authorizations

Authorization
string
header
required

OAuth 2.0 access token. Include as Authorization: Bearer <token>.

Body

application/json

Identify the contact with email or phone_number (not both), then include one or more mutable fields to update. The email and phone_number fields themselves are immutable and cannot be changed.

email
string<email>

Identifies the contact to update. Cannot be changed.

Example:

"jane@example.com"

phone_number
string

Identifies the contact to update. Cannot be changed.

Example:

"+15551234567"

first_name
string

Updated first name.

Example:

"Janet"

last_name
string

Updated last name.

Example:

"Smith"

tags
string[]

Replaces all existing tags.

Example:
["vip", "wholesale"]
custom_fields
object

Replaces all existing custom fields. Must be a flat key-value object.

Example:
{ "loyalty_tier": "platinum" }

Response

Contact updated successfully.

data
object