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/dakika | Webhook/ay |
|---|---|---|
| Free | 100 | 1,000 |
| Pro | 1,000 | 50,000 |
| Business | 10,000 | 500,000 |