---
title: "List an agent’s change proposals"
method: GET
path: "/v1/agents/{id}/proposals"
tags: ["Content Research Agents"]
deprecated: true
---

# List an agent’s change proposals

`GET /v1/agents/{id}/proposals`

## Request

- Base URL: `https://api.virlo.ai`
- URL: `https://api.virlo.ai/v1/agents/{id}/proposals`
- Auth: HTTP bearer

> **Deprecated.**

Deprecated: autopilot is on for every agent and applies its changes itself, so there is nothing to review. Read `GET /v1/agents/:id/activity` for what changed and why. Still works during the deprecation window. Filter by `status` (pending / applied / auto_applied / dismissed / reverted). Free.

## Path parameters

- `id` string, required

## Query parameters

- `status` 'pending' | 'applied' | 'auto_applied' | 'dismissed' | 'reverted'
- `limit` number

## Response `200`

Proposals

- AgentProposalsListResponseDto
  - `data` AgentProposalsListDataDto, required
    - `agent_id` string, uuid, required
    - `count` number, required
    - `proposals` AgentProposalDto[], required
      - `id` string, uuid, required
      - `content_research_agent_id` string, uuid, required
      - `type` 'keyword_refresh' | 'filter_change' | 'cadence_change' | 'pause', required
      - `source` 'drift' | 'opportunity' | 'net_new' | 'user', required
      - `rationale` string, required
      - `diff` object, required: { before, after } snapshot used for preview + revert
      - `status` 'pending' | 'auto_applied' | 'applied' | 'dismissed' | 'reverted', required
      - `created_at` string, required
      - `decided_at` string, nullable

## Other responses

- `401`: Missing or invalid API key (`missing_api_key` / `invalid_api_key`)
- `404`: Agent not found
- `429`: Rate limit exceeded (`rate_limit_exceeded`); see the Retry-After header

---

[API](https://skmtc.dev/virlo/apis/virlo-public-api.md) · [All operations](https://skmtc.dev/virlo/apis/virlo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/virlo/apis/virlo-public-api/revisions/3b69c6145087?raw)
