Webhooks
Manage webhook endpoints and delivery logs. HMAC-signed events for post.published, post.failed, comment.created, and message.created.
Authorization
ApiKeyAuth API key from your Aether dashboard
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/webhooks"{ "success": true, "data": [ { "id": "wh_abc123", "organizationId": "string", "url": "http://example.com", "events": [ "post.published" ], "description": "string", "isActive": true, "secretPrefix": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" } ]}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}Creates a webhook subscription. Returns the webhook with a one-time plainSecret field for signing verification. Store this secret securely — it is never returned again. Verify incoming payloads: sha256=HMAC-SHA256(body, plainSecret) must match the X-Aether-Signature header.
Authorization
ApiKeyAuth API key from your Aether dashboard
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/webhooks" \ -H "Content-Type: application/json" \ -d '{ "url": "https://yourapp.com/webhooks/aether", "events": [ "post.published" ] }'{ "success": true, "data": { "id": "wh_abc123", "organizationId": "string", "url": "http://example.com", "events": [ "post.published" ], "description": "string", "isActive": true, "secretPrefix": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "plainSecret": "string" }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}Update the URL, subscribed events, active status, or description.
Authorization
ApiKeyAuth API key from your Aether dashboard
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/webhooks/string" \ -H "Content-Type: application/json" \ -d '{}'{ "success": true, "data": { "id": "wh_abc123", "organizationId": "string", "url": "http://example.com", "events": [ "post.published" ], "description": "string", "isActive": true, "secretPrefix": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}Authorization
ApiKeyAuth API key from your Aether dashboard
In: header
Path Parameters
Response Body
application/json
application/json
curl -X DELETE "https://example.com/webhooks/string"{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}Authorization
ApiKeyAuth API key from your Aether dashboard
In: header
Path Parameters
Query Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/webhooks/string/deliveries"{ "success": true, "data": { "items": [ { "id": "string", "webhookId": "string", "eventType": "post.published", "httpStatus": 0, "attemptNumber": 0, "nextRetryAt": "2019-08-24T14:15:22Z", "status": "pending", "createdAt": "2019-08-24T14:15:22Z" } ], "total": 0, "hasMore": true }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}{ "success": false, "error": { "code": "PROFILE_NOT_FOUND", "message": "string", "details": {} }}