Webhooks

Receive real-time HTTP notifications when events occur in BoundaryAI.

Overview

Webhooks allow you to receive real-time notifications when events occur in BoundaryAI. Instead of polling our API, your server receives HTTP POST requests automatically.

Use cases:

  • Sync pushed content to your data warehouse

  • Trigger workflows when surveys are created/published

  • Build real-time dashboards

  • Integrate with Slack, Teams, or other tools

Prerequisites

  1. Admin access - Only organization admins can manage webhooks

  2. HTTPS endpoint - Your webhook URL must use HTTPS (HTTP not allowed)

  3. Public URL - The URL must be publicly accessible (no localhost, private IPs, or internal domains)

  4. Response time - Your endpoint should respond within 10 seconds

Available Events

Event
Description
When it fires

content.pushed

Content was pushed via API

After successful /api/input/content/push or /api/input/content/push/bulk

survey.created

A new survey was created

After successful /api/input/survey/create

survey.published

A survey was published

After successful /api/input/survey/publish

series.created

A new feedback group was created

After successful /api/input/survey_series/create

Webhook Payload

HTTP Headers

Every webhook request includes these headers:

Header
Description
Example

X-Boundary-Signature

HMAC-SHA256 signature for verification

sha256=abc123...

X-Boundary-Event

The event type that triggered this webhook

content.pushed

Content-Type

Always JSON

application/json

User-Agent

Identifies BoundaryAI as the sender

BoundaryAI-Webhook/1.0

Managing Webhooks

All webhook management endpoints require JWT authentication (not API key).

List Webhooks

Response

Create Webhook

Response

Update Webhook

Response

Single Webhook

Response

Delete Webhook

Response

Verifying Signatures

Always verify the signature to confirm the webhook is from BoundaryAI:

Python

Node.js

Retry Policy

If your endpoint fails, we retry with exponential backoff:

Attempt
Delay

1st retry

1 minute

2nd retry

5 minutes

3rd retry

15 minutes

After 10 consecutive failures, the webhook is automatically disabled.


Error Reference

Error Response Format

Error Codes

Authentication Errors (4xx)

Code
HTTP
Description
Solution

MISSING_AUTH

401

No Authorization header

Add Authorization: Bearer {key}

INVALID_AUTH_FORMAT

401

Malformed header

Use Bearer {key} format

INVALID_TOKEN

401

Key doesn't exist or wrong format

Check key, create new if needed

REVOKED_KEY

401

Key was revoked

Create a new API key

Permission Errors (4xx)

Code
HTTP
Description
Solution

INSUFFICIENT_PERMISSION

403

Key lacks required permission

Use key with correct permission

FORBIDDEN

403

Resource belongs to another org

Check IDs are correct

Resource Errors (4xx)

Code
HTTP
Description
Solution

SURVEY_SERIES_NOT_FOUND

404

Feedback group doesn't exist

Verify survey_series_id

SURVEY_NOT_FOUND

404

Data source doesn't exist

Verify survey_id

QUESTION_NOT_FOUND

404

Question doesn't exist

Verify question_id

Validation Errors (4xx)

Code
HTTP
Description
Solution

VALIDATION_ERROR

400

Invalid request data

Check details for specific fields

INVALID_QUESTION_TYPE

400

Pushing text to non-text question

Use question with accepts_text: true

Rate & Quota Errors (4xx)

Code
HTTP
Description
Solution

RATE_LIMITED

429

Too many requests

Wait for Retry-After seconds

INSUFFICIENT_APS

402

Not enough analysis points

Purchase more APS or use test key

Last updated