HomeConvertNow KnowledgebaseConvertNow Email Api Reference

ConvertNow Email Api Reference

Base URL: https://api.convertnow.co

All API keys begin with cn_live_ and are generated from your dashboard at Email API → API Keys.



Authentication

The public send API uses Bearer token authentication with your cn_live_ API key.

Authorization: Bearer cn_live_YOUR_KEY



Keys are stored as SHA-256 hashes. The raw key is shown only once at creation time.



POST /v1/email/send

Send a transactional email.

Authentication: Authorization: Bearer cn_live_YOUR_KEY



Request body

Field

Type

Required

Description

to

string | string[]

Yes

One recipient or an array. All addresses receive the email in a single send.

from

string

No

Sender address. Falls back to your account reply-to, then [email protected].

cc

string | string[]

No

Carbon-copy recipient(s).

bcc

string | string[]

No

Blind carbon-copy recipient(s).

subject

string

Yes

Email subject line.

html

string

Yes*

HTML body. Required if text is not provided.

text

string

Yes*

Plain-text body. Required if html is not provided.

reply_to

string

No

Reply-To address.

attachments

Attachment[]

No

File attachments. Max total size 10 MB.

tags

string[]

No

Attribution tags. Max 10 tags, 64 characters each.



📌 Custom headers passthrough is not yet available on the HTTP API. Use SMTP (port 465) for custom headers.

📌 Auto-injected: List-Unsubscribe and List-Unsubscribe-Post headers are added to every send automatically.



Attachment object

Field

Type

Required

Description

filename

string

Yes

File name shown to recipients (e.g. report.pdf).

content

string

Yes

Base64-encoded file content.

content_type

string

No

MIME type. Defaults to application/octet-stream.



Success response 200

{

“id”: “msg_abc123xyz”,

“status”: “sent”,

“message”: “Email queued for delivery to 2 recipients”

}



Error responses

Status

Meaning

400

Missing required fields / invalid email format / invalid tags

401

Invalid or revoked API key

422

All recipient addresses are suppressed

502

Upstream mail server rejected the message



Node.js example

const response = await fetch(‘https://api.convertnow.co/v1/email/send’, {

method: ‘POST’,

headers: {

‘Authorization’: ‘Bearer cn_live_YOUR_KEY’,

‘Content-Type’: ‘application/json’,

},

body: JSON.stringify({

to: ‘[email protected]’,

subject: ‘Hello from ConvertNow’,

html: ‘<h1>It works!</h1>’,

}),

});

const data = await response.json();



Python example

import requests

response = requests.post(

‘https://api.convertnow.co/v1/email/send’,

headers={‘Authorization’: ‘Bearer cn_live_YOUR_KEY’},

json={‘to’: ‘[email protected]’, ‘subject’: ‘Hello’, ‘html’: ‘<h1>It works!</h1>’}

)

print(response.json())



curl example

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>It works!</h1>”}’



GET /api/email-api/keys

List all API keys for the authenticated account. Authentication: JWT session token (web app only).



POST /api/email-api/keys

Create a new API key. Body: { “name”: “Production” }. The rawKey is returned only at creation time.



DELETE /api/email-api/keys/:id

Revoke an API key permanently. Authentication: JWT session token.



GET /api/email-api/logs

Retrieve recent send logs. Query param: limit (default 50, max 200). Authentication: JWT session token.

This is a staging environment