---
title: "PUT (update) a Contact"
method: PUT
path: "/contacts/{contact_id}"
tags: ["Contacts"]
---

# PUT (update) a Contact

`PUT /contacts/{contact_id}`

The PUT method updates an existing contact. You must include the `update_source` property in the PUT request payload. To restore  a deleted contact you must specify the `update_source` as `Account`. When updating any resource using PUT, all properties are updated, overwriting all previous values. Any properties left blank or not included in the request are overwritten with null value - however this does not apply to contact subresources. 

Add or change any of the subresources by including them in the PUT request payload. Omitted subresources are not overwritten with null. If the contact being updated is deleted, the contact will be revived.
If `email_address` is specified: <div class="Msg"><p class="note-text"> **Only use this method when a contact gives you their explicit permission to send them an email. It is a violation of anti-spam and telemarketing laws, as well as a serious violation of the Constant Contact Terms of Service to use the Opt-in features of the API to opt a contact back in without his or her own action and consent.</p></div>

If `sms_channel` is specified: <div class="Msg"><p class="note-text">Only use this method when a contact gives you their explicit permission to send them an SMS. It is a violation of anti-spam and telemarketing laws, as well as a serious violation of the Constant Contact Terms of Service to use the Opt-in features of the API to opt a contact back in without his or her own action and consent.</p></div>

## Path parameters

- `contact_id` string, required

## Request body

- ContactPutRequest
  - `email_address` EmailAddressPut — The contact's email address and related properties.
    - `address` string, required — The email address of the contact. The email address must be unique for each contact.
    - `permission_to_send` string — Identifies the type of permission that the Constant Contact account has to send email to the contact. Types of permission: explicit, implicit, not_set, pending_confirmation, temp_hold, unsubscribed.
    - `created_at` string, date-time — Date and time that the email_address was created, in ISO-8601 format. System generated.
    - `updated_at` string, date-time — Date and time that the email_address was last updated, in ISO-8601 format. System generated.
    - `opt_in_date` string, date-time — Date and time that the email_address was opted-in to receive email from the account, in ISO-8601 format. System generated.
    - `opt_out_source` string — Describes the source of the unsubscribed/opt-out action: either Account or Contact. If the Contact opted-out, then the account cannot send any campaigns to this contact until the contact opts back in. If the Account, then the account can add the contact back to any lists and send to them. Displayed only if contact has been unsubscribed/opt-out.
    - `opt_out_date` string, date-time — Date and time that the contact unsubscribed/opted-out of receiving email from the account, in ISO-8601 format. Displayed only if contact has been unsubscribed/opt-out. System generated.
    - `opt_out_reason` string — The reason, as provided by the contact, that they unsubscribed/opted-out of receiving email campaigns.
    - `confirm_status` string — Indicates if the contact confirmed their email address after they subscribed to receive emails. Possible values: pending, confirmed, off.
  - `first_name` string — The contact's first name
  - `last_name` string — The contact's last name
  - `job_title` string — The contact's job title
  - `company_name` string — Name of the company the contact works for.
  - `birthday_month` integer — Accepts values from 1-12; must be used with <code>birthday_day</code>
  - `birthday_day` integer — Accepts values from 1-31; must be used with <code>birthday_month</code>
  - `anniversary` string — The anniversary date; Accepted formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD, YYYY/M/D, YYYY-MM-DD, YYYY-M-D, MM-DD-YYYY, M-D-YYYY
  - `update_source` string, required — Identifies who last updated the contact; valid values are <code>Contact</code> or <code>Account</code>.
  - `custom_fields` ContactCustomField[] — Array of up to 25 <code>custom_field</code> subresources.
    - `custom_field_id` string, uuid, required — The custom field's unique ID
    - `value` string — The custom field value.
    - `choice_ids` string[] — For <code>>multi_select</code> and <code>single_select</code> data types, the ID that uniquely identifies the choice associated with a the custom field.
  - `phone_numbers` PhoneNumberPut[] — Array of up to 3 <code>phone_numbers</code> subresources.
    - `phone_number` string — The contact's phone number.
    - `kind` string — Identifies the type of phone number; valid values are home, work, mobile, or other.
  - `street_addresses` StreetAddressPut[] — Array of up to 3 <code>street_addresses</code> subresources.
    - `kind` string, required — Describes the type of address; valid values are home, work, or other.
    - `street` string — Number and street of the address.
    - `city` string — The name of the city where the contact lives.
    - `state` string — The name of the state or province where the contact lives.
    - `postal_code` string — The zip or postal code of the contact.
    - `country` string — The name of the country where the contact lives.
  - `list_memberships` string[] — Array of up to 50 <code>list_ids</code> to which the contact is subscribed.
  - `taggings` string[] — Array of tags (<code>tag_id</code>) assigned to the contact, up to a maximum of 50.
  - `notes` Note[] — An array of notes about the contact listed by most recent note first.
    - `note_id` string, uuid — The ID that uniquely identifies the note (UUID format).
    - `created_at` string, date-time — The date that the note was created.
    - `content` string — The content for the note.
  - `sms_channel` ContactSmsChannel
    - `full_sms_address` string, required — The SMS-capable phone number for the Contact, including the dial code
    - `sms_channel_consents` ContactSmsChannelConsents[], required — The consents for the SMS Channel.
      - `sms_consent_permission` string, required — The current status of the SMS channel.
      - `consent_type` string, required — The type of consent provided.
      - `consent_medium_details` string — Additional information about the consent such as the type of device used.

