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. Accepts API keys with the incidents:write scope, subject to current role and resource grants.
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”Request succeeded. The response body contains the result.
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"}The request is invalid. Check the supplied fields and values.
Authentication is missing or invalid.
The authenticated caller does not have permission to perform this operation.
No accessible resource matches the supplied identifier.