Sources

Understand how Sources work in Bunnylynk, including slug routing, verification secrets, and multi-provider support.

What is a Source?

A Source is a designated ingestion channel in Bunnylynk. Each source is identified by a unique Slug and assigned an ingestion URL:

https://gateway.bunnylynk.com/h/:slug

For example, a source with slug stripe-checkout receives webhooks at:

https://gateway.bunnylynk.com/h/stripe-checkout

Source Properties

PropertyTypeDescription
idstringUnique internal identifier (e.g. src_01JMABCDEF).
namestringHuman-readable label (e.g. "Stripe Production").
slugstringURL-safe slug used in the webhook URL path.
providerstringOptional preset (e.g. stripe, shopify, github, custom).
secretstringCryptographic secret for verifying webhook signatures.
disabledbooleanWhen true, rejects incoming webhooks with HTTP 404/410.

Supported Providers & Automatic Parsing

When creating a Source, specifying the provider enables built-in signature verification and event extraction:

  • Stripe: Verifies Stripe-Signature header with tolerance clock skew checks.
  • Shopify: Verifies X-Shopify-Hmac-Sha256 header.
  • GitHub: Verifies X-Hub-Signature-256 HMAC-SHA256 signature.
  • Custom / Generic: Custom HMAC secret or raw forwarding without verification.

Creating a Source via API

curl -X POST https://api.bunnylynk.com/v1/sources \
  -H "Authorization: Bearer $BUNNYLYNK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Shopify Storefront",
    "slug": "shopify-orders",
    "provider": "shopify"
  }'

Response:

{
  "id": "src_01JM89K2PQR",
  "name": "Shopify Storefront",
  "slug": "shopify-orders",
  "provider": "shopify",
  "url": "https://gateway.bunnylynk.com/h/shopify-orders",
  "created_at": "2026-11-01T18:00:00Z"
}

Learn about Destinations next.