Skip to main content

Subscriber CRUD Examples

Create

Node.js

import { Novu } from "@novu/api";

const novu = new Novu({
  secretKey: process.env.NOVU_SECRET_KEY,
});

await novu.subscribers.create({
  subscriberId: "user-123",
  email: "[email protected]",
  firstName: "Jane",
  lastName: "Doe",
  phone: "+15551234567",
  avatar: "https://example.com/jane.jpg",
  locale: "en-US",
  timezone: "America/New_York",
  data: {
    plan: "pro",
    company: "Acme Inc",
  },
});

Python

from novu_py import Novu

novu = Novu(security=Security(secret_key=os.environ["NOVU_SECRET_KEY"]))

novu.subscribers.create(request={
    "subscriber_id": "user-123",
    "email": "[email protected]",
    "first_name": "Jane",
    "last_name": "Doe",
})

cURL

curl -X POST https://api.novu.co/v1/subscribers \
  -H "Authorization: ApiKey $NOVU_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriberId": "user-123",
    "email": "[email protected]",
    "firstName": "Jane",
    "lastName": "Doe"
  }'

Read

Retrieve Single Subscriber

const subscriber = await novu.subscribers.retrieve("user-123");
console.log(subscriber.result);

cURL — Get Subscriber

curl https://api.novu.co/v1/subscribers/user-123 \
  -H "Authorization: ApiKey $NOVU_SECRET_KEY"

Search Subscribers

const results = await novu.subscribers.search({
  email: "[email protected]",
});

Update

Partial Update

await novu.subscribers.patch(
  { firstName: "Jane", data: { plan: "enterprise" } },
  "user-123"
);

cURL

curl -X PATCH https://api.novu.co/v1/subscribers/user-123 \
  -H "Authorization: ApiKey $NOVU_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Jane",
    "data": { "plan": "enterprise" }
  }'

Delete

await novu.subscribers.delete("user-123");

cURL

curl -X DELETE https://api.novu.co/v1/subscribers/user-123 \
  -H "Authorization: ApiKey $NOVU_SECRET_KEY"

Bulk Create

At max 500 subscribers can be created in one single api call
await novu.subscribers.createBulk({
  subscribers: [
    { subscriberId: "user-1", email: "[email protected]", firstName: "Alice" },
    { subscriberId: "user-2", email: "[email protected]", firstName: "Bob" },
    { subscriberId: "user-3", email: "[email protected]", firstName: "Carol" },
  ],
});