---
title: "GET /v1alpha1/policies/{policyId}/rules"
method: GET
path: "/v1alpha1/policies/{policyId}/rules"
tags: ["PolicyService"]
---

# GET /v1alpha1/policies/{policyId}/rules

`GET /v1alpha1/policies/{policyId}/rules`

## Request

- Base URL: `http://localhost:4000`
- URL: `http://localhost:4000/v1alpha1/policies/{policyId}/rules`
- Auth: HTTP bearer and API key in header `x-id-api-key`

List Rules.

## Path parameters

- `policyId` string, required

## Query parameters

- `page` integer
- `size` integer
- `query` string

## Response `200`

OK

- ListRulesResponse
  - `rules` Rule[]: A list of Rules.
    - `id` string: A unique identifier for the Rule.
    - `name` string, required: A human-readable name for the Rule.
    - `description` string: A human-readable description for the Rule.
    - `policyId` string
    - `tasks` Task[], required: The tasks that this Rule applies to.
      - `id` string: A unique identifier for the Task.
      - `name` string: A human-readable name for the Task.
      - `description` string: A human-readable description for the Task.
      - `appId` string: An application ID for the Task.
      - `toolName` string: A tool name for the Task.
    - `action` 'RULE_ACTION_UNSPECIFIED' | 'RULE_ACTION_ALLOW' | 'RULE_ACTION_DENY', enum, required: The action applied for the rule when calling the specified tasks
    - `needsApproval` boolean, required: Need User Approval for this Rule.
    - `createdAt` string, date-time: CreatedAt records the timestamp of when the Rule was initially created
  - `pagination` PagedResponse: Pagination response
    - `nextPage` integer: Next page
    - `hasNextPage` boolean: Has next page
    - `total` string: The total size of items
    - `size` integer: The size of the current page

## Other responses

- `default`: Default error response

## Changes

> 18 revisions in range; 7 not diffed.

- **2025-07-28** `63464ebf3f61`: 4 breaking, 9 info
  - the response property `rules/items/action` became optional for the status `200`
  - the response property `rules/items/name` became optional for the status `200`
  - the response property `rules/items/needsApproval` became optional for the status `200`
  - the response property `rules/items/tasks` became optional for the status `200`
  - …9 more

[Operation history](https://skmtc.dev/agntcy/apis/agntcy-identity-service-api/changes/v1alpha1/policies/:policyId/rules/get.md)

---

[API](https://skmtc.dev/agntcy/apis/agntcy-identity-service-api.md) - [All operations](https://skmtc.dev/agntcy/apis/agntcy-identity-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agntcy/apis/agntcy-identity-service-api/revisions/1dc8f8328648?raw)
