CoderHelm Docs
APIWebhooks

AWS SNS alerts

POST
/webhooks/alerts/sns

Subscribe CoderHelm to an SNS topic with an HTTPS subscription to this address and add the topic under Alert routes in the dashboard. Every message's SNS signature is checked (signature versions 1 and 2) and the signing certificate must come from SNS. The subscription is confirmed automatically once the topic has an enabled route; messages from topics without one are accepted and ignored. A message that matches one of the route's rules becomes a run that opens a pull request.

Request Body

The SNS message.

application/json
  1. body

An Amazon SNS message, as SNS posts it to an HTTPS subscription.

Example
{  "Message": "{\"AlarmName\":\"api-5xx\",\"NewStateValue\":\"ALARM\"}",  "MessageId": "6c3f7c6e-2f4b-5b8e-9b0e-1f0a2b3c4d5e",  "Signature": "EXAMPLE...",  "SignatureVersion": "2",  "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000.pem",  "Subject": "ALARM: \"api-5xx\" in US East (N. Virginia)",  "Timestamp": "2026-10-22T14:00:00.000Z",  "TopicArn": "arn:aws:sns:us-east-1:123456789012:prod-alarms",  "Type": "Notification"}
Message*string

The message: a CloudWatch alarm, an AWS Chatbot custom notification, an EventBridge event (as JSON text) or plain text.

Example"{\"AlarmName\":\"api-5xx\",\"NewStateValue\":\"ALARM\"}"
MessageId*string

SNS's id for the message.

Example"6c3f7c6e-2f4b-5b8e-9b0e-1f0a2b3c4d5e"
Signature*string

SNS's signature over the message's fields.

Example"EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q="
SignatureVersion*string

1 (SHA1) or 2 (SHA256).

Example"2"
SigningCertURL*string

The certificate that signed it; must be served by SNS.

Example"https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000000000000000000000.pem"
Subject?|

The subject, when the publisher set one.

Example"ALARM: \"api-5xx\" in US East (N. Virginia)"
SubscribeURL?|

For a subscription confirmation: the address CoderHelm visits to confirm.

Examplenull
Timestamp*string

When SNS sent it.

Example"2026-10-22T14:00:00.000Z"
TopicArn*string

The topic. It must have an enabled alert route in the dashboard.

Example"arn:aws:sns:us-east-1:123456789012:prod-alarms"
Type*string

SubscriptionConfirmation, Notification or UnsubscribeConfirmation.

Example"Notification"

Response Body

Accepted.

curl -X POST 'https://api.coderhelm.com/webhooks/alerts/sns' \  -H 'Content-Type: application/json' \  -d '{  "Message": "{\"AlarmName\":\"api-5xx\",\"NewStateValue\":\"ALARM\"}",  "MessageId": "6c3f7c6e-2f4b-5b8e-9b0e-1f0a2b3c4d5e",  "Signature": "EXAMPLE...",  "SignatureVersion": "2",  "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000.pem",  "Subject": "ALARM: \"api-5xx\" in US East (N. Virginia)",  "Timestamp": "2026-10-22T14:00:00.000Z",  "TopicArn": "arn:aws:sns:us-east-1:123456789012:prod-alarms",  "Type": "Notification"}'
Empty
Edit on GitHub