---
title: "Explainable dry-run preview: why each celebration will / won't fire"
method: GET
path: "/v1/skill-installations/{installation_id}/preview"
tags: ["skill-hub"]
---

# Explainable dry-run preview: why each celebration will / won't fire

`GET /v1/skill-installations/{installation_id}/preview`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/skill-installations/{installation_id}/preview`
- Auth: HTTP bearer

The arm-but-don't-fire cockpit: for each subject, whether Patricia WOULD post, the exact deterministic message she WOULD post (display handle only, never a birth date), the local delivery date, and a human-readable reason when it WON'T fire. Computed with the SAME deterministic built-ins the projector uses, so the preview matches what the drainer would do. Posts nothing by construction. PII-safe.

## Path parameters

- `installation_id` string, uuid, required

## Query parameters

- `limit` integer

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

Successful Response

- InstallationPreviewSummary: The full explainable dry-run preview for an installation ("why will / won't fire"). Posts nothing.
  - `installation_id` string, uuid, required
  - `activated` boolean, required
  - `killed` boolean, required
  - `channel_id` string, nullable, required
  - `status` string, required
  - `rows` PreviewRowSummary[], required
    - `subject_key` string, required
    - `entity_id` string, uuid, nullable, required
    - `event_type_code` string, required
    - `would_fire` boolean, required
    - `would_post` string, nullable, required
    - `delivery_date` string, date, nullable, required
    - `channel_id` string, required
    - `reason_code` string, nullable, required
    - `basis` object, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
