Skip to content

Create a webhook or Slack target

POST
/organizations/{org_id}/webhooks
curl --request POST \
--url https://api.perstat.io/organizations/example/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "credential": "example", "events": [ "example" ], "kind": "example", "name": "example", "region": "example", "url": "example" }'

Creates an outbound notification target of kind webhook (generic, HMAC-signed) or slack (incoming webhook URL). Subscribed events default to all supported event types; the URL and event names are validated. For generic webhooks the signing secret is generated server-side and returned only in this response; afterwards it is available only masked or via rotation. Requires project management rights.

org_id
required
string
Media typeapplication/json
object
credential

Schlüssel des Anbieters: Integrationsschlüssel (PagerDuty) bzw. API-Schlüssel (Opsgenie). Pflicht für genau diese beiden Arten.

string | null
events

Default: alle Ereignisse.

Array<string> | null
kind

Benannte Art aus dem Katalog. Weggelassen = webhook (Bestandsverhalten der ersten Fassung, als es nur Webhook und Slack gab).

string | null
name
required
string
region

Anbieter-Region für pagerduty/opsgenie: global (Default) | eu.

string | null
url

Anbieter-URL. Pflicht für slack, teams, discord, google_chat, webhook; bei pagerduty/opsgenie ignoriert (der Server leitet den Endpunkt aus Art und Region ab).

string | null
Examplegenerated
{
"credential": "example",
"events": [
"example"
],
"kind": "example",
"name": "example",
"region": "example",
"url": "example"
}
Media typeapplication/json
object
secret

Volles Signatur-Secret, NUR in dieser Antwort und NUR bei webhook. Anbieter-Schlüssel erscheinen hier nicht: die kennt der Kunde bereits.

string | null
target
required
object
active
required
boolean
created_at_unix
required
integer format: int64
events
required
Array<string>
id
required

Public_id (wht_…).

string
kind
required

Benannte Art: slack | teams | discord | google_chat | pagerduty | opsgenie | webhook.

string
last_delivery_at_unix
integer | null format: int64
last_delivery_ok
boolean | null
last_error
string | null
name
required
string
region

Anbieter-Region bei pagerduty/opsgenie (global | eu), sonst null. Wird aus dem gespeicherten Endpunkt zurückgewonnen.

string | null
secret_hint

Maskierter Hinweis auf das gespeicherte Geheimnis (Signatur-Secret beim generischen Webhook, Anbieter-Schlüssel bei PagerDuty/Opsgenie). Das volle Signatur-Secret gibt es genau EINMAL beim Anlegen bzw. der Rotation; einen Anbieter-Schlüssel gibt die API NIE zurück.

string | null
url
required
string
Examplegenerated
{
"secret": "example",
"target": {
"active": true,
"created_at_unix": 1,
"events": [
"example"
],
"id": "example",
"kind": "example",
"last_delivery_at_unix": 1,
"last_delivery_ok": true,
"last_error": "example",
"name": "example",
"region": "example",
"secret_hint": "example",
"url": "example"
}
}