---
title: "Get the exact action preview by opaque ID"
method: GET
path: "/api/assistant/action-plans/{id}"
tags: ["Mailzero Assistant"]
---

# Get the exact action preview by opaque ID

`GET /api/assistant/action-plans/{id}`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/assistant/action-plans/{id}`
- Auth: HTTP bearer

Returns the exact reply identity, recipients, body, commitments, and side effects of a prepared Action plan, plus its expiry and source revision, so a client can show what will happen before the user sends through the existing reply endpoint with assistant_plan_id. Requires the assistant:read scope.

## Path parameters

- `id` string, required

## Response `200`

Exact action preview

- object
  - `id` string
  - `status` 'proposed' | 'approved' | 'executed' | 'stale' | 'expired'
  - `expires_at` string
  - `source_revision` integer
  - `effects` object[]
    - `kind` 'reply'
    - `mailbox_id` string
    - `reply_to_message_id` string
    - `body` string
    - `commitments` object[]
    - `expected_reply` object, nullable

## Other responses

- `401`: Missing or invalid API key
- `404`: Action plan not found
- `429`: Rate limit exceeded - wait and retry

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
