Başlarken

Send your first webhook in under 5 minutes. HookSniff handles delivery, retries, and monitoring so you can focus on building.

Hızlı Başlangıç

1. API anahtarınızı alın

Sign up at hooksniff.vercel.app and grab your API key from the dashboard settings.

2. Bir endpoint oluşturun

Webhook'ların teslim edilmesini istediğiniz URL'yi kaydedin:

curl -X POST https://hooksniff-api-1046140057667.europe-west1.run.app/v1/endpoints \
  -H "Authorization: Bearer hr_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://myapp.com/webhook"}'

3. Bir webhook gönderin

curl -X POST https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks \
  -H "Authorization: Bearer hr_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint_id": "ep_abc123",
    "event": "order.created",
    "data": {"order_id": "12345", "total": 99.99}
  }'

4. İmzayı doğrulayın

Every webhook includes an HMAC-SHA256 signature in the X-HookSniff-Signature header:

import hmac, hashlib

def verify_signature(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.HMAC(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Kimlik Doğrulama

All API requests require authentication via a Bearer token in the Authorization header:

Authorization: Bearer hr_live_abc123xyz789

⚠️ Keep your API key secret. Never expose it in client-side code, public repos, or browser requests. Use environment variables.

Kod Örnekleri

Node.js

const response = await fetch('https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.HOOKRELAY_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    endpoint_id: 'ep_abc123',
    event: 'user.created',
    data: { email: 'user@example.com' },
  }),
});

const result = await response.json();
console.log('Delivery ID:', result.id);

Python

import requests
import os

response = requests.post(
    'https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks',
    headers={
        'Authorization': f'Bearer {os.environ["HOOKRELAY_KEY"]}',
        'Content-Type': 'application/json',
    },
    json={
        'endpoint_id': 'ep_abc123',
        'event': 'payment.completed',
        'data': {'amount': 49.99, 'currency': 'USD'},
    },
)

print('Delivery ID:', response.json()['id'])

Go

body := `{"endpoint_id":"ep_abc123","event":"order.shipped","data":{"tracking":"1Z999"}}`
req, _ := http.NewRequest("POST", "https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks", strings.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("HOOKRELAY_KEY"))
req.Header.Set("Content-Type", "application/json")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

Hız Limitleri

Planİstek/dakikaWebhook/ay
Free1001,000
Pro1,00050,000
Business10,000500,000
HookSniff — Webhook Delivery Service