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

# List success metrics

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

## Request

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

Read the success metrics configured on an initiative — what counts as a win, and how it is measured. Returns them in the exact shape success_metrics_upsert accepts, so you can read one, edit it and send it back. An initiative with no metric configured returns an empty list. Editing a metric changes what the dashboard reports for past conversations too, because successes are recalculated on every read.

## Path parameters

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

## Query parameters

- `status` 'active' | 'all': Default `active`: the metrics currently in use. `all` adds superseded versions, newest first — the edit history.

## Response `200`

Success

- object
  - `initiativeId` string, required
  - `metrics` object[], required
    - `rootId` string, required: Stable id for this metric across versions. Pass it back to edit the metric.
    - `version` integer, required: Version number; every edit creates a new one.
    - `status` 'ACTIVE' | 'SUPERSEDED', required
    - `name` string, required
    - `signalType` 'CDP_EVENT' | 'CUSTOM_OBJECT' | 'EXTRACTED_VARIABLE', required
    - `aggregation` 'COUNT' | 'SUM' | 'AVERAGE' | 'MAX', required
    - `roiEnabled` boolean, required
    - `eventName` string, nullable, required
    - `valueProperty` string, nullable, required
    - `valueSource` 'EVENT_PROPERTY' | 'RELATED_OBJECT', required
    - `valueObjectTypeId` string, nullable, required
    - `valueRefProperty` string, nullable, required
    - `variableId` string, nullable, required
    - `objectTypeId` string, nullable, required
    - `objectAttributeFilter` object, nullable, required
    - `objectTimeAttribute` string, nullable, required
    - `objectValueAttribute` string, nullable, required
    - `linkagePath` object[], nullable, required
      - `kind` 'PERSON_OBJECT' | 'OBJECT_OBJECT', required
      - `role` string, required
      - `direction` 'PARENT_TO_CHILD' | 'CHILD_TO_PARENT'
      - `objectTypeId` string, required
    - `windowHours` integer, required: Hours after the first outbound message in which a signal still counts. Fixed at 48.
    - `createdAt` string, required: ISO 8601 timestamp of this version.

## 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/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)
