---
title: "List rule summaries"
method: GET
path: "/agent/workspaces/{workspace}/action-rules"
tags: ["ActionRuleApi"]
---

# List rule summaries

`GET /agent/workspaces/{workspace}/action-rules`

## Request

- Base URL: `https://plainrouter.com/api/v1`
- URL: `https://plainrouter.com/api/v1/agent/workspaces/{workspace}/action-rules`
- Auth: HTTP bearer

Read rule summaries, current revision and last-run status without histories or decisions. Continue with cursor; use actions.rules.show for detail.

## Path parameters

- `workspace` integer, required

## Query parameters

- `account_id` integer
- `platform_ad_account_id` integer
- `cursor` string
- `per_page` integer
- `page` integer

## Response `200`

Bounded rows; no nested history is included in rule summaries. Result projections share the 80,000-byte MCP JSON budget; defaults are bounded, next_cursor continues complete rows, and oversized single rows are explicitly refused. Plan creative continuation uses the read endpoint; proposal continuation uses the batch read endpoint.

- object
  - `rules` object, required: Complete projection rows are paged within 80,000 JSON bytes, accounting for both MCP representations. Defaults are bounded. Follow next_cursor with the same scope and filters. One oversized row is explicitly refused; fields are never silently clipped.
    - `data` object[]
      - `id` string, required
      - `name` string, required
      - `status` 'enabled' | 'disabled' | 'suspended', required
      - `account` object, required
        - `id` integer
        - `name` string, nullable
      - `current_revision` object, required
      - `last_run_status` string, nullable, required
      - `last_run_at` string, nullable, required
      - `counts` object, required
        - `revisions` integer
        - `runs` integer
    - `total` integer
    - `per_page` integer
    - `next_cursor` string, nullable
    - `truncated` boolean
    - `continuation` string

## Other responses

- `401`: Missing, invalid, expired or revoked workspace key.
- `403`: Insufficient ability or grant, or a conflicting workspace selector.
- `404`: Workspace, account or rule unavailable in this scope.
- `422`: Invalid rule input or account ID, mismatched account binding, or ambiguous active accounts.
- `429`: The shared API rate limit is exceeded.

---

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