---
title: "Participant run steps"
method: GET
path: "/api/v1/initiatives/{id}/participants/{participantId}/steps"
tags: ["Initiatives"]
---

# Participant run steps

`GET /api/v1/initiatives/{id}/participants/{participantId}/steps`

## Request

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

The participant's node-by-node journey run timeline (most recent first): which nodes ran, the routing signal each emitted, and bounded handler output/error. Engine execution history — for what the customer said, use the messages endpoint.

## Path parameters

- `id` string, required: Initiative id.
- `participantId` string, required: Participant id, as returned when adding or listing.

## Query parameters

- `limit` integer: Most-recent steps to return (default 50, max 200). Bounded tail — no older-page cursor; compare against totalSteps.
- `includeBody` boolean: Include HTTP_REQUEST bodies in step output: the response `body` (verbatim from the third party — may carry PII) and the resolved `requestBody` (credential secrets, env values, and document URLs are always masked at capture). Also includes the transcriptSummary and extractedData of a PLACE_CALL step and the eligibility reasoning of a SEND_REWARD step (both quote the customer). Defaults to false: bodies are stripped; failure `reason` is always included.

## Response `200`

Success

- object
  - `participantId` string, required
  - `totalSteps` number, required: Full step count, even when more than `limit` were returned.
  - `data` object[], required
    - `nodeId` string, required
    - `nodeKind` string, required: The workflow node kind, e.g. HTTP_REQUEST.
    - `status` string, required: RUNNING, COMPLETED, or FAILED.
    - `emittedSignal` string, nullable, required: The routing signal the node emitted, e.g. SUCCESS / FAILED.
    - `targetNodeId` string, nullable, required: The node the emitted signal routed to.
    - `enteredAt` string, required: ISO 8601 timestamp.
    - `exitedAt` string, nullable, required: ISO 8601 timestamp, null if open.
    - `output` unknown, required
    - `error` object, nullable, required: Failure detail when the step FAILED (no stack trace).
      - `name` string, required
      - `message` string, required
      - `code` union
        - string
        - number
  - `next_cursor` unknown, 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/participants/:participantId/steps/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)
