List custom-attribute definitions
Returns the org's custom-attribute registry, newest-first — the typed
schema a Segment's SendQL predicate references as attr.<name>. This
is the attribute definitions, not per-contact values (see
/v1/contacts for values). No recipient PII. The registry is writable
from this API (POST, PUT, DELETE below) as well as the dashboard;
git-backed definitions are read-only here and edited in the repo.
Query parameters
limit integer optional Page size (1–200). Default 50.
cursor string optional Opaque cursor returned from the previous page.
Responses
Errors follow the RFC 7807 problem format — see the error reference.
data array<object> required Each entry in data:
id string<uuid> required name string required Lowercase identifier; referenced in SendQL as attr.<name>.
type string enum required One of: string, number, bool, datetime, enum
enum_values array<string> optional Allowed values when type is enum; omitted otherwise.
description string required formula string optional For a derived attribute (SND-1067): the aggregate expression SendOps
computes over the contact's event/activity stream, e.g. exists(send),
count(activity.order), last(open). Present only for derived attributes;
their value is maintained by SendOps (read-only) and type is inferred
(exists→bool, count→number, first/last→datetime).
origin string enum optional Where the attribute is authored: managed (via the API/dashboard) or
git (synced from a connected repo and read-only via the API).
One of: managed, git
source_path string optional Repo-relative source file, for git-backed attributes only.
last_synced_at string<date-time> optional Time of the last git sync, for git-backed attributes only.
created_at string<date-time> required updated_at string<date-time> required pagination object required Fields of pagination:
has_more boolean required next_cursor string | null optional code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json