Skip to main content
POST
Create Segment
Create a segment from either the legacy flat filter array or a nested root filter group. You must provide exactly one of filters or root, and it must contain at least one filter.

Request

name
string
required
Segment name.
filters
FilterLeaf[]
Legacy v1 filter array. Use with filterJoinOperator.
filterJoinOperator
string
default:"and"
and requires every v1 filter to match. or matches any v1 filter.
root
FilterGroup
Nested v2 filter group. Use this for nested AND/OR logic, event filters, or segment filters.
Stripe trial subfilters stay under field: "stripeTrialProduct": prod_123:is_canceled, prod_123:end_at:2026-05-26, or prod_123:start_at:7 days ago. Every filter field validates its own operator set:
  • status, segment: is, is_not
  • tag: contains, not_contains, is_empty, is_not_empty
  • email: contains, not_contains
  • emailProvider, list: is, is_not, is_empty, is_not_empty
  • firstName, lastName: contains, not_contains, is_empty, is_not_empty
  • added: less_than, more_than
  • attribute: equality, empty checks, numeric/date comparisons, and contains checks
  • event, email engagement fields: is, is_not, at_least, less_than_count
  • emailBounced: also supports is_temporary_bounce, is_permanent_bounce
  • Stripe product fields: product-specific purchase/current/trial/date operators

Responses