Webbu Docs

REST API

Use the Webbu API with cURL or any HTTP client.

Base URL: https://webbu.dev/api. Management calls need X-API-Key; ingest doesn't. Every endpoint is listed in the API Reference.

export WEBBU_API_KEY="wbk_your_key_here"

Ingest a webhook

POST /v1/ingest/{projectId}/{bufferId}

curl -X POST https://webbu.dev/api/v1/ingest/p_shop/b_orders \
  -H "Content-Type: application/json" \
  -d '{"event": "order.created", "customerId": "cus_789"}'
curl -X POST https://webbu.dev/api/v1/ingest/p_shop/b_orders \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $WEBBU_API_KEY" \
  -H "X-Idempotency-Key: evt_unique_123" \
  -d '{"event": "order.created", "customerId": "cus_789", "orderId": "ord_100"}'
Try it in the API reference

202: {"status": "accepted", "messageId": "evt_unique_123", "itemId": "0e6d1c2b-…"}

Errors: 400 (group key missing, buffer disabled, invalid JSON), 401 (invalid key or source signature), 403, 404, 429 (insufficient credits). See Error Codes.


Projects

# List
curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/projects

# Create (admin or owner)
curl -X POST https://webbu.dev/api/v1/admin/projects \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{"projectId": "p_shop", "name": "Shop"}'

# Get
curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/projects/p_shop

# Update name or enabled (admin or owner)
curl -X PATCH https://webbu.dev/api/v1/admin/projects/p_shop \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{"name": "Shop (production)"}'

# Delete; the project must have no buffers (admin or owner)
curl -X DELETE -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/projects/p_shop
Try it in the API reference

Buffers

Create

curl -X POST https://webbu.dev/api/v1/admin/buffers \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{
    "bufferId": "b_orders",
    "projectId": "p_shop",
    "name": "Order events",
    "groupKey": { "mode": "jsonpath", "path": "$.customerId" },
    "batch": { "maxItems": 100, "idleTimeoutMs": 5000, "maxWaitFromFirstMs": 30000 },
    "delivery": { "url": "https://your-app.example.com/webhooks/batch" }
  }'

All fields are described in Create a Buffer.

Try it in the API reference

List, get, update, clone, test, delete

# List (optionally for one project)
curl -H "X-API-Key: $WEBBU_API_KEY" "https://webbu.dev/api/v1/admin/buffers?projectId=p_shop"

# Get
curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/buffers/b_orders

# Update: send whole sections (batch, delivery, groupKey, …); a section you send replaces the stored one
curl -X PATCH https://webbu.dev/api/v1/admin/buffers/b_orders \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{"batch": {"maxItems": 200, "maxBytes": 262144, "idleTimeoutMs": 5000, "maxWaitFromFirstMs": 30000}}'

# Clone (new ID, optional new name)
curl -X POST https://webbu.dev/api/v1/admin/buffers/b_orders/clone \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{"name": "Order events (staging)"}'

# Send a test payload straight to the destination
curl -X POST https://webbu.dev/api/v1/admin/buffers/b_orders/test \
  -H "Content-Type: application/json" -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{"payload": {"test": true}}'

# Delete (pending items are not delivered)
curl -X DELETE -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/buffers/b_orders
Try it in the API reference

Analytics

# Today's totals and trend vs. yesterday
curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/analytics/summary

# Daily series; days defaults to 7; filter by projectId or bufferId
curl -H "X-API-Key: $WEBBU_API_KEY" \
  "https://webbu.dev/api/v1/analytics/timeseries?days=7&projectId=p_shop"
Try it in the API reference

Dead letter queue

# List (optionally for one buffer; limit defaults to 100, max 500)
curl -H "X-API-Key: $WEBBU_API_KEY" "https://webbu.dev/api/v1/dlq?bufferId=b_orders"

# Retry (admin or owner): flushes the entry's group now and removes the entry
curl -X POST -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/dlq/DLQ_ID/retry

# Delete (admin or owner)
curl -X DELETE -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/dlq/DLQ_ID
Try it in the API reference

Credits

curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/credits
curl -H "X-API-Key: $WEBBU_API_KEY" https://webbu.dev/api/v1/admin/credits/transactions
Try it in the API reference

Status codes

CodeMeaning
200Success
201Created
202Accepted (ingest)
204Deleted
400Invalid request
401Missing or invalid credentials
403Not allowed (role, scope or account)
404Not found
409Conflict (ID taken, key limit, already revoked)
429Insufficient credits (ingest)
500Server error

On this page