Set a contact's stage, note, details and consents
PATCH /v1/contacts/{id}
Send null to clear the stage or the note; a note replaces the previous one. details and consents merge into what the person has: a name you leave out is kept, a detail set to null is removed, and a consent set to false is withdrawn (its granted_at is kept). At most 20 details and consents together in one call. Details and consents need a person with an email: they are kept against the normalised email, and are deleted when the person’s last source row (waitlist signup, subscriber, feedback, Stripe customer, identify) is deleted. Nothing here touches Stripe.
Auth: Secret key only.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Contact id, e.g. ct_9f2c…. Ids belong to one project.
Request Body required
Section titled “Request Body required ”object
Details about the person, name to value. A name is lowercase letters, digits and _, starting with a letter, up to 40 characters (stage, company_size). A value is text, a number or true/false, stored as text, up to 200 characters; null removes the detail. A person holds at most 50 details: a new one beyond that is skipped, an existing one is always updated.
object
Consents, purpose to true (granted) or false (withdrawn), such as { "email_marketing": true }. A purpose follows the same naming rule as a detail. waitlist and changelog are recorded by Launch itself (on the waitlist and not unsubscribed; subscribed to the changelog) and are refused here. Record only what the person actually agreed to: Launch stores the answer, it cannot know what your form said.
object
Responses
Section titled “ Responses ”Updated contact
Error envelope. See error.code for the discriminator.
object
object
object
Error envelope. See error.code for the discriminator.
object
object
object
Error envelope. See error.code for the discriminator.
object
object
object
Error envelope. See error.code for the discriminator.