---
title: "GET /v1alpha1/policies"
method: GET
path: "/v1alpha1/policies"
tags: ["PolicyService"]
---

# GET /v1alpha1/policies

`GET /v1alpha1/policies`

## Request

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

List Policies.

## Query parameters

- `page` integer
- `size` integer
- `query` string
- `appIds` string[]
- `rulesForAppIds` string[]

## Response `200`

OK

- ListPoliciesResponse
  - `policies` Policy[]: A list of Policies.
    - `id` string: A unique identifier for the Policy.
    - `name` string, required: A human-readable name for the Policy.
    - `description` string: A human-readable description for the Policy.
    - `assignedTo` string, required: The requester application that this Policy applies to.
    - `rules` Rule[], required: All the rules that apply to this Policy.
      - `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
    - `createdAt` string, date-time: CreatedAt records the timestamp of when the Policy 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`: 7 breaking, 12 info
  - the response property `policies/items/assignedTo` became optional for the status `200`
  - the response property `policies/items/name` became optional for the status `200`
  - the response property `policies/items/rules` became optional for the status `200`
  - the response property `policies/items/rules/items/action` became optional for the status `200`
  - …15 more

[Operation history](https://skmtc.dev/agntcy/apis/agntcy-identity-service-api/changes/v1alpha1/policies/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)
