Skip to content

Webhook

The Event Ingestion API allows you to ingest custom events into NeuBird. Before making API calls, you must create a Webhook connection and obtain an ingest token. This guide covers both setup and usage.

Before using the Event Ingestion API, you need to create a Webhook connection in NeuBird. This connection provides the ingest token used to authenticate API requests.

Navigate to Connections in the left sidebar and click Add.

  1. In the service search box, type webhook and select the Webhook tile.
  2. Enter a Name for the connection
  3. Optionally enter an HMAC Secret
  4. Click Create Connection. After creating, NeuBird will display the connection’s ingest token — copy and store it securely, as it will be used in the Authorization header of all API requests.

Connections must be associated with a project before NeuBird can route ingested events to the correct investigation context.

  1. Navigate to Projects in the left sidebar.
  2. Edit the project you want to receive events, or create a new one.
  3. In the project settings, find the Connections section.
  4. Select the Webhook connection you created in Section 1.1 and save the project.

To learn more about the webhook endpoint, including authentication, headers, payload structure, and example responses, see the API reference below. You can also send test webhook requests directly from the reference page.

Use the ingest token from your Webhook connection in the Authorization header:

Terminal window
curl -X POST https://example.app.neubird.ai/api/v1/event \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ingest_token>" \
-d '{
"event": {
"id": "1aea4faa-eb75-42ad-8782-bb44c64e7815",
"title": "CPU usage exceeded 95% on host prod-web-03",
"created_at": "2026-03-26T10:00:00Z",
"investigate": true,
"payload": "{\"source\": \"monitoring\",
\"severity\": \"critical\",
\"message\": \"CPU usage exceeded 95% on host prod-web-03\",
\"labels\": {\"env\": \"production\", \"service\": \"web\"}}"
}
}'

When an HMAC secret is configured on the Webhook connection, compute the signature from the raw request body before sending:

Terminal window
BODY='{
"event": {
"id": "1aea4faa-eb75-42ad-8782-bb44c64e7815",
"title": "CPU usage exceeded 95% on host prod-web-03",
"created_at": "2026-03-26T10:00:00Z",
"investigate": true,
"payload": "{\"source\": \"monitoring\",
\"severity\": \"critical\",
\"message\": \"CPU usage exceeded 95% on host prod-web-03\",
\"labels\": {\"env\": \"production\", \"service\": \"web\"}}"
}
}'
SIGNATURE="sha256=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "<your-hmac-secret>" | awk '{print
curl -X POST https://example.app.neubird.ai/api/v1/event \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ingest_token>" \
-H "X-Hub-Signature-256: $SIGNATURE" \
-d "$BODY"