---
id: workflow-execution-logs
title: Read execution logs
description: >-
  Returns log entries, newest window first. Page backwards by passing the
  response's `nextCursor` as `cursor` until it is absent.
sidebar_label: Read execution logs
hide_title: true
hide_table_of_contents: true
api: >-
  eJztWN9v2zgM/lcIvWzDuU6267DBb71hO/Rw2Ipehw4oikWx6FirLHkS3SQI/L8fKDs/2jjZbfeyhz01DmXxI/nxC9mVIDkLIrsR187fFcbNAReYN6SdDeI2EQpD7nXNzyITl0iNtwGMmwFa8hpDAhbnGAjm2io3h0L7QClcyBnCVOZ3c+lVgOkSahmCtjOgEsFjqJ0N+CTAxOKC3jQ+OD8BGWCS958bS9qAJtAB5DSgpVQkwtXoJaM5VyIT8x70yQZ0ZtwsiETU0ssKCT0HtxKa0deSSpEIKysUmdBKJMLj10Z7VCIj32AiQl5iJUW2ErSs+VQgr+1MtI8zcVXiNlOgFWPDhaxqw2+x5fPr4nf5fPoiP1UvUbRJD+Jrg365RWF0pUkMONaWcIZesONCNoZE9mI8TkQlF7pqKpE9H4/He7DedkWBGv26IE9zI6saFZADfudZehBMl/rjaCptO/8Dzhe5aYK+R0CrQFuFC3BFLHiHJYUPlSYonI9f9sTpiXQYViCsz9UQrEPV+WDNkkkaoPCuAip1AL4lFe1tIgLmjde0jMyYovTozxoqRXZzy+Y1OQM7ejEe85/94nML9FGJROTOElrio7Kujc4jR0dfAp9f7QN30y+Yc91rz4wm3XlTknZPSe8l50ETVtFOmiK//nYzrjTbjl+o1WC2Nsw9H7b3GR8yGbxHs29JBFpmxY1QOG34WdvCiUTMpbds9d55cdsmosIQ5AwHL6+Q5KMc9IG1iSBdYSBZ1UPeC+crSSLjFOIJHxVt2/JbjqQZYDKHEntv0LQVpQMtuUuHCxnCA+kiBwVSXoIzCv2G4HAWZQycjfQ3cqOaaQTLcE8/fdrn2xuj+b2YwxSYfVOnlhDkMsC8lARzNs+9s7MMpO0OwoRhTxKQUDaVtCcepZJTgzBRSFIbNlmVMJx7abSKlIVCatN41nVnMUJfRjVxRYFWsYAXGo06Qvrau6nB6rcB8vf0vehODLB3v88CSaukV31QMfCnl+/ewKvX41fQ+4IuopBAQH+PKlbjEKbJs3SvTzoc+7R6JHARAp+Bj5fnCWA6S2FSEtUhG402P0ZhGQirVOH9KIIOW5N1dFK4xqrJwx+MH7qja4qY0oF23Nz93rHk9ucDSWrCIKk3b5yOT6Oickq/dTWsYcFcUwlawbz4rIvrP6bXRd3MxhZwoQMF9q0tFzP/BtxNoGGksNBWx1lk9OjaqGIxMQN6+ag9Pa7bboDn2bd5vpXfo1obx4vjobGuhlHIpR3lzha6F70Dgrj7atUEglLe8+zUjSzQe1/Ck9wpfNJLSFSRl0Mq8tHiosacUHVd4ntB+dXJvzr5Vyf/lJ3cjUSl411nhhFohLab2u2+Nlpp1Y76Bahr8W77abzZYaasdWobY2ojicemNHfVg7n4H27zLhO70/EmKL5oPY3zc3dIJP2Hd+tR7K/rK9G2/SSYrQTj6Qr5PB2nY7HhvHi/AwfOLs45mbULVMmoO/0ecIlS7SxdfaAPKLLaStlPsKz2+SJc0Kg2Ukeux2KsOXazWWGD2BnL+SGLC2oM8jYRpQvEx1erqQz40Zu25a+7TYlrrHTg4U6JrJAm4JG8/Lcd8QD6O1zubK330jR8Jq5u34Hgfy6KR7FtltgfBHd4dzzqdrOkbt3e8oPX7Pc7S/T0speGZzD0j4ZBGGvltMtdEGt4WomWt68SpUIf4XSGszzHereWe/srx7FRoT/fXolEyIeC8EgA4u2DcFar7sSVu0Pbtht0xM8MsG3/BcAVdQY=
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-logs'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Read execution logs"}
>
</Heading>

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

</MethodEndpoint>

Returns log entries, newest window first. Page backwards by passing the response's `nextCursor` as `cursor` until it is absent.

<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":"limit","schema":{"type":"integer","default":200,"maximum":1000},"description":"Entries per window (clamped to 1000)."},{"in":"query","name":"cursor","schema":{"type":"integer","minimum":0},"description":"Exclusive end index of the window. Omit for the newest entries."},{"in":"query","name":"stepId","schema":{"type":"string"},"description":"Only logs from this step."}]}
>

</ParamsDetails>

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

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The log window.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"title":"LogEntry","type":"object","properties":{"id":{"type":"string"},"executionId":{"type":"string"},"stepId":{"type":"string"},"level":{"type":"string","enum":["debug","info","warn","error"]},"message":{"type":"string"},"metadata":{"type":"object"},"timestamp":{"type":"string","format":"date-time"}}}},"total":{"type":"integer"},"limit":{"type":"integer"},"nextCursor":{"type":"integer","description":"Pass as `cursor` to fetch older entries. Absent on the last window."}}}}}},"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>

