---
title: "Update contact"
method: PATCH
path: "/contacts/{id}"
tags: ["Contacts"]
---

# Update contact

`PATCH /contacts/{id}`

Update an existing contact's email, subscription state, or `data` fields.

## Path parameters

- `id` string, required

## Request body

- object
  - `email` string, email — Change the contact's email address. Returns 409 if another contact in the project already uses this email.
  - `subscribed` boolean — Update subscription state. Flipping this fires `contact.subscribed` or `contact.unsubscribed`.
  - `data` object — Patch contact data. `null` deletes a key, empty strings are ignored, primitives are stored. Reserved keys are silently filtered out.

## Response `200`

Contact updated

- Contact
  - `id` string — Unique contact identifier
  - `email` string, email — Contact email address
  - `subscribed` boolean — Subscription status
  - `data` object — Custom contact data fields
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `401` — Missing or invalid API key.
- `404` — The requested resource does not exist in this project.
- `409` — An existing contact already uses the email you're trying to set.

---

[API](https://skmtc.dev/useplunk/apis/plunk-api.md) · [All operations](https://skmtc.dev/useplunk/apis/plunk-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/useplunk/plunk-api/revisions/a13aa5345f8e/schema)
