DEV Community

Alex Spinov
Alex Spinov

Posted on

Novu Has a Free API That Handles All Your App Notifications

Novu is the open-source notification infrastructure that manages email, SMS, push, in-app, and chat notifications through a single API.

What Is Novu?

Novu gives you a unified API for all notification channels. Instead of integrating SendGrid for email, Twilio for SMS, and Firebase for push separately — Novu handles them all.

Quick Start

npm install @novu/node
Enter fullscreen mode Exit fullscreen mode
import { Novu } from '@novu/node'

const novu = new Novu(process.env.NOVU_API_KEY!)

// Send notification
await novu.trigger('welcome-email', {
  to: {
    subscriberId: 'user-123',
    email: 'user@example.com',
    firstName: 'Alice',
  },
  payload: {
    welcomeMessage: 'Thanks for signing up!',
    ctaLink: 'https://app.example.com/onboarding',
  },
})
Enter fullscreen mode Exit fullscreen mode

REST API

export NOVU_KEY="your-api-key"

# Trigger notification
curl -s -X POST 'https://api.novu.co/v1/events/trigger' \
  -H "Authorization: ApiKey $NOVU_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "order-shipped",
    "to": {"subscriberId": "user-123"},
    "payload": {"trackingUrl": "https://tracking.example.com/abc"}
  }'

# Create subscriber
curl -s -X POST 'https://api.novu.co/v1/subscribers' \
  -H "Authorization: ApiKey $NOVU_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"subscriberId": "user-456", "email": "bob@example.com", "firstName": "Bob"}'

# Get notifications feed
curl -s 'https://api.novu.co/v1/notifications?page=0&limit=10' \
  -H "Authorization: ApiKey $NOVU_KEY" | jq '.data | length'
Enter fullscreen mode Exit fullscreen mode

Multi-Channel Workflow

// Novu workflow (defined in dashboard or code):
// 1. Send email immediately
// 2. If not read in 1 hour -> send push notification
// 3. If not read in 24 hours -> send SMS
// All from ONE trigger call

await novu.trigger('payment-reminder', {
  to: { subscriberId: 'user-789' },
  payload: {
    amount: '$49.99',
    dueDate: '2026-04-15',
    invoiceUrl: 'https://app.example.com/invoice/123'
  }
})
Enter fullscreen mode Exit fullscreen mode

In-App Notification Center

// React component
import { NovuProvider, PopoverNotificationCenter, NotificationBell } from '@novu/notification-center'

function App() {
  return (
    <NovuProvider subscriberId="user-123" applicationIdentifier="APP_ID">
      <PopoverNotificationCenter>
        {({ unseenCount }) => <NotificationBell unseenCount={unseenCount} />}
      </PopoverNotificationCenter>
    </NovuProvider>
  )
}
Enter fullscreen mode Exit fullscreen mode

Supported Channels

Channel Providers
Email SendGrid, Mailgun, SES, Postmark, Resend
SMS Twilio, Vonage, Plivo, SNS
Push FCM, APNs, Expo
Chat Slack, Discord, MS Teams
In-App Novu Notification Center

Free Tier

Feature Free Business
Events 30K/mo 250K/mo
Channels All All
Team members Unlimited Unlimited
Self-hosted Yes Yes

Need to notify users about scraped data changes? Scrapfly + Novu = automated data monitoring. Email spinov001@gmail.com for custom solutions.

Top comments (0)