Webhook-Abonnements
Manage outbound webhook subscriptions. exoCortex POSTs a signed JSON event to your HTTPS endpoint whenever a subscribed event occurs (see Webhooks). These endpoints require an administrator session (Core → Integrations → Webhooks uses the same API).
Abonnements auflisten
Abschnitt betitelt „Abonnements auflisten“GET /api/webhooks/{tenant}/subscriptions
Authentifizierung: Sitzung eines Administrators von exoCortex Core
Parameter
Abschnitt betitelt „Parameter“| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
tenant |
Pfad | string | ja | Tenant code (case-insensitive). |
Antworten
Abschnitt betitelt „Antworten“| Status | Beschreibung |
|---|---|
200 |
Subscriptions of the tenant (secrets are masked). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Beispiel 200
{ "ok": true, "hooks": [ { "id": "wh_mhf2k1a9x3", "url": "https://hooks.example.com/exocortex", "events": [ "ticket.created", "ticket.status_changed" ], "format": "json", "enabled": true, "headers": {}, "secret": "***set***", "created_at": "2026-11-01T08:00:00.000Z", "created_by": "jane.doe" } ]}Beispiel mit curl
Abschnitt betitelt „Beispiel mit curl“curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Abonnement erstellen oder ändern
Abschnitt betitelt „Abonnement erstellen oder ändern“POST /api/webhooks/{tenant}/subscriptions
Without id, this creates a new subscription. With id, it updates that subscription.
If you don’t send a secret on creation, exoCortex generates one and returns it
once in the secret response field. Store it to verify signatures.
Authentifizierung: Sitzung eines Administrators von exoCortex Core
Parameter
Abschnitt betitelt „Parameter“| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
tenant |
Pfad | string | ja | Tenant code (case-insensitive). |
Request-Body
Abschnitt betitelt „Request-Body“application/json
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
id |
string | nein | Send it to update an existing subscription. Omit it to create one. |
url |
string (uri) | ja | HTTPS endpoint that receives the events. |
events |
array<string> | nein | Event types to receive. * means all. Defaults to ["*"]. Besides the ticket catalog, notification-center events defined by the tenant’s notification rules (for example approval_requested) can be subscribed by name. |
format |
string (json, datadog, pagerduty, slack-block) |
nein | |
secret |
string | nein | Signing secret. Generated if omitted on creation. |
enabled |
boolean | nein | |
headers |
object | nein | Extra static headers added to every delivery (for example an auth header for your gateway). |
{ "url": "https://hooks.example.com/exocortex", "events": [ "ticket.created", "ticket.status_changed", "ticket.resolved" ], "format": "json"}Antworten
Abschnitt betitelt „Antworten“| Status | Beschreibung |
|---|---|
200 |
Subscription saved. |
400 |
Invalid request. |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Beispiel 200
{ "ok": true, "id": "wh_mhf2k1a9x3", "count": 1, "secret": "whsec_4b9e1f0c7d2a8e6b3c5f9a1d0e7b2c4a"}Beispiel mit curl
Abschnitt betitelt „Beispiel mit curl“curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION" \ -H "Content-Type: application/json" \ --data '{"url":"https://hooks.example.com/exocortex","events":["ticket.created","ticket.status_changed","ticket.resolved"],"format":"json"}'Abonnement löschen
Abschnitt betitelt „Abonnement löschen“DELETE /api/webhooks/{tenant}/subscriptions/{id}
Authentifizierung: Sitzung eines Administrators von exoCortex Core
Parameter
Abschnitt betitelt „Parameter“| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
tenant |
Pfad | string | ja | Tenant code (case-insensitive). |
id |
Pfad | string | ja |
Antworten
Abschnitt betitelt „Antworten“| Status | Beschreibung |
|---|---|
200 |
Deleted (removed is 0 if the id did not exist). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Beispiel 200
{ "ok": true, "removed": 1}Beispiel mit curl
Abschnitt betitelt „Beispiel mit curl“curl -X DELETE "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Testereignis senden
Abschnitt betitelt „Testereignis senden“POST /api/webhooks/{tenant}/subscriptions/{id}/test
Sends a signed webhook.test event to the subscription URL and reports the HTTP status returned by your endpoint.
Authentifizierung: Sitzung eines Administrators von exoCortex Core
Parameter
Abschnitt betitelt „Parameter“| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
tenant |
Pfad | string | ja | Tenant code (case-insensitive). |
id |
Pfad | string | ja |
Antworten
Abschnitt betitelt „Antworten“| Status | Beschreibung |
|---|---|
200 |
Delivery result (ok reflects your endpoint’s response). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Beispiel 200
{ "ok": true, "status": 204}Beispiel mit curl
Abschnitt betitelt „Beispiel mit curl“curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3/test" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Ereignistypen auflisten
Abschnitt betitelt „Ereignistypen auflisten“GET /api/webhooks/{tenant}/event-types
Authentifizierung: Sitzung eines Administrators von exoCortex Core
Parameter
Abschnitt betitelt „Parameter“| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
tenant |
Pfad | string | ja | Tenant code (case-insensitive). |
Antworten
Abschnitt betitelt „Antworten“| Status | Beschreibung |
|---|---|
200 |
Event catalog. |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Beispiel 200
{ "ok": true, "wildcard": "*", "event_types": [ "ticket.created", "ticket.comment_added", "ticket.field_changed", "ticket.assignee_changed", "ticket.status_changed", "ticket.sla_warning", "ticket.sla_breach", "ticket.resolved", "ticket.closed", "ticket.reopened", "ticket.priority_changed", "routing.no_match", "routing.manual_routed", "ticket.link_created", "ticket.link_deleted" ]}Beispiel mit curl
Abschnitt betitelt „Beispiel mit curl“curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/event-types" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Seite generiert aus der OpenAPI-Spezifikation der Integrations-API, Version 1.1.0.