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.
Setting Up a Webhook Connection
Section titled “Setting Up a Webhook Connection”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.
Create the Webhook Connection
Section titled “Create the Webhook Connection”Navigate to Connections in the left sidebar and click Add.
- In the service search box, type webhook and select the Webhook tile.
- Enter a Name for the connection
- Optionally enter an HMAC Secret
- 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.
Add the Webhook Connection to a Project
Section titled “Add the Webhook Connection to a Project”Connections must be associated with a project before NeuBird can route ingested events to the correct investigation context.
- Navigate to Projects in the left sidebar.
- Edit the project you want to receive events, or create a new one.
- In the project settings, find the Connections section.
- Select the Webhook connection you created in Section 1.1 and save the project.
API Reference
Section titled “API Reference”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.
curl Examples
Section titled “curl Examples”Basic Request
Section titled “Basic Request”Use the ingest token from your Webhook connection in the Authorization header:
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\"}}" } }'With HMAC Signature
Section titled “With HMAC Signature”When an HMAC secret is configured on the Webhook connection, compute the signature from the raw request body before sending:
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 '{printcurl -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"