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-keys

Python py-vapid

$pip install py-vapid && vapid --gen

OpenSSL (generates PEM format)

$openssl ecparam -name prime256v1 -genkey -noout -out vapid_private.pem

How 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