Free · Private · Client-side
VAPID Key Generator
Generate VAPID (Voluntary Application Server Identification) key pairs for Web Push notifications. Required for sending push notifications through browsers.
Generated values never leave this device.Algorithm
ECDSA P-256
Format
URL-safe Base64
Generated key pairECDSA P-256
Generating your VAPID key pair…
ECDSA key pair over the P-256 curve, encoded as URL-safe Base64 — the format Web Push (VAPID) requires.
What is VAPID?
VAPID (Voluntary Application Server Identification) is a specification that allows your application server to identify itself to push services (like Firebase Cloud Messaging, Mozilla Push Service, etc.) when sending push notifications.
Why VAPID?
- No need to register with each push service
- Works with all major browsers
- Provides sender identification
- Enables rate limiting and abuse prevention
Browser Support
- Chrome / Edge (Chromium)
- Firefox
- Safari (macOS/iOS 16+)
- Opera
Generate Locally
Generate VAPID keys using popular libraries:
Node.js web-push (recommended)
$
npx web-push generate-vapid-keysPython py-vapid
$
pip install py-vapid && vapid --genOpenSSL (generates PEM format)
$
openssl ecparam -name prime256v1 -genkey -noout -out vapid_private.pemHow to use these VAPID keys
01
Generate one key pair
Generate VAPID keys once per application and reuse them — changing keys invalidates every existing push subscription.
02
Use the public key in the browser
Pass the public key as applicationServerKey when calling pushManager.subscribe(). It is safe to expose in client-side code.
03
Keep the private key on your server
Store the private key as an environment variable and use it to sign push requests with a library like web-push.
Important
- Generate keys once and reuse them for your application
- If you change keys, all existing subscriptions become invalid
- Store the private key securely as an environment variable
- The public key is safe to expose in client-side code