---
title: "Get the workflow run history"
method: GET
path: "/v4/workflows/{workflowId}/history"
tags: ["Workflows"]
---

# Get the workflow run history

`GET /v4/workflows/{workflowId}/history`

## Request

- Base URL: `https://api.kadoa.com`
- URL: `https://api.kadoa.com/v4/workflows/{workflowId}/history`
- Auth: API key in header `x-api-key`

## Path parameters

- `workflowId` string, required

## Query parameters

- `page` integer
- `limit` integer
- `runId` string
- `status` 'success' | 'failed' | 'in_progress'

## Response `200`

History of workflow runs

- object
  - `workflowId` string: Unique identifier of the workflow
  - `workflowRuns` object[]
    - `id` string: Unique identifier of the workflow run
    - `state` 'IN_PROGRESS' | 'VALIDATING' | 'FINISHED' | 'FAILED' | 'NOT_SUPPORTED' | 'FAILED_INSUFFICIENT_FUNDS': State of the workflow run. VALIDATING means the run finished extracting but is held for QA review before data is delivered.
    - `startedAt` string, date-time: Start date and time of the workflow run
    - `finishedAt` string, date-time: Finish date and time of the workflow run
    - `screenshot` string: Screenshot of the navigation during the workflow run
    - `records` integer: Number of records processed in the workflow run
    - `errors` object[]: Errors that occurred during the workflow run
      - `errorCode` string: Error code identifying the type of error
      - `message` string: Human-readable error message
      - `timestamp` string, date-time: When the error occurred
      - `screenshot` string: Optional screenshot URL
      - `context` object: Additional context about the error
        - `url` string: The URL where the error occurred
        - `httpStatus` integer: HTTP status code if applicable
        - `retryCount` integer: Number of retry attempts made
        - `details` string: Additional error-specific details
        - `timestamp` string, date-time: When the error context was captured
    - `startedBy` 'SCHEDULE' | 'DASHBOARD' | 'API' | 'WORKFLOW_TRIGGER' | 'ASSISTANT' | 'KADOA', nullable: What started the run. API covers the API, SDKs, MCP, and CLI. KADOA means Kadoa started it. Null when the origin was not recorded.
  - `totalCount` integer: Total number of workflow runs matching the query (across all pages)
  - `pagination` object
    - `page` integer: Current page number
    - `limit` integer: Maximum number of items per page
    - `totalPages` integer: Total number of pages
    - `totalCount` integer: Total number of workflow runs matching the query

## Other responses

- `401`: Unauthorized access, either due to missing or invalid x-api-key
- `404`: Workflow with the specified ID could not be found

---

[API](https://skmtc.dev/kadoa/apis/kadoa-api.md) · [All operations](https://skmtc.dev/kadoa/apis/kadoa-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kadoa/apis/kadoa-api/revisions/bf7803c927b4?raw)
