---
title: "Get the policy assigned to the agent"
method: GET
path: "/policy"
tags: ["agent"]
---

# Get the policy assigned to the agent

`GET /policy`

## Request

- Base URL: `https://api.catena.com/v1/agent-api`
- URL: `https://api.catena.com/v1/agent-api/policy`
- Auth: HTTP bearer

## Response `200`

Assigned policy

- object
  - `policy` object, required
    - `id` string, required
    - `name` string, required
    - `description` string, required
    - `capabilities` string[], required
    - `accountAccess` object, nullable, required: Accounts the policy permits for each capability; null when the policy is invalid
      - `read` string[], required
      - `send` string[], required
      - `transfer` string[], required
    - `rules` object, nullable, required: Every rule that limits sends and transfers, each scoped to one account or to all of the capability's accounts together; null when the policy is invalid
      - `send` object[], required
        - `id` string, required: Unique within the policy. An all-account rule's id is its stored rule id. A one-account rule's id adds the capability and account to its stored rule id, so it does not match the policyCapabilities rule id
        - `scope` object, required
          - `accounts` union, required
            - object
              - …
            - object
              - …
          - `counterparties` union, required
            - object
              - …
            - object
              - …
        - `limit` union, required
          - object
            - `type` 'per_transaction_amount' | 'daily_amount' | 'weekly_amount' | 'monthly_amount', required
            - `threshold` object, required
              - …
          - object
            - `type` 'hourly_count' | 'daily_count', required
            - `threshold` number, required
        - `action` union, required
          - object
            - `type` 'block', required
          - object
            - `type` 'require_approval', required
            - `requiredApprovals` number, required
      - `transfer` object[], required
        - `id` string, required: Unique within the policy. An all-account rule's id is its stored rule id. A one-account rule's id adds the capability and account to its stored rule id, so it does not match the policyCapabilities rule id
        - `scope` object, required
          - `accounts` union, required
            - object
              - …
            - object
              - …
        - `limit` union, required
          - object
            - `type` 'per_transaction_amount' | 'daily_amount' | 'weekly_amount' | 'monthly_amount', required
            - `threshold` object, required
              - …
          - object
            - `type` 'hourly_count' | 'daily_count', required
            - `threshold` number, required
        - `action` union, required
          - object
            - `type` 'block', required
          - object
            - `type` 'require_approval', required
            - `requiredApprovals` number, required
    - `invalidReason` string, nullable, required: Why the stored policy cannot be read as account access and scoped rules; null when it can
    - `version` number, required
    - `kind` 'base' | 'override', required
    - `expiresAt` string, date-time
    - `evidenceRequirements` object: The evidence the policy requires with each capability's intents, sent as `evidence` on POST /intents. Absent when the policy requires none
      - `fields` object, required: Each evidence field the policy defines, by field key
      - `requiredByCapability` object, required: The field keys an intent under each capability must carry, in order. send also covers x402 and mpp actions. A capability left out needs no evidence

## Other responses

- `404`: No policy assigned

---

[API](https://skmtc.dev/catena/apis/catena-agent-api.md) - [All operations](https://skmtc.dev/catena/apis/catena-agent-api/llms.txt) - [OpenAPI document](https://skmtc.dev/catena/apis/catena-agent-api/revisions/9b72e32d21f1?raw)
