SendGrid and ConvertNow share the same HTTP POST + Bearer token pattern. For most applications, migration is a drop-in change.
HTTP API
Before (SendGrid)
curl -X POST https://api.sendgrid.com/v3/mail/send \
-H “Authorization: Bearer SG.YOUR_SENDGRID_KEY” \
-H “Content-Type: application/json” \
-d ‘{
“personalizations”: [{ “to”: [{ “email”: “[email protected]” }] }],
“from”: { “email”: “[email protected]” },
“subject”: “Hello”,
“content”: [{ “type”: “text/html”, “value”: “<h1>Hi</h1>” }]
}’
After (ConvertNow)
curl -X POST https://api.convertnow.co/v1/email/send \
-H “Authorization: Bearer cn_live_YOUR_KEY” \
-H “Content-Type: application/json” \
-d ‘{“to”:”[email protected]”,”subject”:”Hello”,”html”:”<h1>Hi</h1>”}’
Key differences
• No personalizations wrapper — pass to as a flat string or array
• from is optional — defaults to your account sender; override per-request
• content array replaced by flat html / text fields
• Key prefix changes from SG. to cn_live_
• cc and bcc are top-level fields
Node.js
Before (SendGrid SDK)
import sgMail from ‘@sendgrid/mail’;
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
await sgMail.send({ to: ‘[email protected]’, from: ‘[email protected]’, subject: ‘Hi’, html: ‘<p>Hi</p>’ });
After (ConvertNow — no SDK needed)
await fetch(‘https://api.convertnow.co/v1/email/send’, {
method: ‘POST’,
headers: { ‘Authorization’: `Bearer ${process.env.CONVERTNOW_API_KEY}`, ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({ to: ‘[email protected]’, subject: ‘Hi’, html: ‘<p>Hi</p>’ }),
});
SMTP settings
|
Setting |
SendGrid |
ConvertNow |
|
Host |
smtp.sendgrid.net |
out.convertnow.co |
|
Port |
587 |
465 (implicit SSL), or 25 / 2525 |
|
Username |
apikey (literal string) |
your email address |
|
Password |
SG.YOUR_KEY |
cn_live_YOUR_KEY |
Feature status
|
Feature |
Status |
|
Sending domain authentication (DKIM, SPF, DMARC) |
Built |
|
Suppression list API |
Built |
|
Webhooks for delivery and failure events |
Built |
|
Transactional template system |
Coming soon — render HTML in your app |
Coming soon — render HTML in your app