Confirm new subscribers before they get a campaign.
Turn on double opt-in for a contact book, change the confirmation email, and see how pending contacts become subscribed. Every endpoint named here is in the API reference.
Double opt-in requires new contacts to confirm their email address before they become subscribed. When enabled on a contact book, newly added contacts receive a confirmation email with a verification link. Only after clicking the link do they become fully subscribed.
Why use double opt-in?
- Ensures email addresses are valid and owned by the subscriber
- Reduces bounce rates and spam complaints
- Improves deliverability and sender reputation
- Helps comply with email marketing regulations (GDPR, CAN-SPAM)
How it works
- A contact is added. When a contact is added to a contact book with double opt-in on (in the console, through the API or by CSV import), it is created as Pending instead of subscribed.
- A confirmation email goes out. The contact gets an email with a unique confirmation link, signed with HMAC-SHA256 and valid for 7 days.
- The contact confirms. They click the link and confirm on the confirmation page.
- The contact is subscribed. Their status changes from Pending to Subscribed, and they now receive your emails.
Enabling double opt-in
In the console
- Open Contacts and choose a contact book
- Turn on the Double Opt-in switch
- Optionally, choose Edit confirmation email to change the email
- Save the email
Through the API
Create a contact book with double opt-in enabled:
curl -X POST "https://app.usenotix.dev/api/v1/contactBooks" \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Newsletter Subscribers",
"doubleOptInEnabled": true,
"doubleOptInFrom": "Newsletter <hello@yourdomain.com>",
"doubleOptInSubject": "Please confirm your subscription"
}'
Or enable it on an existing contact book:
curl -X PATCH "https://app.usenotix.dev/api/v1/contactBooks/<contactBookId>" \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"doubleOptInEnabled": true
}'
Contact statuses
When double opt-in is enabled, contacts have three possible statuses:
| Status | Description |
|---|---|
| Subscribed | Contact has confirmed their subscription and will receive emails |
| Pending | Contact has been added but hasn't confirmed yet |
| Unsubscribed | Contact has explicitly unsubscribed |
Note: contacts that are Pending do not receive campaign emails. They only receive the confirmation email.
Customising the confirmation email
You can change three things about of the confirmation email:
From address
Set a custom sender address for confirmation emails. The address must use one of your verified domains.
{
"doubleOptInFrom": "Newsletter <hello@yourdomain.com>"
}
If not set, the confirmation email will be sent from the first available verified domain.
Subject line
Change the subject. The default is "Please confirm your subscription".
{
"doubleOptInSubject": "Confirm your subscription to our newsletter"
}
Email template
Edit the confirmation email body in the Notix email editor in the console, or send the editor's JSON content through the API.
Template variables
The following variables can be used in the confirmation email template:
| Variable | Description |
|---|---|
{{doubleOptInUrl}} | The confirmation link (required) |
{{email}} | The contact's email address |
{{firstName}} | The contact's first name |
{{lastName}} | The contact's last name |
Required: the {{doubleOptInUrl}} variable must be in the email. The confirmation email cannot be saved without it, so every confirmation email carries a working link.
Resending confirmation emails
If a contact has not confirmed, resend the confirmation email from the console:
- Open the contact book and find the pending contact
- Choose Resend confirmation email on that contact
Each resend generates a new confirmation link with a fresh 7-day expiration window.
Best practices
| Best practice | Why it helps |
|---|---|
| Set up a verified domain first | Double opt-in emails need a verified domain before they can be sent |
| Keep the confirmation email simple | Makes it easier for subscribers to understand and complete the confirmation step |
| Use a recognizable from address | Reduces the chance of the confirmation email being ignored or marked as spam |
| Monitor pending contacts | Helps you spot low confirmation rates and improve your signup flow |