Delete an attribute definition
Deletes an attribute definition. Deletion is always disruptive: Segments
that reference the attribute keep evaluating best-effort but carry a standing
eval_warning (their predicate no longer type-checks). The response carries
the impact (affected segments + projected org-wide drop-out). Git-backed
definitions are read-only here (409 conflict).
Path parameters
id string<uuid> required Resource UUID. An unparseable id reads as a clean 404 not_found.
Responses
Errors follow the RFC 7807 problem format — see the error reference.
mutation_class string enum required How an edit affects dependent Segment predicates: free (no effect),
safe_but_stale (an enum value was removed; predicates stay valid), or
disruptive (a rename or cast-class change that raises a standing per-segment
warning).
One of: free, safe_but_stale, disruptive
impact object required The projected (preview) or committed (apply) impact of a mutation on dependent Segments and Workflows.
Fields of impact:
affected_segments array<object> required Each entry in affected_segments:
id string<uuid> required name string required typecheck_ok boolean required Whether the segment's predicate still type-checks under the change. Always true for a free / safe-but-stale edit; may be false for a disruptive one.
warning string optional The standing "evaluation disrupted" warning the edit would raise (or did); absent when none.
affected_workflows array<object> required Each entry in affected_workflows:
id string<uuid> required name string required key string required status string required The workflow's lifecycle status (draft, active, paused, archived, invalid).
projected_dropout integer<int64> required Org-wide count of contacts that drop out of the affected segments under the change (values that no longer cast, or carriers of a renamed/deleted attribute). 0 unless the change is disruptive.
code: invalid_scope), or it is bound to the test environment and this operation is irreversible (code: test_environment_forbidden). Branch on code: the first is fixed by granting the scope, the second only by using a live credential. See the "Live and test credentials" section of the API description. application/problem+json code is conflict.
application/problem+json code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json