---
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: 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
sidebar_class_name: "get api-method"
info_path: docs/api/workflows
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<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>


      