---
id: workflow-execution-list-steps
title: List execution steps
description: >-
  Lists step attempts, paginated. Payloads are omitted by default (their sizes
  are reported instead); pass `include=payloads` for full rows.
sidebar_label: List execution steps
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: get api-method
info_path: docs/api/nullplatform-api
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/workflow-execution-list-steps'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"List execution steps"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/workflows/executions/{id}/steps"}
  context={"endpoint"}
>

</MethodEndpoint>

Lists step attempts, paginated. Payloads are omitted by default (their sizes are reported instead); pass `include=payloads` for full rows.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"The execution id.","example":"exec_8f3a1b2c4d5e"},{"in":"query","name":"include","schema":{"type":"string"},"description":"Supported: `payloads`."},{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":500},"description":"The maximum number of results per page (clamped to 500).","example":50},{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"default":0},"description":"The starting point for pagination.","example":0}]}
>

</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The paginated step attempts.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"title":"Step","type":"object","description":"One step attempt. List responses omit `inputs`, `outputs`, and logs by default, advertising their size instead; pass `include=payloads` (or read a single step) for the full record.","properties":{"executionId":{"type":"string"},"stepId":{"type":"string","example":"detect_drift"},"stepName":{"type":"string"},"stepType":{"type":"string","example":"module"},"pluginType":{"type":"string","example":"code-exec"},"status":{"type":"string","enum":["pending","running","completed","failed","skipped","cancelled"]},"attempt":{"type":"integer","description":"1-based attempt number."},"iterationIndex":{"type":"integer","description":"0-based index when the step ran once per item."},"error":{"title":"StepError","type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"HTTP_500"},"message":{"type":"string"},"details":{"type":"object"},"retryable":{"type":"boolean"}}},"inputs":{"type":"object","description":"Only with `include=payloads` or on single-step reads."},"outputs":{"type":"object","description":"Only with `include=payloads` or on single-step reads."},"inputsBytes":{"type":"integer","description":"Serialized size of the omitted `inputs` (list responses)."},"outputsBytes":{"type":"integer","description":"Serialized size of the omitted `outputs` (list responses)."},"logCount":{"type":"integer","description":"Number of log entries the attempt produced (list responses)."},"metadata":{"type":"object"},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"}}}},"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}}}}}},"4XX":{"description":"Client error. The body says what went wrong: an error `type`, a human-readable `detail`, and, on validation failures, one entry per offending field.","content":{"application/problem+json":{"schema":{"title":"Problem","type":"object","description":"The standard error body (RFC 7807 problem details, served as `application/problem+json`).","properties":{"type":{"type":"string","description":"Error type URI, e.g. `https://workflow-system.dev/errors/workflow-not-found`.","example":"https://workflow-system.dev/errors/workflow-not-found"},"title":{"type":"string","example":"Not found"},"status":{"type":"integer","example":404},"detail":{"type":"string","example":"No workflow with id wf_ifWBbWfpug0n exists"},"instance":{"type":"string","example":"/workflows/definitions/wf_ifWBbWfpug0n"},"errors":{"type":"array","description":"Present on validation failures: one entry per offending field.","items":{"type":"object","properties":{"path":{"type":"string","example":"/steps/scan/config"},"message":{"type":"string","example":"must have required property 'code'"}}}}}}}}},"5XX":{"description":"Unexpected server error.","content":{"application/problem+json":{"schema":{"title":"Problem","type":"object","description":"The standard error body (RFC 7807 problem details, served as `application/problem+json`).","properties":{"type":{"type":"string","description":"Error type URI, e.g. `https://workflow-system.dev/errors/workflow-not-found`.","example":"https://workflow-system.dev/errors/workflow-not-found"},"title":{"type":"string","example":"Not found"},"status":{"type":"integer","example":404},"detail":{"type":"string","example":"No workflow with id wf_ifWBbWfpug0n exists"},"instance":{"type":"string","example":"/workflows/definitions/wf_ifWBbWfpug0n"},"errors":{"type":"array","description":"Present on validation failures: one entry per offending field.","items":{"type":"object","properties":{"path":{"type":"string","example":"/steps/scan/config"},"message":{"type":"string","example":"must have required property 'code'"}}}}}}}}}}}
>

</StatusCodes>

