---
title: "Record or withdraw a contact's consent to marketing email."
method: PUT
path: "/api/v1/contacts/{id}/marketing-consent"
tags: ["CRM · Contacts"]
---

# Record or withdraw a contact's consent to marketing email.

`PUT /api/v1/contacts/{id}/marketing-consent`

## Request

- Base URL: `https://api-dev.fusehealth.com`
- URL: `https://api-dev.fusehealth.com/api/v1/contacts/{id}/marketing-consent`
- Auth: API key in header `x-api-key`

Sequence emails are marketing: they are sent only to contacts who agreed to receive them. Granting consent requires your attestation and the basis (how and when the contact agreed); both are kept in the audit log. Withdrawing needs neither. A contact who unsubscribed (`CONTACT_UNSUBSCRIBED`) or turned marketing email off in their own account (`CONTACT_DECLINED`) can't be opted back in this way; only they can.

## Path parameters

- `id` string, required

## Request body

- object
  - `consented` boolean, required
  - `attestation` boolean: Required (true) when consented is true.
  - `consentSource` 'web_form' | 'paper_form' | 'verbal' | 'email' | 'imported_list' | 'other': Required when consented is true.
  - `consentObtainedAt` string, date: When the contact agreed. Required when consented is true; not in the future.

## Response `200`

Success

- object
  - `success` boolean
  - `message` string
  - `data` object
    - `id` string
    - `notifyProductNews` boolean

## Other responses

- `400`: Bad request / business-rule failure (may include a `code`)
- `401`: Missing, invalid, inactive, or expired API key (or JWT)
- `403`: Authenticated but not permitted (insufficient scope, wrong role, or FUSE feature not enabled)
- `404`: Resource not found (or not owned by the key's clinic)
- `409`: The contact unsubscribed or turned marketing email off themselves; only they can opt back in.

---

[API](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external.md) · [All operations](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/llms.txt) · [OpenAPI document](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/revisions/50821832728c?raw)
