> ## Documentation Index
> Fetch the complete documentation index at: https://plainrouter.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List rule summaries

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



## OpenAPI

````yaml https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/action-rules
openapi: 3.1.0
info:
  title: Plainrouter Conversion API
  version: 0.5.0
  description: Plainrouter public Signals Conversion API.
servers:
  - url: https://plainrouter.com/api/v1
    description: Production
security:
  - workspaceSecret: []
paths:
  /agent/workspaces/{workspace}/action-rules:
    get:
      tags:
        - ActionRuleApi
      summary: List rule summaries
      description: >-
        Read rule summaries, current revision and last-run status without
        histories or decisions. Continue with cursor; use actions.rules.show for
        detail.
      operationId: actions.rules.index
      parameters:
        - name: workspace
          in: path
          required: true
          description: The workspace ID
          schema:
            type: integer
        - name: page
          in: query
          schema:
            minimum: 1
            type: integer
        - name: account_id
          in: query
          description: >-
            Optional account ID, ignored by an account-bound key. An unbound key
            requires exactly one active available advertising account with an
            active connection; omission uses that account and a supplied ID must
            match it. Multiple active accounts return 422 even when account_id
            is supplied.
          schema:
            minimum: 1
            type: integer
        - name: platform_ad_account_id
          in: query
          description: >-
            Optional account ID, ignored by an account-bound key. An unbound key
            requires exactly one active available advertising account with an
            active connection; omission uses that account and a supplied ID must
            match it. Multiple active accounts return 422 even when account_id
            is supplied. Alias of account_id; account_id takes precedence when
            both are supplied.
          schema:
            minimum: 1
            type: integer
        - name: cursor
          in: query
          description: >-
            Continue using next_cursor with the same filters; rule lists use an
            immutable rule ID, other lists an offset or object ID.
          schema:
            type: string
        - name: per_page
          in: query
          description: >-
            Maximum complete rows; the byte budget may return fewer. Defaults to
            25.
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: >-
            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.
          content:
            application/json:
              schema:
                type: object
                properties:
                  rules:
                    type: object
                    description: >-
                      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.
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            status:
                              type: string
                              enum:
                                - enabled
                                - disabled
                                - suspended
                            account:
                              type: object
                              properties:
                                id:
                                  type: integer
                                name:
                                  type:
                                    - string
                                    - 'null'
                            current_revision:
                              type: object
                              additionalProperties: {}
                            last_run_status:
                              type:
                                - string
                                - 'null'
                            last_run_at:
                              type:
                                - string
                                - 'null'
                            counts:
                              type: object
                              properties:
                                revisions:
                                  type: integer
                                runs:
                                  type: integer
                          required:
                            - id
                            - name
                            - status
                            - account
                            - current_revision
                            - last_run_status
                            - last_run_at
                            - counts
                      total:
                        type: integer
                      per_page:
                        type: integer
                      next_cursor:
                        type:
                          - string
                          - 'null'
                      truncated:
                        type: boolean
                      continuation:
                        type: string
                required:
                  - rules
        '401':
          description: Missing, invalid, expired or revoked workspace key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '403':
          description: Insufficient ability or grant, or a conflicting workspace selector.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorMessage'
                  - type: object
                    properties:
                      error:
                        type: string
                        enum:
                          - insufficient_scope
                      error_description:
                        type: string
                    required:
                      - error
                      - error_description
        '404':
          description: Workspace, account or rule unavailable in this scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRouteNotFound'
        '422':
          description: >-
            Invalid rule input or account ID, mismatched account binding, or
            ambiguous active accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: The shared API rate limit is exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
          headers:
            Retry-After:
              description: Seconds until a retry is allowed.
              schema:
                type: integer
      security:
        - ruleReader: []
components:
  schemas:
    ErrorMessage:
      type: object
      properties:
        message:
          type: string
      required:
        - message
      title: ErrorMessage
    ApiRouteNotFound:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - api_route_not_found
            message:
              type: string
            resolution:
              type: string
          required:
            - code
            - message
            - resolution
        request:
          type: object
          properties:
            method:
              type: string
            path:
              type: string
          required:
            - method
            - path
        resources:
          type: object
          properties:
            documentation:
              type: string
            openapi:
              type: string
          required:
            - documentation
            - openapi
      required:
        - error
        - request
        - resources
      title: ApiRouteNotFound
    ValidationError:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
      required:
        - message
        - errors
      title: ValidationError
  securitySchemes:
    workspaceSecret:
      type: http
      description: >-
        Per-workspace Server secret. It authenticates only the Signals workspace
        represented by the credential.
      scheme: bearer
    ruleReader:
      type: http
      description: >-
        A workspace-scoped key with read ability and actions.rules.index or
        actions.rules.show access to the bound account. Send Accept:
        application/json.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.