List custom-attribute definitions

Search Documentation

Search across all developer documentation

attributes

List custom-attribute definitions

GET /v1/attributes
Auth required api.attributes.view

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.

200 Cursor-paginated list of attribute definitions application/json
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
401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
422 Query parameter or path value failed validation application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The code is internal_error. The request_id field can be quoted to SendOps support to investigate. application/problem+json