---
title: "List person steps"
method: GET
path: "/v5/persons/{person_id}/steps"
tags: ["Persons"]
---

# List person steps

`GET /v5/persons/{person_id}/steps`

Returns campaign flow steps for the specified person, sorted by event date in descending order. Steps represent discrete tracked actions (e.g. conversion, share, reward earned) within the person's journey.

## Path parameters

- `person_id` string, required

## Query parameters

- `names` string[]
- `containers` string[]
- `campaign_ids` string[]
- `programs` string[]
- `journey_names` string[]
- `is_primary` boolean
- `data_keys` string[]
- `event_ids` string[]
- `cause_event_ids` string[]
- `root_event_ids` string[]
- `offset` integer
- `limit` integer
- `journey_key_names` string[]
- `journey_key_values` string[]

## Response `200`

Successful response

- PersonStepResponse[]
  - `campaign_id` string, required — Extole campaign id associated with this step. Absent when no campaign is linked.
  - `cause_event_id` string, required — Id of the direct cause event for this step.
  - `container` string, required — Campaign container the step belongs to.
  - `created_date` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `data` object, required — Named data parameters attached to this step.
  - `event_date` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `event_id` string, required — Extole event id that triggered this step.
  - `id` string, required — Extole-assigned unique identifier for this step.
  - `is_primary` boolean, required — Whether this is the primary (first qualifying) step for this event type in the journey.
  - `journey_key` JourneyKey, required
    - `name` string
    - `value` string
  - `journey_name` string, required — Journey name associated with this step. Absent for global-scope steps.
  - `name` string, required — Name of the event type that created this step (e.g. `purchase`, `signup`).
  - `program` string, required — Program key associated with this step. Absent when no program context exists.
  - `quality` 'HIGH' | 'LOW' | 'NONE', required — Quality classification of the step (`GOOD` or `BAD`).
  - `root_event_id` string, required — Id of the root event that initiated the chain leading to this step.
  - `scope` 'CLIENT' | 'PRIVATE' | 'PUBLIC', required — Scope of the step (`GLOBAL` or `JOURNEY`).
  - `updated_date` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/revisions/c16e62e66755/schema)
