Send one email
Accept one email asynchronously with HTTP 202; interactive testing uses a Bearer API Key.
Send one email
curl -X POST "https://innomail-stable.cm253.com/innomail/v2/messages/send" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"to": [
{
"email": "alice@example.net"
}
],
"from": {
"name": "Example",
"email": "notify@example.com"
},
"html": "<p>Your order has been confirmed.</p>",
"subject": "Order confirmation",
"messageType": "TRANSACTIONAL"
}'Message accepted for asynchronous processing.
{
"code": "000000",
"data": {
"status": "ACCEPTED",
"messageId": "SINGLE-EXAMPLE-001",
"acceptedAt": "2026-11-11T03:00:00Z"
},
"message": "success",
"traceId": "REQ-EXAMPLE-001",
"timestamp": "2026-11-11T03:00:00.123Z"
}Documented response example from the spec, not a real request result.
Accept one email asynchronously. Returns HTTP 202 and code 000000 on acceptance, not final delivery. Supports Bearer or CheckSum authentication. See the guide for acceptance error codes.
Use the InnoPaaS AppKey as a Bearer token. Create or manage keys in Console. API key guide
Authorization
Authorizationstring<bearer>requiredHeader Parameters
X-Idempotency-KeystringrequiredUnique business-task key retained across retries, up to 128 characters.
1Max length128X-Custom-TraceIdstringoptionalOptional customer trace ID, up to 256 characters after trimming.
256Body
application/jsonccarray<object>optionalCarbon-copy recipients, up to 50 entries and empty for marketing.
Show child attributes
namestringoptionalOptional display name.
emailstringoptionalBare carbon-copy email address.
toarray<object>requiredRecipients, 1-50 entries; marketing requires exactly one.
Show child attributes
namestringoptionalOptional recipient display name.
emailstringoptionalBare recipient email address.
bccarray<object>optionalBlind-carbon-copy recipients, up to 50 entries and empty for marketing.
Show child attributes
namestringoptionalOptional display name.
emailstringoptionalBare blind-carbon-copy email address.
fromobjectoptionalAuthorized sender identity.
Show child attributes
namestringoptionalOptional sender display name.
emailstringoptionalBare sender email address.
htmlstringoptionalHTML body
524288tagsarray<object>optionalUp to 20 business tags.
Show child attributes
namestringoptionalTag name
32valuestringoptionalTag value
64textstringoptionalPlain-text body; direct content requires text or HTML
524288headersjsonoptionalUp to 25 custom mail headers; managed headers cannot be overridden.
replyTostringoptionalSingle reply address overriding the mailbox default
320subjectstringrequiredMessage subject required for direct and template content
998metadatajsonoptionalBusiness metadata not rendered or guaranteed in events
templateobjectoptionalApproved and enabled template reference.
Show child attributes
languagestringoptionalReserved field that does not select a language
32variablesjsonoptionalTemplate-specific values overriding top-level variables
templateIdstringrequiredTemplate ID available to the account
128variablesjsonoptionalCommon template variables; direct bodies are not rendered
attachmentsjsonoptionalReserved references only; omit because attachment content delivery is unavailable.
messageTypestringoptionalMARKETING or TRANSACTIONAL; non-template default is MARKETING
Response
application/jsonMessage accepted for asynchronous processing.
codestringoptionalBusiness code
datajsonoptionalAcceptance data containing messageId
messagestringoptionalHuman-readable result message.
traceIdstringoptionalValidated trace ID for this HTTP request.
timestampstringoptionalResponse generation timestamp.
{
"code": "000000",
"data": {
"status": "ACCEPTED",
"messageId": "SINGLE-EXAMPLE-001",
"acceptedAt": "2026-11-11T03:00:00Z"
},
"message": "success",
"traceId": "REQ-EXAMPLE-001",
"timestamp": "2026-11-11T03:00:00.123Z"
}Documented response example from the spec, not a real request result.