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

# Success-metric catalog

> List everything a success metric can point at on this initiative: the events this organization records, its custom-object types, and the variables extracted from this initiative's conversations. Pass `eventName` to also get that event's properties, or `objectTypeId` to get that type's attributes and the ways it links to a person. Call this before success_metrics_upsert: an unrecognised event, object type or variable is accepted but never matches anything, so the metric silently reports zero.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/initiatives/{id}/success-metrics/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/initiatives/{id}/success-metrics/catalog:
    get:
      tags:
        - Initiatives
      summary: Success-metric catalog
      description: >-
        List everything a success metric can point at on this initiative: the
        events this organization records, its custom-object types, and the
        variables extracted from this initiative's conversations. Pass
        `eventName` to also get that event's properties, or `objectTypeId` to
        get that type's attributes and the ways it links to a person. Call this
        before success_metrics_upsert: an unrecognised event, object type or
        variable is accepted but never matches anything, so the metric silently
        reports zero.
      operationId: success_metrics_catalog
      parameters:
        - name: id
          in: path
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            type: string
            minLength: 1
            description: The initiative id.
        - name: eventName
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Also return this event's properties, for the value field of a
              SUM/AVERAGE/MAX metric.
            type: string
        - name: objectTypeId
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Also return this custom-object type's attributes and its linkage
              paths to a person.
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        description:
                          anyOf:
                            - type: string
                            - type: 'null'
                      required:
                        - name
                        - description
                      additionalProperties: false
                  objectTypes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        displayName:
                          anyOf:
                            - type: string
                            - type: 'null'
                      required:
                        - id
                        - name
                        - displayName
                      additionalProperties: false
                  variables:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        key:
                          type: string
                        label:
                          type: string
                        valueKind:
                          type: string
                      required:
                        - id
                        - key
                        - label
                        - valueKind
                      additionalProperties: false
                  eventProperties:
                    anyOf:
                      - type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            inferredType:
                              type: string
                            description:
                              anyOf:
                                - type: string
                                - type: 'null'
                          required:
                            - key
                            - inferredType
                            - description
                          additionalProperties: false
                      - type: 'null'
                    description: Null unless `eventName` was given.
                  objectAttributes:
                    anyOf:
                      - type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            inferredType:
                              type: string
                            description:
                              anyOf:
                                - type: string
                                - type: 'null'
                          required:
                            - key
                            - inferredType
                            - description
                          additionalProperties: false
                      - type: 'null'
                    description: Null unless `objectTypeId` was given.
                  linkagePaths:
                    anyOf:
                      - type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: array
                              items:
                                type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - PERSON_OBJECT
                                      - OBJECT_OBJECT
                                  role:
                                    type: string
                                  direction:
                                    type: string
                                    enum:
                                      - PARENT_TO_CHILD
                                      - CHILD_TO_PARENT
                                  objectTypeId:
                                    type: string
                                required:
                                  - kind
                                  - role
                                  - objectTypeId
                                additionalProperties: false
                            label:
                              type: string
                          required:
                            - path
                            - label
                          additionalProperties: false
                      - type: 'null'
                    description: >-
                      Null unless `objectTypeId` was given. An empty array means
                      it is linked directly to a person.
                required:
                  - events
                  - objectTypes
                  - variables
                  - eventProperties
                  - objectAttributes
                  - linkagePaths
                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_...`.'

````