authenticated
crm

Toggle Do Not Contact

post/crm/contacts/{contact_id}/dnc

Request

  • Base URL
    https://api-docs.upsmith.com (the document declares no server; this is the origin it was published from)
  • Auth
    • API key in header x-api-key
    • or HTTP bearer

Path parameters

contact_idstring required

Headers

organization-idstring nullable
x-user-idstring nullable
timezonestring
x-actor-emailstring nullable
x-request-sourcestring nullable
x-operation-idstring nullable
x-commit-messagestring nullable
x-confirmation-idstring nullable
x-chat-idstring nullable

Request body

do_not_contactboolean required
revoked_reasonstring nullable
scopesStopScope[] nullable
originsStopRequestOrigin[] nullable

Response

Successful Response

idstring required
first_namestring required
last_namestring nullable
last_contactedstring date-time nullable
hrefstring nullable
do_not_contactboolean required
stop_reason'lead_declined' | 'lead_already_resolved' | 'customer_opt_out' | 'canceled_appointment_already_resolved' | 'office_toggle' | 'carrier_opt_out' | 'contact_deceased' | 'customer_moved' | 'not_a_fit' | 'wrong_number' | 'service_titan_customer_note' | 'service_titan_location_note' | 'service_titan_job_note' | 'service_titan_contact_memo' | 'service_titan_job_reminders_off' | 'service_titan_marketing_updates_off' | 'unknown'

Why outreach stopped.

One vocabulary across every scope. The per-table reason enums this replaced diverged mostly because they lived in different tables — a campaign opt-out and a customer-scope opt-out are one reason at two scopes, so scope carries what their values encoded.

UNKNOWN covers rows predating the audit columns. It is unclassified, not reversible: a bulk lift must not clear a mark it cannot explain.

stop_origin'customer' | 'office' | 'carrier' | 'service_titan' | 'upsmith'

Where the stop came from, independent of why.

service_titan means we read it out of the shop's own records rather than anyone asking us — the row still stands on its own once written.

stopped_atstring date-time nullable
stopped_by_namestring nullable
stop_revocableboolean

Changes

No recorded changes to this operation across all 1 revision of this API.