API Documentation
Email Campaigns ¶
Overview
There are several models associated with emails which are similar and must not be confused.
Email Campaign
It’s a collection of 1 or more emails sent withing a campaign so they could be tracked together. Emails can have multiple recipients including email addresses, tags or lists.
They can also be scheduled to be sent in the future.
Data model
An email_campaign
object will look like this:
Field | Type | association |
---|---|---|
id | uuid | |
created_at | number | |
updated_at | number | |
deleted_at | number | |
created_by | uuid | |
brand | uuid | |
due_at | number | |
executed_at | number | |
subject | string | |
html | string | |
text | string | |
headers | json | |
include_signature | boolean | |
individual | boolean | |
google_credential | uuid | |
microsoft_credential | uuid | |
accepted | number | |
clicked | number | |
complained | number | |
delivered | number | |
failed | number | |
opened | number | |
rejected | number | |
sent | number | |
stored | number | |
unsubscribed | number | |
deal | Deal | email_campaign.deal |
from | User | email_campaign.from |
attachments | EmailCampaignAttachment[] | email_campaign.attachments |
recipients | EmailCampaignRecipient[] | email_campaign.recipients |
emails | EmailCampaignEmail[] | email_campaign.emails |
template | TemplateInstance | email_campaign.template |
Email Campaign Recipient
Each email campaign can container 1 or more recipients.
Each recipient could be any of the following:
-
All contacts
-
An pair of (email, contact) where contact id is optional
-
A CRM list
-
A CRM tag
-
A MLS agent from agent network
-
A brand to send to all its agents
Data model
An email_campaign_recipient
object type looks like this:
Field | Type | association | Description |
---|---|---|---|
id | uuid | ||
created_at | number | ||
deleted_at | number | ||
updated_at | number | ||
campaign | uuid | ||
agent | Agent | ||
brand | Brand | ||
contact | Contact | ||
string | |||
id | uuid | ||
list | CrmList | ||
recipient_type | Enum * | ||
send_type | Enum * | ||
tag | string |
List of possible values for recipient_type
:
-
Tag
: campaign will be sent to the primary email of all contacts matching a tag -
List
: campaign will be sent to the primary email of all contacts in a crm list -
Brand
: campaign will be sent to all of agent users in the brand -
AllContacts
: campaign will be sent to the primary email of all contacts in the brand -
Email
: campaign will be sent to the specified email address and optionally associated with the provided contact -
Agent
: campaign will be sent to the mls agent from the agent network
List of possible values for send_type
:
-
To
-
CC
-
BCC
One individual email which has already been sent.
Email Campaign Email
A model that connects Email Campaigns with Emails.
Google Credential
A model that connects Email Campaigns with Google_Credentials.
Microsoft Credential
A model that connects Email Campaigns with Microsoft_Credentials.
Email Campaign Attachments
A model that connects Email Campaigns with Email_Campaign_Attachments
-
It is not allowed to send both file and url alongside each other.
-
Combination of url and name is mandatory.
Data model
An email_campaign_attachments
object type looks like this:
Field | Type | association | Description |
---|---|---|---|
id | uuid | NOT NULL | |
campaign | uuid | NOT NULL | |
file | uuid | NOT NULL | |
is_inline | boolean | NOT NULL | |
content_id | text | ||
created_at | timestamp | ||
updated_at | timestamp | ||
deleted_at | timestamp |
Upload an Attachment ¶
Upload an AttachmentPOST/emails/attachments
-
Tip:
origin
query parameter can be either ofgmail
,outlook
, ormailgun
. -
Gmail limit: 26 MB (Single Attachment up to 26MB or Several attachments with the sum of file sizes up to 26MB)
-
Outlook limit: Same as Gmail
-
Mailgun limit: 15 MB
Example URI
- origin
string
(required) Example: gmail
200
Body
{
"code": "OK",
"data": {
"id": "572b8371-3d1d-4c14-950a-38a1cacad057",
"created_at": 1760470025.73241,
"updated_at": 1760470025.73241,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"path": "80a227b2-29a0-11e7-b636-e4a7a08e15d4/c4b7a000-a933-11f0-bdea-d5cf17ea076e.png",
"name": "logo.png",
"public": false,
"type": "file",
"url": "https://private-cdn.irish.rechat.com/80a227b2-29a0-11e7-b636-e4a7a08e15d4/c4b7a000-a933-11f0-bdea-d5cf17ea076e.png?Expires=1760556425741&Key-Pair-Id=APKAIIRG223GKFAC4MHA&Signature=c5gUJ8Ds~j8PHYTpOpSks4r7PccD1887Z-E3wkvEXTHSM~siYoasC2QQxitqTMeK1BYgF5NIxmYlDD~~nABU2VJJVwMeD2Jnyhjg05xgnHyH4WTXO2cYaxkNUDqvKEkK2Z2aSplpSbU8z98vq-lGlR-qByXGvDNWuobmyVFG14lkEMTlfSMIXe0aRo-tfRm1312UktkOvvtmO4QZBLImR3oCm83SxjGW2kkBzHuN16CWVVuMZBg1nUaC18ByIRhTlHZZWt8p3wnGTPHfQvfkNdxgUIsDgVGo5~Y7kd7mJaR~9tc83KdMcOuWkjrxAalpkwVwXlEPDppWR706YiF7tA__",
"preview_url": "https://private-cdn.irish.rechat.com/80a227b2-29a0-11e7-b636-e4a7a08e15d4/c4b7a000-a933-11f0-bdea-d5cf17ea076e.png?Expires=1760556425741&Key-Pair-Id=APKAIIRG223GKFAC4MHA&Signature=c5gUJ8Ds~j8PHYTpOpSks4r7PccD1887Z-E3wkvEXTHSM~siYoasC2QQxitqTMeK1BYgF5NIxmYlDD~~nABU2VJJVwMeD2Jnyhjg05xgnHyH4WTXO2cYaxkNUDqvKEkK2Z2aSplpSbU8z98vq-lGlR-qByXGvDNWuobmyVFG14lkEMTlfSMIXe0aRo-tfRm1312UktkOvvtmO4QZBLImR3oCm83SxjGW2kkBzHuN16CWVVuMZBg1nUaC18ByIRhTlHZZWt8p3wnGTPHfQvfkNdxgUIsDgVGo5~Y7kd7mJaR~9tc83KdMcOuWkjrxAalpkwVwXlEPDppWR706YiF7tA__",
"mime": "image/png"
}
}
Schedule an email campaign ¶
Schedule an email campaignPOST/emails
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"tags": [
"mailGunTag"
],
"due_at": "2025-10-14T19:26:59.809Z",
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"subject": "Email Subject",
"notifications_enabled": false,
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"headers": {},
"text": "Hi ,,,",
"id": "c2513c63-6e21-4521-81ec-401be2f6ed14"
}
200
Body
{
"code": "OK",
"data": {
"id": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"created_at": 1760470023.640294,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Email Subject",
"include_signature": false,
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"due_at": 1760470019.809,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi ,,,",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"mailGunTag"
],
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Update an email campaign ¶
Update an email campaignPUT/emails/:id
Example URI
- id
string
(required) Example: 6e8245e1-242f-4ee3-ab4e-761e37878f98- associations
string
(required) Example: email_campaign.recipients
Body
{
"id": "6e8245e1-242f-4ee3-ab4e-761e37878f98",
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"tags": [
"updatedCampaignTag"
],
"due_at": "2025-10-14T19:26:59.809Z",
"html": "<div>\n From: {{sender.display_name or \"me\"}}\n </div>\n <div>\n To: {{recipient.display_name or \"there\"}}\n </div>",
"subject": "Individual Email From {{sender.display_name}}",
"notifications_enabled": false,
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4"
}
200
Body
{
"code": "OK",
"data": {
"id": "6e8245e1-242f-4ee3-ab4e-761e37878f98",
"created_at": 1760470023.780831,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Individual Email From {{sender.display_name}}",
"include_signature": false,
"html": "<div>\n From: {{sender.display_name or \"me\"}}\n </div>\n <div>\n To: {{recipient.display_name or \"there\"}}\n </div>",
"due_at": 1760470019.809,
"executed_at": null,
"individual": true,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "From: {{sender.display_name or \"me\"}}\nTo: {{recipient.display_name or \"there\"}}",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"updatedCampaignTag"
],
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0,
"recipients": [
{
"id": "94e6f09c-8a9e-4daa-8941-a2355ad61b75",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "6e8245e1-242f-4ee3-ab4e-761e37878f98",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
]
}
}
Update an email campaign's notifications_enabled ¶
Update an email campaign's notifications_enabledPUT/emails/:id/notifications
Example URI
- id
string
(required) Example: 6e8245e1-242f-4ee3-ab4e-761e37878f98
Body
{
"status": false
}
200
Get an email campaign ¶
Get an email campaignGET/emails/:id?associations[]=email_campaign.emails
Example URI
- id
string
(required) Example: c2513c63-6e21-4521-81ec-401be2f6ed14- associations
string
(required) Example: email_campaign.emails,email_campaign.recipients,email_campaign_email.email
200
Body
{
"code": "OK",
"data": {
"id": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"created_at": 1760470023.640294,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Email Subject",
"include_signature": false,
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 1,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi ,,,",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"mailGunTag"
],
"recipients_count": 1,
"listed": true,
"type": "email_campaign",
"sent": 1,
"recipients": [
{
"id": "699851e9-27c1-4d28-adc5-c21d42a07865",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
],
"emails": [
{
"id": "dfb6247f-3655-465f-9b41-a345a5f6646d",
"campaign": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"email": {
"id": "ea537a20-c696-43d7-b028-9702bf8c9a2d",
"created_at": 1760470024.311648,
"from": "Unit Test <[email protected]>",
"to": [
"[email protected]"
],
"subject": "Email Subject",
"headers": {
"Feedback-ID": "rechat:42fa6464-bcae-4928-bf2b-6670e576c1d9:rechat"
},
"mailgun_id": "example-mailgun-id-email-1",
"domain": "mg.rechat.com",
"campaign": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"cc": [],
"bcc": [],
"accepted": 0,
"rejected": 0,
"delivered": 1,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"tags": [
"42fa6464-bcae-4928-bf2b-6670e576c1d9",
"c2513c63-6e21-4521-81ec-401be2f6ed14",
"mailGunTag"
],
"google_id": null,
"microsoft_id": null,
"tracking_id": "202d7553-bcae-4eb9-a976-69c9958cd21f",
"google_credential": null,
"microsoft_credential": null,
"sent_at": "2025-10-14T19:27:04.573Z",
"type": "email"
},
"send_type": "To",
"email_address": "[email protected]",
"accepted": 0,
"rejected": 0,
"delivered": 1,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"agent": null,
"error": null,
"type": "email_campaign_email",
"full_name": null,
"profile_image_url": null
}
]
}
}
Get all campaigns by brand ¶
Get all campaigns by brandGET/brands/:brand/emails/campaigns
Example URI
- brand
string
(required) Example: 42fa6464-bcae-4928-bf2b-6670e576c1d9- associations
string
(required) Example: email_campaign.recipients
200
Body
{
"code": "OK",
"data": [
{
"id": "85db9157-1d79-4175-86c1-fb8637f518f7",
"created_at": 1760470025.253835,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Email Subject",
"include_signature": false,
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi ,,,",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"mailGunTag"
],
"recipients_count": 1,
"listed": true,
"type": "email_campaign",
"sent": 1,
"recipients": [
{
"id": "71f8d5ce-ef6e-45c0-889f-21c04a5f2186",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "85db9157-1d79-4175-86c1-fb8637f518f7",
"tag": null,
"email": null,
"send_type": "To",
"recipient_type": "Contact",
"type": "email_campaign_recipient"
}
]
},
{
"id": "75fd804f-0993-4aa2-b784-cf0211505260",
"created_at": 1760470023.925768,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Campaign using a template",
"include_signature": false,
"html": "SOME HTML",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": true,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "SOME HTML",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": [
"scheduledCampaignTag"
],
"recipients_count": 2,
"listed": true,
"type": "email_campaign",
"sent": 2,
"recipients": [
{
"id": "6065382e-88a2-439d-a006-466ce4dbcfc0",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "75fd804f-0993-4aa2-b784-cf0211505260",
"tag": null,
"email": null,
"send_type": "To",
"recipient_type": "Brand",
"type": "email_campaign_recipient"
},
{
"id": "b0c5a8b9-ebef-434c-a65e-35baeeb11865",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "75fd804f-0993-4aa2-b784-cf0211505260",
"tag": null,
"email": null,
"send_type": "To",
"recipient_type": "Agent",
"type": "email_campaign_recipient"
}
]
},
{
"id": "a53c5762-4491-49f6-94fd-895763e27840",
"created_at": 1760470023.855709,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Brand Campaign To {{recipient.email}}",
"include_signature": false,
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": true,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi ,,,",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": [
"campaignTag"
],
"recipients_count": 2,
"listed": true,
"type": "email_campaign",
"sent": 2,
"recipients": [
{
"id": "09556b03-0466-45b6-b5c1-921a73cbda33",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "a53c5762-4491-49f6-94fd-895763e27840",
"tag": null,
"email": null,
"send_type": "To",
"recipient_type": "Brand",
"type": "email_campaign_recipient"
},
{
"id": "0d9a8c4d-5f71-401d-b4c6-ee8455429b5f",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "a53c5762-4491-49f6-94fd-895763e27840",
"tag": null,
"email": null,
"send_type": "To",
"recipient_type": "Agent",
"type": "email_campaign_recipient"
}
]
},
{
"id": "6e8245e1-242f-4ee3-ab4e-761e37878f98",
"created_at": 1760470023.780831,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Individual Email From {{sender.display_name}}",
"include_signature": false,
"html": "<div>\n From: {{sender.display_name or \"me\"}}\n </div>\n <div>\n To: {{recipient.display_name or \"there\"}}\n </div>",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "From: {{sender.display_name or \"me\"}}\nTo: {{recipient.display_name or \"there\"}}",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"mailGunTag"
],
"recipients_count": 1,
"listed": true,
"type": "email_campaign",
"sent": 1,
"recipients": [
{
"id": "347d6692-cfdb-426d-b189-2bba26a2da82",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "6e8245e1-242f-4ee3-ab4e-761e37878f98",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
]
},
{
"id": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"created_at": 1760470023.640294,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "42fa6464-bcae-4928-bf2b-6670e576c1d9",
"subject": "Email Subject",
"include_signature": false,
"html": "<div>Hi\n <img src=\"https://cdn.rechat.com/test.jpg\" />,<img src=\"https://listing.cdn.rechat.com/test.jpg\" />,<img src=\"https://d1rchfjmtfqq3r.cloudfront.net/test.jpg\" />,<img src=\"https://d2j29n432zojb.cloudfront.net/test.jpg\" />\n</div>",
"due_at": 1760470019.809,
"executed_at": 1760470019.830701,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 1,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi ,,,",
"headers": {},
"google_credential": null,
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": false,
"archive": false,
"tags": [
"mailGunTag"
],
"recipients_count": 1,
"listed": true,
"type": "email_campaign",
"sent": 1,
"recipients": [
{
"id": "699851e9-27c1-4d28-adc5-c21d42a07865",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
]
}
],
"info": {
"count": 5,
"total": 5
}
}
Schedule a gmail message ¶
Schedule a gmail messagePOST/emails
If either of credential.deleted_at is not null
or credentila.revoked is true
is met, then credential is disconnected.
So it should not be allowed to send or read an email if user’s connected account is disconnected.
When a user wants to send an email through Gmail or Outlook, two conditions should be met.
-
credential.deleted_at is null
andcredentila.revoked is false
-
credential.scope_summary
includesmail.send
Every Google and Microsoft connected account has a field with the name scope_summary
.
This is all of our avaailable scopes: ["profile", "contacts", "mail.read", "mail.send", "mail.modify", "calendar"]
When a user wants to update email IsRead flag, two conditions should be met.
-
credential.deleted_at is null
andcredentila.revoked is false
-
credential.scope_summary
includesmail.send and mail.modify
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"cc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"bcc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"due_at": "2025-10-14T19:17:05.752Z",
"html": "<div>Hi</div>",
"subject": "schedule gmail message",
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"attachments": [],
"headers": {},
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"text": "Hi",
"id": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92"
}
200
Body
{
"code": "OK",
"data": {
"id": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92",
"created_at": 1760470025.782363,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"subject": "schedule gmail message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760469425.752,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {},
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Schedule a gmail message with attachments ¶
Schedule a gmail message with attachmentsPOST/emails
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"cc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"bcc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"due_at": "2025-10-14T19:27:05.981Z",
"html": "<div>Hi</div>",
"subject": "Email Subject",
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"attachments": [
{
"file": "572b8371-3d1d-4c14-950a-38a1cacad057",
"is_inline": true,
"content_id": "content_id"
},
{
"url": "https://private-cdn.irish.rechat.com/80a227b2-29a0-11e7-b636-e4a7a08e15d4/c4b7a000-a933-11f0-bdea-d5cf17ea076e.png?Expires=1760556425741&Key-Pair-Id=APKAIIRG223GKFAC4MHA&Signature=c5gUJ8Ds~j8PHYTpOpSks4r7PccD1887Z-E3wkvEXTHSM~siYoasC2QQxitqTMeK1BYgF5NIxmYlDD~~nABU2VJJVwMeD2Jnyhjg05xgnHyH4WTXO2cYaxkNUDqvKEkK2Z2aSplpSbU8z98vq-lGlR-qByXGvDNWuobmyVFG14lkEMTlfSMIXe0aRo-tfRm1312UktkOvvtmO4QZBLImR3oCm83SxjGW2kkBzHuN16CWVVuMZBg1nUaC18ByIRhTlHZZWt8p3wnGTPHfQvfkNdxgUIsDgVGo5~Y7kd7mJaR~9tc83KdMcOuWkjrxAalpkwVwXlEPDppWR706YiF7tA__",
"is_inline": true,
"name": "custom_name.jpg",
"content_id": "content_id"
}
],
"headers": {
"in_reply_to": "in_reply_to_id",
"thread_id": "thread_id"
},
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"text": "Hi",
"id": "cdf888f9-19f8-44f8-b1c9-979b70665898"
}
200
Body
{
"code": "OK",
"data": {
"id": "cdf888f9-19f8-44f8-b1c9-979b70665898",
"created_at": 1760470026.013453,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"subject": "Email Subject",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760470025.981,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {
"in_reply_to": "in_reply_to_id",
"thread_id": "thread_id"
},
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Schedule an outlook message ¶
Schedule an outlook messagePOST/emails
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"due_at": "2025-10-14T19:27:05.813Z",
"html": "<div>Hi</div>",
"subject": "schedule outlook message",
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"google_credential": null,
"microsoft_credential": "86056c9a-e989-4177-a976-951fed3c36ca",
"attachments": [],
"headers": {},
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "2907d011-1266-4bcb-9202-4d24eb3a9f20",
"text": "Hi",
"id": "e6ef0c43-2b2c-4fb0-beb5-0dfc1413ac54"
}
200
Body
{
"code": "OK",
"data": {
"id": "e6ef0c43-2b2c-4fb0-beb5-0dfc1413ac54",
"created_at": 1760470025.849741,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "2907d011-1266-4bcb-9202-4d24eb3a9f20",
"subject": "schedule outlook message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760470025.813,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {},
"google_credential": null,
"microsoft_credential": "86056c9a-e989-4177-a976-951fed3c36ca",
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Schedule a reply to gmail message ¶
Schedule a reply to gmail messagePOST/emails
- Tip: Use
message_ob.internet_message_id
for setting theheaders.in_reply_to
. You are replying to current message, so thein_reply_to
of new reply-message should be ainternet_message_id
of previous message.
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"cc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"bcc": [
{
"recipient_type": "Email",
"email": "[email protected]"
}
],
"due_at": "2025-10-14T19:27:05.865Z",
"html": "<div>Hi</div>",
"subject": "schedule reply to gmail message",
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"attachments": [],
"headers": {
"in_reply_to": "in_reply_to_id",
"thread_id": "thread_id"
},
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"text": "Hi",
"id": "34659066-1f75-4c15-9499-0c8f211bda97"
}
200
Body
{
"code": "OK",
"data": {
"id": "34659066-1f75-4c15-9499-0c8f211bda97",
"created_at": 1760470025.907243,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"subject": "schedule reply to gmail message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760470025.865,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {
"in_reply_to": "in_reply_to_id",
"thread_id": "thread_id"
},
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Schedule a reply to outlook message ¶
Schedule a reply to outlook messagePOST/emails
Example URI
Body
{
"to": [
{
"email": "[email protected]",
"recipient_type": "Email"
}
],
"due_at": "2025-10-14T19:27:05.928Z",
"html": "<div>Hi</div>",
"subject": "schedule reply to outlook message",
"from": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"google_credential": null,
"microsoft_credential": "86056c9a-e989-4177-a976-951fed3c36ca",
"attachments": [],
"headers": {
"message_id": "message_id"
},
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "2907d011-1266-4bcb-9202-4d24eb3a9f20",
"text": "Hi",
"id": "14ca419e-3753-4e92-9b97-3802cab6c273"
}
200
Body
{
"code": "OK",
"data": {
"id": "14ca419e-3753-4e92-9b97-3802cab6c273",
"created_at": 1760470025.967648,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "2907d011-1266-4bcb-9202-4d24eb3a9f20",
"subject": "schedule reply to outlook message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760470025.928,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {
"message_id": "message_id"
},
"google_credential": null,
"microsoft_credential": "86056c9a-e989-4177-a976-951fed3c36ca",
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0
}
}
Get a gmail campaign ¶
Get a gmail campaignGET/emails/:id?associations[]=email_campaign.emails&associations[]=email_campaign.recipients&associations[]=email_campaign.attachments
Example URI
- id
string
(required) Example: e1dd50b9-c754-4aa6-b7ee-8de52662fa92- associations
string
(required) Example: email_campaign.emails,email_campaign.recipients,email_campaign.attachments
200
Body
{
"code": "OK",
"data": {
"id": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92",
"created_at": 1760470025.782363,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "8db6d983-9e09-4d1e-b805-0856a88591a2",
"subject": "schedule gmail message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760469425.752,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {},
"google_credential": "94e5aa34-ba80-4223-a987-55e2aaffc258",
"microsoft_credential": null,
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0,
"recipients": [
{
"id": "e25e454a-13ff-49c1-90ae-b21fe46235eb",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
},
{
"id": "16f2158c-ec2c-4c10-98fc-d93b50efa5f7",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92",
"tag": null,
"email": "[email protected]",
"send_type": "CC",
"recipient_type": "Email",
"type": "email_campaign_recipient"
},
{
"id": "2b289d5d-6112-4f23-9476-96df406e2888",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "e1dd50b9-c754-4aa6-b7ee-8de52662fa92",
"tag": null,
"email": "[email protected]",
"send_type": "BCC",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
],
"attachments": null,
"emails": null
}
}
Get an outlook campaign ¶
Get an outlook campaignGET/emails/:id
Example URI
- id
string
(required) Example: 14ca419e-3753-4e92-9b97-3802cab6c273- associations
string
(required) Example: email_campaign.emails,email_campaign.recipients
200
Body
{
"code": "OK",
"data": {
"id": "14ca419e-3753-4e92-9b97-3802cab6c273",
"created_at": 1760470025.967648,
"updated_at": null,
"deleted_at": null,
"created_by": "80a227b2-29a0-11e7-b636-e4a7a08e15d4",
"brand": "2907d011-1266-4bcb-9202-4d24eb3a9f20",
"subject": "schedule reply to outlook message",
"include_signature": false,
"html": "<div>Hi</div>",
"due_at": 1760470025.928,
"executed_at": null,
"individual": false,
"accepted": 0,
"rejected": 0,
"delivered": 0,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"text": "Hi",
"headers": {
"message_id": "message_id"
},
"google_credential": null,
"microsoft_credential": "86056c9a-e989-4177-a976-951fed3c36ca",
"thread_key": null,
"failed_at": null,
"failed_within": null,
"failure": null,
"notifications_enabled": true,
"archive": false,
"tags": null,
"recipients_count": null,
"listed": true,
"type": "email_campaign",
"sent": 0,
"recipients": [
{
"id": "905a28c8-f0d1-4e2a-ab25-4e806228a278",
"created_at": 1760470019.830701,
"updated_at": null,
"deleted_at": null,
"campaign": "14ca419e-3753-4e92-9b97-3802cab6c273",
"tag": null,
"email": "[email protected]",
"send_type": "To",
"recipient_type": "Email",
"type": "email_campaign_recipient"
}
],
"emails": null
}
}
Update message's IsRead status ¶
Update message's IsRead statusPUT/emails/google/:credentialId/messages/:messageId
Example URI
- gcid
string
(required) Example: 94e5aa34-ba80-4223-a987-55e2aaffc258- mid
string
(required) Example: 67779e19-47d9-4063-ba40-d62a19be3312
Body
{
"status": false
}
202
Batch update some messages IsRead status ¶
Batch update some messages IsRead statusPUT/emails/google/:credentialId/messages
Example URI
- gcid
string
(required) Example: 94e5aa34-ba80-4223-a987-55e2aaffc258
Body
{
"status": false,
"messageIds": [
"67779e19-47d9-4063-ba40-d62a19be3312"
]
}
202
Batch move to trash ¶
Batch move to trashPOST/emails/google/:credentialId/trash
Example URI
- gcid
string
(required) Example: 94e5aa34-ba80-4223-a987-55e2aaffc258
Body
{
"status": false,
"messageIds": [
"67779e19-47d9-4063-ba40-d62a19be3312"
]
}
202
Batch archive ¶
Batch archivePOST/emails/google/:credentialId/archive
Example URI
- gcid
string
(required) Example: 94e5aa34-ba80-4223-a987-55e2aaffc258
Body
{
"status": false,
"messageIds": [
"67779e19-47d9-4063-ba40-d62a19be3312"
]
}
202
Get User Email Quota by brand ¶
Get User Email Quota by brandGET/brands/:brand/emails/quota
Example URI
- brand
string
(required) Example: 42fa6464-bcae-4928-bf2b-6670e576c1d9
200
Body
{
"code": "OK",
"data": {
"executed": 0,
"scheduled": 0,
"quota": 30000
}
}
Get emails of a campaign ¶
Get emails of a campaignGET/emails/:campaign/emails
start
(number) number of rows to skip before starting to return rows
limit
(number) limited number of records
order
(clicked | opened | unsubscribed | failed | full_name) eg: -failed (optional)
Example URI
- id
string
(required) Example: c2513c63-6e21-4521-81ec-401be2f6ed14- order
string
(required) Example: full_name
200
Body
{
"code": "OK",
"data": [
{
"id": "dfb6247f-3655-465f-9b41-a345a5f6646d",
"campaign": "c2513c63-6e21-4521-81ec-401be2f6ed14",
"send_type": "To",
"email_address": "[email protected]",
"accepted": 0,
"rejected": 0,
"delivered": 1,
"failed": 0,
"opened": 0,
"clicked": 0,
"unsubscribed": 0,
"complained": 0,
"stored": 0,
"agent": null,
"error": null,
"type": "email_campaign_email",
"full_name": null,
"profile_image_url": null
}
],
"info": {
"count": 1,
"total": 0
}
}
Get information about the domain of the current user ¶
Get information about the domain of the current userGET/emails/domain
When calling this endpoint 3 things may happen:
-
You will receive an error 400. That means the user’s email address is not verified. In that case the whole Email Authentication step must be hidden.
-
You will receive a 404 error. That would mean that the domain for this user is not setup yet.
-
You will receive an object like this:
Example URI
200
Body
{
"code": "OK",
"data": {
"id": "e27d37cd-72ef-4d9f-91a8-90f2b8a0b3ad",
"mailgun_domain": "rechat-mail.rechat.com",
"domain": "rechat.com",
"created_at": "2025-10-14T19:26:59.830Z",
"enabled_at": null,
"risks": "{low,medium,unknown}"
}
}
Attempt at verifying user's domain ¶
Attempt at verifying user's domainPUT/emails/domain/verify
This endpoint will try to verify the domain for the current user and will return the DNS Records necessary for the domain authorization
Example URI
200
Body
{
"code": "OK",
"data": [
{
"is_active": false,
"name": "_dmarc.rechat.com",
"record_type": "TXT",
"desired_value": "v=DMARC1; p=none"
}
],
"info": {
"count": 1,
"total": 0
}
}