Zaptickdocs
Email

email.subscribers

Dedicated email audience with opt-in status, tags, and custom fields. Separate from WhatsApp/RCS contacts because email lifecycle semantics (bounces, complaints, suppression) are meaningfully different.

#Endpoints

  • GET/v1/email/subscribersList subscribers. Filter by status, tag, or free-text search across name and email.
  • GET/v1/email/subscribers/:idOrEmailFetch by id or email address — either is accepted for convenience.
  • POST/v1/email/subscribersCreate a subscriber. Pass requireConfirmation: true for double opt-in.
  • PUT/v1/email/subscribers/:idOrEmailUpdate tags, custom fields, or change status.
  • POST/v1/email/subscribers/:idOrEmail/unsubscribePermanently unsubscribe. Honoured across all future marketing sends.
GET/v1/email/subscribers

List subscribers. Filter by status, tag, or free-text search across name and email.

SDK
TypeScript
const { subscribers, total } = await zaptick.email.subscribers.list({
  status: 'subscribed',
  tags: 'newsletter',
  limit: 100,
});
GET/v1/email/subscribers/:idOrEmail

Fetch by id or email address — either is accepted for convenience.

SDK
TypeScript
const { subscriber } = await zaptick.email.subscribers.get('priya@example.com');
POST/v1/email/subscribers

Create a subscriber. Pass requireConfirmation: true for double opt-in.

SDK
TypeScript
await zaptick.email.subscribers.create({
  email: 'priya@example.com',
  firstName: 'Priya',
  tags: ['newsletter', 'beta'],
  customFields: { plan: 'pro' },
});
Request body
JSON
{
  "email": "priya@example.com",
  "firstName": "Priya",
  "tags": ["newsletter", "beta"],
  "customFields": { "plan": "pro" }
}
PUT/v1/email/subscribers/:idOrEmail

Update tags, custom fields, or change status.

POST/v1/email/subscribers/:idOrEmail/unsubscribe

Permanently unsubscribe. Honoured across all future marketing sends.

SDK
TypeScript
await zaptick.email.subscribers.unsubscribe('priya@example.com');