SendApp Docs
Log in

Update contact

PUT https://app.sendapp.ai/api/contacts/{id}
Update one or more fields of a contact. Only the keys you send are changed; tags REPLACES the whole set (use the tag endpoints to add or remove single tags). Every change is written to the contact timeline. PATCH is accepted too.
You find the names of the custom fields, with their type and allowed choices, with GET /api/contact-fields.
Values by type: yes/no true or false (also 1/0, "yes"/"no"), saved as 1/0 as on the Contacts page; number a number (also "12,5"); date YYYY-MM-DD (from an ISO 8601 date and time the date is kept); single choice one of the choices; multiple choice an array of choices or a text with the choices separated by commas. For choices upper and lower case do not matter: the value is saved with the official spelling. An invalid value returns 422 with invalid_fields, the reason for each field, and nothing is changed.
AI fields are filled in by SendApp's AI: they cannot be written (422, in invalid_fields), but you can read them on the contact, in custom_fields.

Parameters

12 · 2 required
apikey required
Your API Key (the X-API-Key header also works).
id required
Contact ID (integer, in the path). Use GET /api/contacts to find it.
name optional
Contact name.
first_name optional
First name: the full name is rebuilt (it takes precedence over name). If the contact's name was not split yet, the other half is taken from the current name.
last_name optional
Last name: the full name is rebuilt.
phone optional
Phone number in international format. 409 if it already belongs to another contact.
email optional
Email address. 409 if it already belongs to another contact.
birthday optional
Date in YYYY-MM-DD format (null to clear).
tags optional
Array or comma-separated string — replaces all tags.
custom_fields optional
Object keyed by custom field NAME, e.g. {"City": "Rome"}. Each value is checked against the field's type (see the notes): unknown names or invalid values return 422. Send null or "" to clear a value.
opted_out optional
true = exclude from campaigns, false = re-subscribe.
lifecycle_stage optional
One of lead, qualified, customer, inactive, lost (null to clear).
Need help with the integration? info@sendapp.live