HomeConvertNow KnowledgebaseMigrate from Resend to ConvertNow

Migrate from Resend to ConvertNow

Resend has the closest API shape to ConvertNow — in most cases migration is a URL change and a key prefix swap.



HTTP API

Before (Resend)

curl -X POST https://api.resend.com/emails \

-H “Authorization: Bearer re_YOUR_KEY” \

-H “Content-Type: application/json” \

-d ‘{“from”:”[email protected]”,”to”:[“[email protected]”],”subject”:”Hello”,”html”:”<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

URL: https://api.resend.com/emails → https://api.convertnow.co/v1/email/send

Key prefix: re_ → cn_live_

to stays as a string or array

from is optional — falls back to your account sender

cc and bcc work identically to Resend



Node.js

Before (Resend SDK)

import { Resend } from ‘resend’;

const resend = new Resend(process.env.RESEND_API_KEY);

await resend.emails.send({ from: ‘[email protected]’, to: ‘[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>’ }),

});



Response shape comparison

Field

Resend

ConvertNow

Success id field

data.id

id (top level)

Status field

HTTP 200, no status key

status: “sent”

Error field

error.name + error.message

error (single string)



Feature status

Feature

Status

Per-request from override

Built

tags / metadata per send

Built — max 10 tags

cc and bcc

Built

Webhooks

Built

Suppression list

Built

Unlimited sending domains

Built — vs Resend 10-domain cap on Pro

react field (server-side rendering)

Coming soon — render to HTML string

Coming soon — render to HTML string

This is a staging environment