AWS SNS alerts
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.
The SNS message.
application/json- body
An Amazon SNS message, as SNS posts it to an HTTPS subscription.
{ "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*stringThe message: a CloudWatch alarm, an AWS Chatbot custom notification, an EventBridge event (as JSON text) or plain text.
"{\"AlarmName\":\"api-5xx\",\"NewStateValue\":\"ALARM\"}"MessageId*stringSNS's id for the message.
"6c3f7c6e-2f4b-5b8e-9b0e-1f0a2b3c4d5e"Signature*stringSNS's signature over the message's fields.
"EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q="SignatureVersion*string1 (SHA1) or 2 (SHA256).
"2"SigningCertURL*stringThe certificate that signed it; must be served by SNS.
"https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000000000000000000000.pem"Subject?|The subject, when the publisher set one.
"ALARM: \"api-5xx\" in US East (N. Virginia)"SubscribeURL?|For a subscription confirmation: the address CoderHelm visits to confirm.
nullTimestamp*stringWhen SNS sent it.
"2026-10-22T14:00:00.000Z"TopicArn*stringThe topic. It must have an enabled alert route in the dashboard.
"arn:aws:sns:us-east-1:123456789012:prod-alarms"Type*stringSubscriptionConfirmation, Notification or UnsubscribeConfirmation.
"Notification"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"}'Get this month's usage GET
Returns the tokens the team used this calendar month (UTC), split into new input, output, cache reads and cache writes, per feature, and against each limit the team set. When a limit is reached, endpoints that start work answer `429` with `token_limit_reached` until the month turns or an admin raises it.
GitHub App events POST
Where GitHub sends every event of the CoderHelm GitHub App. Installing the app sets this up; you only call it yourself when you self-host. Each request is signed with the app's webhook secret in `X-Hub-Signature-256` (`sha256=` and the hex HMAC-SHA256 of the raw body), compared in constant time. The event type comes from `X-GitHub-Event` and the body must name an installation. Events CoderHelm doesn't act on, and events from an installation not linked to a team, are accepted with `200` and ignored.