Back to skills
SKILL.md
Svix
ASecuritySvix is the industry standard for sending and verifying webhooks reliably, used by Clerk, Brex, Resend, and thousands of platforms.
- 13 stars
- 0 votes
- 0 copies
- 3 views
- Added September 21, 2026
Works with
Security analysis
92/100- Installs packages at runtime which could introduce malicious dependencies
- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add ashish7802/awesome-api-skills --skill svix --agent claude-codeAre you the author of Svix?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ashish7802-svix)# Svix Webhooks API Skill
## Overview
Svix is the industry standard for sending and verifying webhooks reliably, used by Clerk, Brex, Resend, and thousands of platforms.
## Installation
```bash
npm install svix
pip install svix
```
## Verifying Inbound Webhooks
To verify a webhook received from Svix or a service that uses standard Svix signatures (like Clerk or Resend):
```typescript
import { Webhook } from 'svix';
export async function verifyIncomingWebhook(
rawBody: string,
headers: Record<string, string>
) {
const secret = process.env.WEBHOOK_SECRET!;
const wh = new Webhook(secret);
const payload = wh.verify(rawBody, {
'svix-id': headers['svix-id'],
'svix-timestamp': headers['svix-timestamp'],
'svix-signature': headers['svix-signature'],
});
return payload;
}
```
## Sending Outbound Webhooks via Svix API
```typescript
import { Svix } from 'svix';
const svix = new Svix(process.env.SVIX_AUTH_TOKEN!);
// Create an application for a tenant
const app = await svix.application.create({
name: 'Customer Org 42',
uid: 'org_42',
});
// Send an event message
await svix.message.create('org_42', {
eventType: 'invoice.created',
payload: {
id: 'inv_9981',
amount: 5000,
currency: 'USD',
},
});
```
## AI Pitfalls & Anti-Hallucination Guidelines
- **Raw Body Requirement**: Passing a JSON-parsed object to `wh.verify` fails cryptographic verification. Always pass the exact raw body string or buffer.
- **Header Casing**: Svix headers are lowercase: `svix-id`, `svix-timestamp`, `svix-signature`.
## Production Verification Checklist
- [ ] Express / Next.js route handler configures raw body reader
- [ ] Webhook secret verified against environment (whsec_...)
- [ ] Svix timestamp tolerance checked (default 5 minutes)
---
> **Last Verified:** 2026-07-03
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.