Get entity workflow runs
GET/projects/{projectId}/entities/{entityId}/workflows/{workflowId}/runs
Base URL: https://api.tinkermode.com
Get a paginated list of runs for this workflow, ordered by creation time descending. Returned runs don't include step records. Fetch a single run for its steps.
Authentication
Send an Authorization header of the form ModeCloud <AUTH_CODE>.
Must contain a user API key of a user with read permission on entity workflows (resource type: entityWorkflowRun, action: read), a service account token with the same permission, or a project API key.
Path parameters
| Name | Type | Required | Constraints | Description |
|---|---|---|---|---|
projectId | integer | Yes | The unique ID for a specified project. | |
entityId | string | Yes | Entity ID (unique within project) | |
workflowId | string | Yes | The unique ID of the workflow (MongoDB ObjectID hex string). |
Query parameters
| Name | Type | Required | Constraints | Description |
|---|---|---|---|---|
beginCreatedAt | string | No | Return runs created at or after this timestamp. The format follows RFC3339. | |
endCreatedAt | string | No | Return runs created at or before this timestamp. The format follows RFC3339. | |
limit | integer | No | default: 25; min: 0; max: 500 | Maximum number of runs to return. |
skip | integer | No | default: 0; min: 0 | Number of runs to skip over. |
state | string | No | Return runs with the specified state. |
Responses
200 Successfully retrieved the workflow runs.
Content type: application/json
Represents a single execution record of a workflow, without its step execution records. Returned by the run list endpoint; fetch a single run for its steps.
An array of objects with the following shape:
| Property | Type | Required | Constraints | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
createdAt | string | No | The time the run was created (ISO 8601). | ||||||||||||||||
entityId | string | No | The unique identifier for the entity the workflow belongs to. | ||||||||||||||||
error | object | No | Error information set when the run fails. Absent on non-failed runs. | ||||||||||||||||
| |||||||||||||||||||
finishedAt | string | No | The time the run completed (ISO 8601). Absent while the run is queued or running. | ||||||||||||||||
id | string | No | The unique identifier for the workflow run. | ||||||||||||||||
projectId | integer | No | The unique identifier for the project the run belongs to. | ||||||||||||||||
state | string | No | one of: queued, running, succeeded, failed | The current lifecycle state of the run. | |||||||||||||||
updatedAt | string | No | The time the run was last updated (ISO 8601). | ||||||||||||||||
workflowId | string | No | The unique identifier for the workflow that was executed. | ||||||||||||||||
Response example
[
{
"createdAt": "2026-07-28T10:15:00.000Z",
"entityId": "entity123456",
"error": {
"code": "user",
"message": "could not send Slack message: channel not found"
},
"finishedAt": "2026-07-28T10:15:01.688Z",
"id": "6871f2c6a4b39d0f1a2c3d4e::daily-check::1785233700000000000",
"projectId": 123,
"state": "failed",
"updatedAt": "2026-07-28T10:15:01.690Z",
"workflowId": "6871f2c6a4b39d0f1a2c3d4e"
},
{
"createdAt": "2026-07-28T09:00:00.000Z",
"entityId": "entity123456",
"error": {
"code": "expired"
},
"finishedAt": "2026-07-28T09:10:00.000Z",
"id": "6871f2c6a4b39d0f1a2c3d4e::daily-check::1785229200000000000",
"projectId": 123,
"state": "failed",
"updatedAt": "2026-07-28T09:10:00.000Z",
"workflowId": "6871f2c6a4b39d0f1a2c3d4e"
}
]401 Authorization is required to access this resource.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
403 Request failed because of denied permission.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
404 Workflow not found.
429 Request failed because of rate limit.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
500 An unexpected error has occurred.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
503 The service is temporarily unavailable.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |