Tracking Domain
Manage your tracking domains.
Query
Get the list of tracking domains
URL
https://email.api.engagelab.cc/v1/tracking-domains
HTTP Request Method
GET
Request Headers
Header | Type | Required | Description |
---|---|---|---|
Authorization | String | true | Basic base64(apiUser:apiKey) |
Query Parameter Description
Parameter | Type | Required or not | Description |
---|---|---|---|
name | string | no | domain name |
offset | int | no | offset position, [0-], defaults to 0 |
limit | int | no | amount, [0-100],defaults to 100 |
Request Example
curl "https://email.api.engagelab.cc/v1/tracking-domains?name=engagelab.com"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
Returned value description
Parameter | Description |
---|---|
domain_id | domain ID |
name | domain name |
cname | details about the domain's CNAME record |
verify | whether the configuration is successful (true or false) |
verify_message | an message describing the CNAME record, or null if the record is correct |
required_record | CNAME record to configure |
existed_record | the CNAME record configured by the user |
cert | details about the domain's certificate |
verify | whether the configuration is successful (true or false) |
verify_message | the certificate has not been uploaded, the certificate is being configured, the certificate has taken effect, the certificate has expired |
expired_date | expired date |
create_time | time of domain creation |
update_time | time of domain modification |
Returned Value Example
Response-success
HTTP Status: 200
{
"result": [
{
"domain_id": 1000403,
"name": "track.leonww.asia",
"create_time": "2025-04-18T13:27:38+0800",
"update_time": "2025-09-04T12:32:56+0800",
"cname": {
"verify": true,
"verify_message": "The configuration is successful",
"required_record": "track01.engagelab.email",
"existed_record": "track01.engagelab.email"
},
"cert": {
"verify": true,
"verify_message": "the certificate has taken effect",
"expired_date": "2025-12-02T07:59:59+0800"
}
},
{
"domain_id": 1000402,
"name": "track.myMail.com",
"create_time": "2025-04-18T13:05:57+0800",
"update_time": "2025-04-18T13:05:57+0800",
"cname": {
"verify": false,
"verify_message": "The cname record is not configured",
"required_record": "track01.engagelab.email",
"existed_record": ""
},
"cert": {
"verify": false,
"verify_message": "the certificate has not been uploaded",
"expired_date": ""
}
}
],
"total": 2,
"count": 2
}
Response-error
HTTP Status :401
{
"code": 30000,
"message": "Unauthorized."
}
Add
Add a tracking domain to your account.
URL
https://email.api.engagelab.cc/v1/tracking-domains
Content-Type:
application/json; charset=utf-8
HTTP Request Method
POST
Request Headers
Header | Type | Required | Description |
---|---|---|---|
Authorization | String | true | Basic base64(apiUser:apiKey) |
Body Parameter Description
Parameter | Type | Required or not | Description |
---|---|---|---|
name | string | yes | domain name |
Tips:
You can add up to 5 custom tracking domain names. The domain name cannot be modified once its configuration is verified. An incorrect configuration may cause links in emails to be unclickable, tracking data to be inaccurate, etc.
Due to the upgrade of Chrome and other browsers,the loading of HTTP resources will be prohibited in the future,which will lead to incorrect interception and tracking data,etc.It is suggested that you 2. Due to upgrades in Chrome and other browsers, the loading of HTTP resources will be blocked in the future. This may lead to content being marked incorrectly (e.g., as unsafe) and cause tracking data issues. It is strongly recommended to upload an SSL certificate for HTTPS configuration and enable HTTPS tracking.upload SSL certificates in the HTTPS configuration and enable HTTPS tracking.
Request Example
curl -X POST "https://email.api.engagelab.cc/v1/tracking-domains"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
--header "Content-Type: application/json"
--data '{
"name":"track.leonww.asia"
}'
Returned value description
Parameter | Description |
---|---|
domain_id | domain ID |
name | domain name |
cname | details about the domain's CNAME record |
verify | whether the configuration is successful (true or false) |
verify_message | an message describing the CNAME record, or null if the record is correct |
required_record | CNAME record to configure |
existed_record | existing CNAME record |
create_time | time of domain creation |
update_time | time of domain modification |
Returned value example
Response-success
HTTP Status: 200
{
"result":
{
"domain_id": 1000423,
"name": "track.leonww.asia",
"create_time": "2025-09-03T13:42:41+0800",
"update_time": "2025-09-03T13:42:41+0800",
"cname": {
"verify": false,
"verify_message": "The cname record is not configured",
"required_record": "track01.engagelab.email",
"existed_record": ""
}
}
}
Response-error
HTTP Status :400
{
"code": 31003,
"message": "Domain name format error"
}
Modify
Modify tracking domains through this interface
URL
https://email.api.engagelab.cc/v1/tracking-domains/{domain_id}
Content-Type:
application/json; charset=utf-8
HTTP Request Method
PUT
Request Headers
Header | Type | Required | Description |
---|---|---|---|
Authorization | String | true | Basic base64(apiUser:apiKey) |
Body Parameter Description
Parameter | Type | Required or not | Description |
---|---|---|---|
name | string | yes | domain name. It must conform to the domain name format, can only contain alphanumeric characters, hyphens (-), and periods (.), and must be between 4 and 255 characters long (e.g., mail.test.best). |
Request Example
curl -X PUT "https://email.api.engagelab.cc/v1/tracking-domains/22332"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
--header "Content-Type: application/json"
--data '{
"name":"aizl.net",
}'
Returned value example
Response-success
HTTP Status: 200
{
"count": 1
}
Response-error
HTTP Status :400
{
"code": 31003,
"message": "Domain name format error"
}
Verify
Verify tracking domains through this interface
URL
https://email.api.engagelab.cc/v1/tracking-domains/{domain_id}/verify
HTTP Request Method
GET
Note
Return to domains with verified configuration.
Request Example
curl -X POST "https://email.api.engagelab.cc/v1/tracking-domains/123/verify"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
Returned value description
Parameter | Description |
---|---|
domain_id | domain ID |
name | domain name |
cname | details about the domain's CNAME record |
verify | whether the configuration is successful (true or false) |
verify_message | an message describing the CNAME record, or null if the record is correct |
required_record | CNAME record to configure |
existed_record | existing CNAME record |
cert | details about the domain's certificate |
verify | whether the configuration is successful (true or false) |
verify_message | the certificate has not been uploaded, the certificate is being configured, the certificate has taken effect, the certificate has expired |
expired_date | expired_date |
create_time | time of domain creation |
update_time | time of domain modification |
Returned Value Example
Response-success
HTTP Status: 200
{
"result": {
"domain_id": 1000403,
"name": "track.leonww.asia",
"create_time": "2025-04-18T13:27:38+0800",
"update_time": "2025-09-04T12:32:56+0800",
"cname": {
"verify": true,
"verify_message": "The configuration is successful",
"required_record": "track01.engagelab.email",
"existed_record": "track01.engagelab.email"
},
"cert": {
"verify": true,
"verify_message": "the certificate has taken effect",
"expired_date": "2025-12-02T07:59:59+0800"
}
}
}
Response-error
HTTP Status :401
{
"code": 30000,
"message": "Unauthorized."
}
Add certificate
Add tracking domain's certificate
URL
https://email.api.engagelab.cc/v1/tracking-domains/{domain_id}/cert
Content-Type:
application/json; charset=utf-8
HTTP Request Method
POST
Body Parameter Description
parameter | type | required or not | description |
---|---|---|---|
cert_content | string | yes | Represent the certificate content. The value must be PEM-encoded. |
cert_key | string | yes | Represent certificate Private Key. The value must be PEM-encoded. |
Request Example
curl -X POST "https://email.api.engagelab.cc/v1/tracking-domains/123/cert"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
--data '{
"cert_content":"...",
"cert_key":"...",
}'
Returned value description
Parameter | Description |
---|---|
domain_id | domain ID |
name | domain name |
cert | details about the domain's certificate |
verify | whether the configuration is successful (true or false) |
verify_message | the certificate has not been uploaded, the certificate is being configured, the certificate has taken effect, the certificate has expired |
expired_date | expired date |
create_time | time of domain creation |
update_time | time of domain modification |
Returned Value Example
Response-success
HTTP Status: 200
{
"result": {
"domain_id": 1000403,
"name": "track.leonww.asia",
"create_time": "2025-04-18T13:27:38+0800",
"update_time": "2025-09-04T12:32:56+0800",
"cert": {
"verify": false,
"verify_message": "the certificate is being configured",
"expired_date": "2025-12-02T07:59:59+0800"
}
}
}
Response-error
HTTP Status :401
{
"code": 30000,
"message": "Unauthorized."
}
Update certificate
Update tracking domain's certificate
URL
https://email.api.engagelab.cc/v1/tracking-domains/{domain_id}/cert
Content-Type:
application/json; charset=utf-8
HTTP Request Method
PUT
Body Parameter Description
parameter | type | required or not | description |
---|---|---|---|
cert_content | string | yes | Represent the certificate content. The value must be PEM-encoded. |
cert_key | string | yes | Represent the certificate Private Key. The value must be PEM-encoded. |
Request Example
curl -X PUT "https://email.api.engagelab.cc/v1/tracking-domains/{domain_id}/cert"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
Response-success
HTTP Status: 200
{
"count": 1
}
Response-error
HTTP Status :401
{
"code": 30000,
"message": "Unauthorized."
}
Update API_USER
Update the tracking domain and tracking switch configuration associated with API_USER
URL
https://email.api.engagelab.cc/v1/api_users/{api_user}
Content-Type:
application/json; charset=utf-8
HTTP Request Method
PUT
Body Parameter Description
parameter | type | required or not | description |
---|---|---|---|
domain_name | string | no | the domain name bound to the API_USER |
track_domain_name | string | no | the tracking domain name bound to the API_USER |
open_tracking | boolean | no | whether to enable open-tracking. Values: false (disable), true (enable). Default is false. |
click_tracking | boolean | no | whether to enable click-tracking. Values: false (disable), true (enable); Default is false. |
unsubscribe_tracking | boolean | no | whether to enable unsubscribe-tracking. Values: false(disable), true (enable); Default is true. |
Request Example
curl -X PUT "https://email.api.engagelab.cc/v1/api_users/{api_user}"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
Response-success
HTTP Status: 200
{
"count": 1
}
Response-error
HTTP Status :401
{
"code": 30000,
"message": "Unauthorized."
}