---
title: "Success-metric catalog"
method: GET
path: "/api/v1/initiatives/{id}/success-metrics/catalog"
tags: ["Initiatives"]
---

# Success-metric catalog

`GET /api/v1/initiatives/{id}/success-metrics/catalog`

## Request

- Base URL: `https://www.useboom.ai`
- URL: `https://www.useboom.ai/api/v1/initiatives/{id}/success-metrics/catalog`
- Auth: HTTP bearer

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.

## Path parameters

- `id` string, required: The initiative id.

## Query parameters

- `eventName` string: Also return this event's properties, for the value field of a SUM/AVERAGE/MAX metric.
- `objectTypeId` string: Also return this custom-object type's attributes and its linkage paths to a person.

## Response `200`

Success

- object
  - `events` object[], required
    - `name` string, required
    - `description` string, nullable, required
  - `objectTypes` object[], required
    - `id` string, required
    - `name` string, required
    - `displayName` string, nullable, required
  - `variables` object[], required
    - `id` string, required
    - `key` string, required
    - `label` string, required
    - `valueKind` string, required
  - `eventProperties` object[], nullable, required: Null unless `eventName` was given.
    - `key` string, required
    - `inferredType` string, required
    - `description` string, nullable, required
  - `objectAttributes` object[], nullable, required: Null unless `objectTypeId` was given.
    - `key` string, required
    - `inferredType` string, required
    - `description` string, nullable, required
  - `linkagePaths` object[], nullable, required: Null unless `objectTypeId` was given. An empty array means it is linked directly to a person.
    - `path` object[], required
      - `kind` 'PERSON_OBJECT' | 'OBJECT_OBJECT', required
      - `role` string, required
      - `direction` 'PARENT_TO_CHILD' | 'CHILD_TO_PARENT'
      - `objectTypeId` string, required
    - `label` string, required

## Other responses

- `400`: Validation failed or the request cannot proceed.
- `401`: Missing, malformed, or revoked API key.
- `404`: The resource does not exist in this organization.
- `409`: Conflicts with the current state (duplicates, wrong lifecycle state).
- `422`: The request is well-formed but semantically invalid.
- `429`: Rate limit exceeded — retry after `Retry-After`.
- `500`: Internal server error.
- `503`: Transient error — retry with a narrower request.

## Changes

- **2026-11-03** `7c7a773b12ce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/useboom/apis/boom-api/changes/api/v1/initiatives/:id/success-metrics/catalog/get.md)

---

[API](https://skmtc.dev/useboom/apis/boom-api.md) - [All operations](https://skmtc.dev/useboom/apis/boom-api/llms.txt) - [OpenAPI document](https://skmtc.dev/useboom/apis/boom-api/revisions/d596d92ed092?raw)