## Response `200`

Contact resource has been updated

- ContactResource — Use this endpoint to retrieve (GET), update (PUT), or DELETE an existing contact resource specified using the <code>contact_id</code> path parameter.
  - `contact_id` string, uuid — Unique ID for each contact resource
  - `email_address` EmailAddress — A contact subresource describing the contact's email address.
    - `address` string, required — The email address of the contact. The email address must be unique for each contact.
    - `permission_to_send` string — Identifies the type of permission that the Constant Contact account has to send email to the contact. Types of permission: explicit, implicit, not_set, pending_confirmation, temp_hold, unsubscribed.
    - `created_at` string, date-time — Date and time that the email_address was created, in ISO-8601 format. System generated.
    - `updated_at` string, date-time — Date and time that the email_address was last updated, in ISO-8601 format. System generated.
    - `opt_in_source` string — Describes who opted-in the email_address; valid values are Contact or Account. Your integration must accurately identify <code>opt_in_source</code> for compliance reasons; value is set on POST, and is read-only going forward.
    - `opt_in_date` string, date-time — Date and time that the email_address was opted-in to receive email from the account, in ISO-8601 format. System generated.
    - `opt_out_source` string — Describes the source of the unsubscribed/opt-out action: either Account or Contact. If the Contact opted-out, then the account cannot send any campaigns to this contact until the contact opts back in. If the Account, then the account can add the contact back to any lists and send to them. Displayed only if contact has been unsubscribed/opt-out.
    - `opt_out_date` string, date-time — Date and time that the contact unsubscribed/opted-out of receiving email from the account, in ISO-8601 format. Displayed only if contact has been unsubscribed/opt-out. System generated.
    - `opt_out_reason` string — The reason, as provided by the contact, that they unsubscribed/opted-out of receiving email campaigns.
    - `confirm_status` string — Indicates if the contact confirmed their email address after they subscribed to receive emails. Possible values: pending, confirmed, off.
  - `first_name` string — The first name of the contact.
  - `last_name` string — The last name of the contact.
  - `job_title` string — The job title of the contact.
  - `company_name` string — The name of the company where the contact works.
  - `birthday_month` integer — The month value for the contact's birthday. Valid values are from 1 through 12. You must use this property with <code>birthday_month</code>.
  - `birthday_day` integer — The day value for the contact's birthday. Valid values are from 1 through 12. You must use this property with <code>birthday_day</code>.
  - `anniversary` string — The anniversary date for the contact. For example, this value could be the date when the contact first became a customer of an organization in Constant Contact. Valid date formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD, YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY, or M-DD-YYYY.
  - `update_source` string — Identifies who last updated the contact; valid values are <code>Contact</code> or <code>Account</code>.
  - `create_source` string — Describes who added the contact; valid values are <code>Contact</code> or <code>Account</code>. Your integration must accurately identify <code>create_source</code> for compliance reasons; value is set when contact is created.
  - `created_at` string, date-time — System generated date and time that the resource was created, in ISO-8601 format.
  - `updated_at` string, date-time — System generated date and time that the contact was last updated, in ISO-8601 format.
  - `deleted_at` string, date — For deleted contacts (<code>email_address</code> contains <code>opt_out_source</code> and <code>opt_out_date</code>), shows the date of deletion.
  - `custom_fields` ContactCustomField[] — Array of up to 25 <code>custom_field</code> subresources.
    - `custom_field_id` string, uuid, required — The custom field's unique ID
    - `value` string — The custom field value.
    - `choice_ids` string[] — For <code>>multi_select</code> and <code>single_select</code> data types, the ID that uniquely identifies the choice associated with a the custom field.
  - `phone_numbers` PhoneNumber[] — Array of up to 3 <code>phone_numbers</code> subresources.
    - `phone_number_id` string, uuid — Unique ID for the phone number
    - `phone_number` string — The contact's phone number.
    - `kind` string — Identifies the type of phone number; valid values are home, work, mobile, or other.
    - `created_at` string, date-time — Date and time that the street address was created, in ISO-8601 format. System generated.
    - `updated_at` string, date-time — Date and time that the phone number was last updated, in ISO-8601 format. System generated.
    - `update_source` string — Identifies who last updated the phone number; valid values are Contact or Account
    - `create_source` string — Identifies who added the phone number; valid values are Contact or Account.
  - `street_addresses` StreetAddress[] — Array of up to 3 <code>street_addresses</code> subresources.
    - `street_address_id` string, uuid — Unique ID for the street address
    - `kind` string, required — Describes the type of address; valid values are home, work, or other.
    - `street` string — Number and street of the address.
    - `city` string — The name of the city where the contact lives.
    - `state` string — The name of the state or province where the contact lives.
    - `postal_code` string — The zip or postal code of the contact.
    - `country` string — The name of the country where the contact lives.
    - `created_at` string, date-time — Date and time that the street address was created, in ISO-8601 format. System generated.
    - `updated_at` string, date-time — Date and time that the street address was last updated, in ISO-8601 format. System generated.
  - `list_memberships` string[] — Array of up to 50 <code>list_ids</code> to which the contact is subscribed.
  - `taggings` string[] — Array of tags (<code>tag_id</code>) assigned to the contact, up to a maximum of 50.
  - `notes` Note[] — An array of notes about the contact listed by most recent note first.
    - `note_id` string, uuid — The ID that uniquely identifies the note (UUID format).
    - `created_at` string, date-time — The date that the note was created.
    - `content` string — The content for the note.
  - `sms_channel` object — Includes SMS channel and consent details.
    - `sms_channel_id` string, uuid — The unique ID that identifies an SMS channel.
    - `sms_address` string — The phone number of the SMS-capable phone, which does not include the country code.
    - `dial_code` string — The dial code used for the SMS-capable phone. For example, the dial code for the United States is <code>1</code>.
    - `country_code` string — The two character ISO country code used for the SMS-capable phone. For example, the country code for the United States is <code>US</code>.
    - `update_source` string — Identifies who last updated SMS details for the contact. Valid values are Contact or Account
    - `create_source` string — Identifies who added SMS details for the contact. The value is set when you create SMS details for the contact. Valid values are <code>Contact</code> or <code>Account</code>.
    - `sms_channel_consents` SmsChannelConsentDetails[] — Identifies SMS channel consent details such as the current permission status for the SMS channel and opt-in date.
      - `sms_consent_permission` string — Identifies the current permission status for the SMS channel.
      - `consent_type` string — Identifies the type of consent provided. Currently, only <code>promotional_sms</code> is supported.
      - `opt_in_date` string, date-time — Date and time, in ISO-8601 format, that the contact subscribed/opted-in to receiving SMS from the account. Displays only if the contact subscribes/opts-in. System generated.
      - `opt_out_date` string, date-time — Date and time, in ISO-8601 format, that the contact unsubscribed/opted-out of receiving SMS from the account. Displays only if the contact unsubscribed/opted-out. System generated.
      - `advertised_frequency` string — The numeric used to set how often to send SMS advertisements during a specified time interval (<code>advertised_interval</code>). For example, if the <code>advertised_frequency</code> is set to <code>2</code> and the <code>advertised_interval</code> is set to <code>monthly</code>, the contact can receive up to two advertisements per month.
      - `advertised_interval` string — Identifies the unit of time used by Constant Contact to send SMS advertisements as a string enum. For example, if the <code>advertised_frequency</code> is set to <code>2</code> and the <code>advertised_interval</code> is set to <code>monthly</code>, the contact can receive up to two advertisements per month.
      - `created_at` string, date-time — Date and time that the SMS stats were created, in ISO-8601 format. System generated.
      - `updated_at` string, date-time — Date and time that the SMS stats were updated, in ISO-8601 format. System generated.

## Other responses

- `400` — Bad request. Either the JSON was malformed or there was a data validation error.
- `401` — The Access Token used is invalid.
- `403` — Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
- `404` — The requested resource was not found.
- `409` — Conflict. The resource you are creating or updating conflicts with an existing resource.
- `500` — There was a problem with our internal service.
- `503` — Our internal service is temporarily unavailable.

---

[API](https://skmtc.net/cc/apis/appconnect-v3.md) · [All operations](https://skmtc.net/cc/apis/appconnect-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cc/appconnect-v3/versions/4b4a534c818d/schema)
