Add a note or status update
const url = 'https://api.perstat.io/organizations/example/incidents/example/note';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"body":"example","state":"example","visibility":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.perstat.io/organizations/example/incidents/example/note \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "body": "example", "state": "example", "visibility": "example" }'Appends a timeline note to the incident and optionally sets the lifecycle state (investigating, identified, or monitoring). Notes are internal by default; only an explicit public visibility makes them appear on status pages. An empty body without a state change returns 400.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
"public" → das Update erscheint auf der öffentlichen Status-Seite.
Alles andere (None/“”) bleibt intern (sicherer Default, kein Leak).
Examplegenerated
{ "body": "example", "state": "example", "visibility": "example"}Responses
Section titled “Responses”object
Abhaengige Alarme: bis wann die Alarmkette zurueckgehalten wird (Unix-Sekunden), und WER sie haelt. Beides gehoert nach aussen , ein zurueckgehaltener Alarm, den man nicht sehen kann, ist von einem verschluckten nicht zu unterscheiden.
Immutable trigger snapshot; null for legacy/manual/simulated incidents.
object
object
Target attribution such as target_dns or target_app.
object
Project is the stored product context; Perstat has no environment field.
First quorum-confirmed failure of the uninterrupted measurement phase.
Stable project public id for monitor drill-down, including legacy or manual incidents without an immutable evidence snapshot.
Examplegenerated
{ "acknowledged_at_unix": 1, "acknowledged_by_email": "example", "alarm_held_by_name": "example", "alarm_held_until_unix": 1, "auto_resolved": true, "cause": "example", "check_kind": "example", "commander_email": "example", "down_regions": [ "example" ], "evidence": { "actual_summary": "example", "check_kind": "example", "checks": [ { "cause_layer": "example", "check_id": "example", "checked_at_unix": 1, "detail": "example", "latency_ms": 1, "region": "example", "response_code": 1, "status": "example" } ], "confirmation_state": "example", "confirmed_outage_since_unix": 1, "consecutive_failures_observed": 1, "consecutive_failures_required": 1, "expected_regions": 1, "expected_summary": "example", "failed_regions": 1, "failure_class": "example", "findings": [ { "actual_summary": "example", "expected_summary": "example", "failure_class": "example", "latest_checked_at_unix": 1, "occurrence_count": 1, "regions": [ "example" ] } ], "first_failure_at_unix": 1, "minimum_confirmed_outage_seconds": 1, "monitor_id": "example", "monitor_name": "example", "project_id": "example", "project_name": "example", "reason": "example", "reporting_regions": 1, "required_regions": 1, "triggered_at_unix": 1, "version": 1 }, "failure_phase_started_at_unix": 1, "id": "example", "lifecycle_state": "example", "monitor_id": "example", "monitor_name": "example", "project_id": "example", "project_name": "example", "region_count": 1, "resolved_at_unix": 1, "severity": "example", "severity_level": "example", "started_at_unix": 1, "status": "example", "summary": "example"}