# Read your own policy API

> With GET /v1/agents/{agentId}/policy, an agent reads its own modes, lists, and limits. There's no API to change them.

```http
GET /v1/agents/{agentId}/policy
```

Needs the **Self** (`agent:read_self`) scope. It returns the same content as MCP `get_my_policy`; the MCP version also adds the default sending address (`from_address`).

| Field | Meaning |
|---|---|
| `policy_version` | The current policy version. It goes up each time the owner changes something. |
| `outbound.mode` | Outbound mode: `all`, `allowlist`, `blocklist`, or `none`. `legacy` for an old mode. |
| `outbound.allow` | The outbound allowlist |
| `outbound.block_count` | How many entries are on the outbound blocklist (not the entries themselves) |
| `inbound.mode` · `inbound.allow` · `inbound.block_count` | The same for inbound |
| `limits` | The limits that actually apply: `per_minute`, `per_hour`, `per_day`, `recipients_per_message`, `org_daily_recipients` |
| `plan` | The organization's plan |
| `how_to_change` | How to change the policy (the owner, in the console) |

If the policy is being changed at that moment, you get `409 policy_changing`. Read it again shortly.

The agent can't change its policy. If it needs to email someone who's blocked, it asks the owner to add them to the allowlist.

---

Source: https://docs.atmark.ai/en/api/policy · Last updated 2026-09-27
