# Reports

Source: https://www.pingtower.com/docs/service/reports/

A running incident report with a shareable status page. Write it in Markdown from the phone while the incident is still going.

A report belongs to a project and optionally labels one alert. It gets an unguessable public URL at `/public/reports/{uuid}` on the service's host, and can be put behind a password.

<span class="pill post">POST</span> `/v1/projects/{id}/reports`

```json
{
  "title": "Checkout degraded, 2026-09-01",
  "description": "Gateway timeouts from 03:12 UTC. Payments retried; no orders lost.",
  "alert_id": "…",
  "view_password": "correct-horse"
}
```

| Field | Meaning |
| --- | --- |
| `title` | Up to 256 characters. |
| `description` | Up to 4096. |
| `alert_id` | Optional. Must name a live alert when the report is created. |
| `view_password` | Optional. Readers of the public page must enter it. On update: omitted keeps it, `""` clears it, a value replaces it. |

The response carries `public_uuid` and `password_protected`. <span class="pill post">POST</span> `/v1/projects/{id}/reports/{rid}/rotate-uuid` invalidates every link handed out so far and mints a new one.

## Entries

Entries are the timeline. Each is Markdown, rendered once to sanitized HTML at write time.

<span class="pill post">POST</span> `/v1/projects/{id}/reports/{rid}/entries`

```json
{ "title": "Root cause", "content_md": "Upstream gateway rotated its TLS cert …", "entry_type": "analysis" }
```

`entry_type` is `update`, `analysis` or `resolution`, default `update`. <span class="pill put">PUT</span> and <span class="pill del">DELETE</span> `…/entries/{eid}` edit and remove.

## The public page

<span class="pill get">GET</span> `/public/reports/{uuid}` renders the report and its entries without any credential. A password-protected report shows a prompt; <span class="pill post">POST</span> `/public/reports/{uuid}/authenticate` with the password unlocks it. Deleting the report, or its project, makes the page stop resolving.

In the app: Reports → New, then Share for the link.
