> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useboom.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Preview a segment filter

> Count how many people currently match a filter, without saving. Use it to check the audience before saving a segment.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/segments/preview
openapi: 3.1.0
info:
  title: Boom API
  version: 1.0.0
  description: >-
    Boom's public REST API — one uniform surface over every platform capability.
    CDP: upsert people and custom objects, define object and relationship types,
    link and unlink relationships, and record behavioral events — one record per
    request or up to 1000 per request via the `/batch` endpoints. Segments: read
    (list, read, membership) and full authoring — discover the filterable
    catalog, validate a filter, create and update segments, preview match
    counts, and trigger evaluation. Initiatives: create and configure outreach
    initiatives, link WhatsApp templates, drive the lifecycle (launch, cancel,
    archive), and read collected-data summaries. Participants: enroll people
    into an active initiative, track their status, read conversation
    transcripts, and stop outreach. Journeys: read-only access to always-on
    message flows and their metrics. WhatsApp templates: list your WhatsApp
    numbers and list, read, and create message templates. The same capabilities
    are exposed as MCP tools with identical schemas.
servers:
  - url: https://www.useboom.ai
    description: Production
  - url: https://dev.useboom.ai
    description: Development (sandbox — use a development organization API key)
security:
  - bearerAuth: []
paths:
  /api/v1/segments/preview:
    post:
      tags:
        - Segments
      summary: Preview a segment filter
      description: >-
        Count how many people currently match a filter, without saving. Use it
        to check the audience before saving a segment.
      operationId: segments_preview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                filterExpression:
                  description: >-
                    The audience filter: a tree of predicates over person
                    attributes, related data, and events. Discover valid `attr`
                    tokens and operators with segments_catalog (GET
                    /api/v1/segments/catalog).
                  type: object
                  properties:
                    kind:
                      type: string
                      const: person
                    op:
                      type: string
                      enum:
                        - AND
                        - OR
                    predicates:
                      type: array
                      items:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: has_relationship
                              connector:
                                type: string
                                enum:
                                  - AND
                                  - OR
                              customObjectType:
                                type: string
                                minLength: 1
                              attributeFilters:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    attr:
                                      type: string
                                    path:
                                      minItems: 1
                                      maxItems: 5
                                      type: array
                                      items:
                                        type: string
                                        pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                                    type:
                                      type: string
                                      enum:
                                        - STRING
                                        - NUMBER
                                        - BOOLEAN
                                        - DATE
                                        - JSON
                                        - ARRAY
                                    op:
                                      type: string
                                      enum:
                                        - eq
                                        - neq
                                        - in
                                        - not_in
                                        - contains
                                        - not_contains
                                        - starts_with
                                        - ends_with
                                        - gt
                                        - gte
                                        - lt
                                        - lte
                                        - 'on'
                                        - before
                                        - after
                                        - between
                                        - in_last_n
                                        - in_next_n
                                        - more_than_n_ago
                                        - more_than_n_from_now
                                        - exactly_n_from_today
                                        - is_null
                                        - is_not_null
                                    value:
                                      anyOf:
                                        - type: string
                                        - type: number
                                        - type: boolean
                                        - type: array
                                          items:
                                            anyOf:
                                              - type: string
                                              - type: number
                                        - type: object
                                          properties:
                                            from:
                                              type: string
                                            to:
                                              type: string
                                          required:
                                            - from
                                            - to
                                        - type: object
                                          properties:
                                            amount:
                                              type: integer
                                              minimum: 1
                                              maximum: 9999
                                            unit:
                                              type: string
                                              enum:
                                                - days
                                                - weeks
                                                - months
                                          required:
                                            - amount
                                            - unit
                                        - type: object
                                          properties:
                                            daysOffset:
                                              type: integer
                                              minimum: -9007199254740991
                                              maximum: 9007199254740991
                                            rollForward:
                                              type: object
                                              properties:
                                                fromDow:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 6
                                                includeDows:
                                                  minItems: 1
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 0
                                                    maximum: 6
                                              required:
                                                - fromDow
                                                - includeDows
                                          required:
                                            - daysOffset
                                  required:
                                    - attr
                                    - type
                                    - op
                              path:
                                minItems: 1
                                maxItems: 3
                                type: array
                                items:
                                  type: object
                                  properties:
                                    customObjectType:
                                      type: string
                                      minLength: 1
                                    direction:
                                      type: string
                                      enum:
                                        - parent_to_child
                                        - child_to_parent
                                    relationshipType:
                                      type: string
                                      minLength: 1
                                    attributeFilters:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          attr:
                                            type: string
                                          path:
                                            minItems: 1
                                            maxItems: 5
                                            type: array
                                            items:
                                              type: string
                                              pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                                          type:
                                            type: string
                                            enum:
                                              - STRING
                                              - NUMBER
                                              - BOOLEAN
                                              - DATE
                                              - JSON
                                              - ARRAY
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - in
                                              - not_in
                                              - contains
                                              - not_contains
                                              - starts_with
                                              - ends_with
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - 'on'
                                              - before
                                              - after
                                              - between
                                              - in_last_n
                                              - in_next_n
                                              - more_than_n_ago
                                              - more_than_n_from_now
                                              - exactly_n_from_today
                                              - is_null
                                              - is_not_null
                                          value:
                                            anyOf:
                                              - type: string
                                              - type: number
                                              - type: boolean
                                              - type: array
                                                items:
                                                  anyOf:
                                                    - type: string
                                                    - type: number
                                              - type: object
                                                properties:
                                                  from:
                                                    type: string
                                                  to:
                                                    type: string
                                                required:
                                                  - from
                                                  - to
                                              - type: object
                                                properties:
                                                  amount:
                                                    type: integer
                                                    minimum: 1
                                                    maximum: 9999
                                                  unit:
                                                    type: string
                                                    enum:
                                                      - days
                                                      - weeks
                                                      - months
                                                required:
                                                  - amount
                                                  - unit
                                              - type: object
                                                properties:
                                                  daysOffset:
                                                    type: integer
                                                    minimum: -9007199254740991
                                                    maximum: 9007199254740991
                                                  rollForward:
                                                    type: object
                                                    properties:
                                                      fromDow:
                                                        type: integer
                                                        minimum: 0
                                                        maximum: 6
                                                      includeDows:
                                                        minItems: 1
                                                        type: array
                                                        items:
                                                          type: integer
                                                          minimum: 0
                                                          maximum: 6
                                                    required:
                                                      - fromDow
                                                      - includeDows
                                                required:
                                                  - daysOffset
                                        required:
                                          - attr
                                          - type
                                          - op
                                  required:
                                    - customObjectType
                                    - attributeFilters
                            required:
                              - kind
                              - customObjectType
                              - attributeFilters
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: person_attribute
                              connector:
                                type: string
                                enum:
                                  - AND
                                  - OR
                              attr:
                                type: string
                              path:
                                minItems: 1
                                maxItems: 5
                                type: array
                                items:
                                  type: string
                                  pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                              type:
                                type: string
                                enum:
                                  - STRING
                                  - NUMBER
                                  - BOOLEAN
                                  - DATE
                                  - JSON
                                  - ARRAY
                              op:
                                type: string
                                enum:
                                  - eq
                                  - neq
                                  - in
                                  - not_in
                                  - contains
                                  - not_contains
                                  - starts_with
                                  - ends_with
                                  - gt
                                  - gte
                                  - lt
                                  - lte
                                  - 'on'
                                  - before
                                  - after
                                  - between
                                  - in_last_n
                                  - in_next_n
                                  - more_than_n_ago
                                  - more_than_n_from_now
                                  - exactly_n_from_today
                                  - is_null
                                  - is_not_null
                              value:
                                anyOf:
                                  - type: string
                                  - type: number
                                  - type: boolean
                                  - type: array
                                    items:
                                      anyOf:
                                        - type: string
                                        - type: number
                                  - type: object
                                    properties:
                                      from:
                                        type: string
                                      to:
                                        type: string
                                    required:
                                      - from
                                      - to
                                  - type: object
                                    properties:
                                      amount:
                                        type: integer
                                        minimum: 1
                                        maximum: 9999
                                      unit:
                                        type: string
                                        enum:
                                          - days
                                          - weeks
                                          - months
                                    required:
                                      - amount
                                      - unit
                                  - type: object
                                    properties:
                                      daysOffset:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      rollForward:
                                        type: object
                                        properties:
                                          fromDow:
                                            type: integer
                                            minimum: 0
                                            maximum: 6
                                          includeDows:
                                            minItems: 1
                                            type: array
                                            items:
                                              type: integer
                                              minimum: 0
                                              maximum: 6
                                        required:
                                          - fromDow
                                          - includeDows
                                    required:
                                      - daysOffset
                            required:
                              - kind
                              - attr
                              - type
                              - op
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: person_group
                              connector:
                                type: string
                                enum:
                                  - AND
                                  - OR
                              filters:
                                minItems: 1
                                type: array
                                items:
                                  type: object
                                  properties:
                                    attr:
                                      type: string
                                    path:
                                      minItems: 1
                                      maxItems: 5
                                      type: array
                                      items:
                                        type: string
                                        pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                                    type:
                                      type: string
                                      enum:
                                        - STRING
                                        - NUMBER
                                        - BOOLEAN
                                        - DATE
                                        - JSON
                                        - ARRAY
                                    op:
                                      type: string
                                      enum:
                                        - eq
                                        - neq
                                        - in
                                        - not_in
                                        - contains
                                        - not_contains
                                        - starts_with
                                        - ends_with
                                        - gt
                                        - gte
                                        - lt
                                        - lte
                                        - 'on'
                                        - before
                                        - after
                                        - between
                                        - in_last_n
                                        - in_next_n
                                        - more_than_n_ago
                                        - more_than_n_from_now
                                        - exactly_n_from_today
                                        - is_null
                                        - is_not_null
                                    value:
                                      anyOf:
                                        - type: string
                                        - type: number
                                        - type: boolean
                                        - type: array
                                          items:
                                            anyOf:
                                              - type: string
                                              - type: number
                                        - type: object
                                          properties:
                                            from:
                                              type: string
                                            to:
                                              type: string
                                          required:
                                            - from
                                            - to
                                        - type: object
                                          properties:
                                            amount:
                                              type: integer
                                              minimum: 1
                                              maximum: 9999
                                            unit:
                                              type: string
                                              enum:
                                                - days
                                                - weeks
                                                - months
                                          required:
                                            - amount
                                            - unit
                                        - type: object
                                          properties:
                                            daysOffset:
                                              type: integer
                                              minimum: -9007199254740991
                                              maximum: 9007199254740991
                                            rollForward:
                                              type: object
                                              properties:
                                                fromDow:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 6
                                                includeDows:
                                                  minItems: 1
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 0
                                                    maximum: 6
                                              required:
                                                - fromDow
                                                - includeDows
                                          required:
                                            - daysOffset
                                  required:
                                    - attr
                                    - type
                                    - op
                            required:
                              - kind
                              - filters
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: event
                              connector:
                                type: string
                                enum:
                                  - AND
                                  - OR
                              eventName:
                                type: string
                                minLength: 1
                              occurred:
                                type: boolean
                              propertyFilters:
                                minItems: 1
                                type: array
                                items:
                                  type: object
                                  properties:
                                    key:
                                      type: string
                                      minLength: 1
                                    path:
                                      minItems: 1
                                      maxItems: 5
                                      type: array
                                      items:
                                        type: string
                                        pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                                    type:
                                      type: string
                                      enum:
                                        - STRING
                                        - NUMBER
                                        - BOOLEAN
                                        - DATE
                                        - JSON
                                        - ARRAY
                                    op:
                                      type: string
                                      enum:
                                        - eq
                                        - neq
                                        - in
                                        - not_in
                                        - contains
                                        - not_contains
                                        - starts_with
                                        - ends_with
                                        - gt
                                        - gte
                                        - lt
                                        - lte
                                        - 'on'
                                        - before
                                        - after
                                        - between
                                        - in_last_n
                                        - in_next_n
                                        - more_than_n_ago
                                        - more_than_n_from_now
                                        - exactly_n_from_today
                                        - is_null
                                        - is_not_null
                                    value:
                                      anyOf:
                                        - type: string
                                        - type: number
                                        - type: boolean
                                        - type: array
                                          items:
                                            anyOf:
                                              - type: string
                                              - type: number
                                        - type: object
                                          properties:
                                            from:
                                              type: string
                                            to:
                                              type: string
                                          required:
                                            - from
                                            - to
                                        - type: object
                                          properties:
                                            amount:
                                              type: integer
                                              minimum: 1
                                              maximum: 9999
                                            unit:
                                              type: string
                                              enum:
                                                - days
                                                - weeks
                                                - months
                                          required:
                                            - amount
                                            - unit
                                        - type: object
                                          properties:
                                            daysOffset:
                                              type: integer
                                              minimum: -9007199254740991
                                              maximum: 9007199254740991
                                            rollForward:
                                              type: object
                                              properties:
                                                fromDow:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 6
                                                includeDows:
                                                  minItems: 1
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 0
                                                    maximum: 6
                                              required:
                                                - fromDow
                                                - includeDows
                                          required:
                                            - daysOffset
                                  required:
                                    - key
                                    - type
                                    - op
                              window:
                                type: object
                                properties:
                                  op:
                                    type: string
                                    enum:
                                      - in_last_n
                                      - more_than_n_ago
                                      - between
                                      - before
                                      - after
                                      - 'on'
                                  value:
                                    anyOf:
                                      - type: string
                                      - type: number
                                      - type: boolean
                                      - type: array
                                        items:
                                          anyOf:
                                            - type: string
                                            - type: number
                                      - type: object
                                        properties:
                                          from:
                                            type: string
                                          to:
                                            type: string
                                        required:
                                          - from
                                          - to
                                      - type: object
                                        properties:
                                          amount:
                                            type: integer
                                            minimum: 1
                                            maximum: 9999
                                          unit:
                                            type: string
                                            enum:
                                              - days
                                              - weeks
                                              - months
                                        required:
                                          - amount
                                          - unit
                                      - type: object
                                        properties:
                                          daysOffset:
                                            type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          rollForward:
                                            type: object
                                            properties:
                                              fromDow:
                                                type: integer
                                                minimum: 0
                                                maximum: 6
                                              includeDows:
                                                minItems: 1
                                                type: array
                                                items:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 6
                                            required:
                                              - fromDow
                                              - includeDows
                                        required:
                                          - daysOffset
                                required:
                                  - op
                            required:
                              - kind
                              - eventName
                              - occurred
                  required:
                    - kind
                    - op
                    - predicates
              required:
                - filterExpression
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  count:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: People currently matching the filter (capped when huge).
                required:
                  - count
                additionalProperties: false
        '400':
          description: Validation failed or the request cannot proceed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '401':
          description: Missing, malformed, or revoked API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '404':
          description: The resource does not exist in this organization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '409':
          description: >-
            Conflicts with the current state (duplicates, wrong lifecycle
            state).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '422':
          description: The request is well-formed but semantically invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '429':
          description: Rate limit exceeded — retry after `Retry-After`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '503':
          description: Transient error — retry with a narrower request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Organization API key, sent as `Authorization: Bearer boom_org_...`.'

````