> ## 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.

# Condition catalog

> List the person attributes and computed attributes available for DECISION and CASE CONDITIONS, plus the custom object types. Attribute tokens are ready to use as condition selection paths (e.g. attributes.plan, computed.ltv). NOTE: these `attributes.*` tokens are ONLY for DECISION/CASE conditions — SEND_MESSAGE template bindings use a different syntax (`person.<key>`); call journeys_message_variables for those. Also describes the cdp_predicate DECISION condition term shape: which `op` values are legal per attribute `type` (operatorsByType), and which `value` shape each `op` expects (cdpPredicateValueShapes).



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/journeys/condition-catalog
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/journeys/condition-catalog:
    get:
      tags:
        - Journeys
      summary: Condition catalog
      description: >-
        List the person attributes and computed attributes available for
        DECISION and CASE CONDITIONS, plus the custom object types. Attribute
        tokens are ready to use as condition selection paths (e.g.
        attributes.plan, computed.ltv). NOTE: these `attributes.*` tokens are
        ONLY for DECISION/CASE conditions — SEND_MESSAGE template bindings use a
        different syntax (`person.<key>`); call journeys_message_variables for
        those. Also describes the cdp_predicate DECISION condition term shape:
        which `op` values are legal per attribute `type` (operatorsByType), and
        which `value` shape each `op` expects (cdpPredicateValueShapes).
      operationId: journeys_condition_catalog
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  person:
                    type: array
                    items:
                      type: object
                      properties:
                        attr:
                          type: string
                        label:
                          type: string
                        type:
                          type: string
                      required:
                        - attr
                        - label
                        - type
                      additionalProperties: false
                  computed:
                    type: array
                    items:
                      type: object
                      properties:
                        attr:
                          type: string
                        label:
                          type: string
                        type:
                          type: string
                      required:
                        - attr
                        - label
                        - type
                      additionalProperties: false
                  objectTypes:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        displayName:
                          anyOf:
                            - type: string
                            - type: 'null'
                      required:
                        - name
                        - displayName
                      additionalProperties: false
                  conversation:
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                        type:
                          type: string
                        description:
                          type: string
                      required:
                        - path
                        - type
                        - description
                      additionalProperties: false
                    description: >-
                      Conversation-recency paths for a DECISION `value`
                      condition. A CLOSED set — any other key under
                      `engagement.conversation.` is refused at publish, because
                      a blank resolve there would read as 0 and open a gate that
                      should be shut. Not available to CASE. This list is the
                      DECISION view only: the same root also carries `id` and
                      `inboxUrl`, which resolve in an HTTP_REQUEST node and are
                      refused in a condition (nothing compares usefully against
                      an id, and a numeric op would coerce it to 0 and take the
                      branch).
                  operatorsByType:
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties:
                      type: array
                      items:
                        type: string
                    description: >-
                      Legal `op` values for a cdp_predicate condition term,
                      keyed by its `type`.
                  cdpPredicateValueShapes:
                    type: string
                    description: >-
                      Explains a cdp_predicate term's fields and the value shape
                      each `op` expects.
                required:
                  - person
                  - computed
                  - objectTypes
                  - conversation
                  - operatorsByType
                  - cdpPredicateValueShapes
                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_...`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.