---
title: "List rules execution logs"
method: GET
path: "/api/v1/rules_execution_logs"
tags: ["Rules Execution Log"]
---

# List rules execution logs

`GET /api/v1/rules_execution_logs`

List rules execution logs with optional filters and pagination.

Returns paginated rule execution records (controlled by `page_size`), including trigger conditions, evaluation results, and executed actions.

## Query parameters

- `created_at_after` string, date-time
- `created_at_before` string, date-time
- `rule` string
- `annotation` integer[]
- `queue` integer[]
- `request_id` string
- `execution_result` 'success' | 'failure' | 'partial_success'
- `trigger_event` string
- `trigger_match` boolean
- `search` string
- `page_size` integer

## Response `200`

OK

- RulesExecutionLogsResponse
  - `results` RulesExecutionLog[], required — List of rule execution log entries.
    - `rule_id` integer, required — ID of the rule that was executed.
    - `rule_name` string, required — Name of the rule at the time of execution.
    - `queue_id` integer, required — ID of the queue where the rule was triggered.
    - `annotation_id` integer, required — ID of the annotation that triggered the rule.
    - `request_id` string, required — Unique identifier for this rule execution request.
    - `created_at` string, date-time, required — Timestamp when the rule was executed.
    - `trigger_event` string, required — Event that triggered the rule evaluation.
    - `trigger_condition` string, required — The trigger condition expression that was evaluated.
    - `trigger_condition_results` boolean[], nullable, required — Array of boolean results from trigger condition evaluation. - **Regular rules**: Array with a single element (e.g., `[true]}`) - **Line item rules**: One result per line item row (e.g., `[false, true, true]` for 3 rows where rows 1 and 2 matched) All arrays (`trigger_condition_results`, `trigger_condition_values`, `actions`) are aligned by index for line item rules.
    - `trigger_condition_values` object[], nullable, required — Array of objects containing the field values used in trigger condition evaluation. Keys are schema IDs referenced in the trigger condition. - **Regular rules**: Array with a single object (e.g., `[{"amount_total": "1500.00"}]`) - **Line item rules**: One object per line item row, each containing that row's field values (e.g., `[{"item_price": "80"}, {"item_price": "150"}, {"item_price": "90"}]`) Aligned by index with `trigger_condition_results` and `actions`.
    - `trigger_match` boolean, required — Overall result of the trigger condition evaluation. `true` if the trigger condition evaluated to true (for line item rules, on at least one row of `trigger_condition_results`).
    - `execution_result` 'success' | 'failure' | 'partial_success', required — Overall result of the rule execution. - `success`: All actions executed successfully. - `failure`: All actions failed to execute. - `partial_success`: Some actions succeeded while others failed (for line item rules).
    - `execution_error` string, nullable, required — Error message if the rule execution failed.
    - `actions` array[], nullable, required — Array of executed actions per trigger condition result. `null` if all conditions were false. - **Regular rules**: Array with a single element containing all actions (e.g., `[[action1, action2]]`) - **Line item rules**: One element per line item row, aligned with `trigger_condition_results`. Elements are `null` for rows where the condition was false (e.g., `[null, [action], null]` for 3 rows where only row 1 matched) For line item rules, builtin actions (`show_message`, `add_automation_blocker`) are replicated for each matching row, while handler actions (`send_email`, `add_label`, etc.) are distributed one-to-one to matching rows.
      - object[], nullable
  - `pagination` Pagination, required
    - `next` string, uri, nullable — URL for the next page of results. Contains an opaque signed `cursor` query parameter. Use this URL directly to fetch the next page — do not attempt to construct or modify the cursor value.
    - `previous` string, uri, nullable — URL for the previous page of results. Contains an opaque signed `cursor` query parameter. Use this URL directly to fetch the previous page — do not attempt to construct or modify the cursor value.

## Other responses

- `400` — Invalid input data.
- `401` — The username/password is invalid or token is invalid (e.g. expired).
- `403` — Insufficient permission, missing authentication, invalid CSRF token and similar issue.
- `429` — Request rate is too high, wait before sending more requests. See [Rate Limiting](/guides/overview#rate-limiting) for more details.
- `500` — Server failure while processing the request.
- `502` — Invalid response from the upstream server.
- `503` — We're temporarily offline for maintenance. Please try again later.
- `504` — Upstream server could not complete the request in time.

---

[API](https://skmtc.dev/rossum/apis/rossum-api.md) · [All operations](https://skmtc.dev/rossum/apis/rossum-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rossum/rossum-api/revisions/f1b5a910991d/schema)
