Sending Domain CallBack

Overview

Bulk API version of domain registration with streamlined workflow for high-volume senders.

Endpoint Details

HTTP MethodPOST
Endpoint Path/v2/settings/addSendingDomain
API VersionBulk API (v2.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
domainStringYesDomain name to add/verify/check. Must be a domain you own and can modify DNS foryourdomain.com

Request Example

Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.

{
  "owner_id": "{USER_ID}",
  "domain": "routemobile.com"
}

Response Format

Successful Response:

{
    "status": "success",
    "code": 200,
    "message": "Resource created successfully",
    "data": {
        "id": "resource_abc123",
        "created_at": "2026-04-17T10:30:00Z"
    }
}

Common Errors & Troubleshooting

401 - Unauthorized: Authentication credentials are missing or invalid

Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.

500 - Internal server error: Unexpected server error occurred

Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.

Implementation Examples

curl -X POST \
  https://api.sendclean.com/v2/settings/addSendingDomain \
  -H 'Content-Type: application/json' \
  -d '{
  "owner_id": "{USER_ID}",
  "domain": "routemobile.com"
}'
const axios = require('axios');

const url = 'https://api.sendclean.com/v2/settings/addSendingDomain';

const payload = {
    "owner_id":"{USER_ID}",
    "domain":"routemobile.com"
};

axios.post(url, payload, {
    headers: {
        'Content-Type': 'application/json'
    }
})
.then(response => {
    console.log('Success:', response.data);
})
.catch(error => {
    console.error('Error:', error.response ? error.response.data : error.message);
});
<?php

$url = 'https://api.sendclean.com/v2/settings/addSendingDomain';

$payload = json_decode('{
    "owner_id":"{USER_ID}",
    "domain":"routemobile.com"
}', true);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode == 200) {
    $result = json_decode($response, true);
    print_r($result);
} else {
    echo "Error: $httpCode - $response";
}

?>

Verify Sending Domain

Overview

Bulk API domain verification with support for batch domain verification operations.

Endpoint Details

HTTP MethodPOST
Endpoint Path/v2/settings/verifySendingDomain
API VersionBulk API (v2.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
domainStringYesDomain name to add/verify/check. Must be a domain you own and can modify DNS foryourdomain.com
mailboxStringYesMailbox name for domain verification. Used to send verification emailadmin

Request Example

Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.

{
  "owner_id": "{USER_ID}",
  "domain": "sendclean.com",
  "mailbox": "Test"
}

Response Format

Successful Response:

{
    "status": "success",
    "code": 200,
    "message": "Email queued successfully",
    "data": {
        "message_id": "msg_abc123xyz",
        "queued_at": "2026-04-17T10:30:00Z",
        "recipients": 1
    }
}

Common Errors & Troubleshooting

401 - Unauthorized: Authentication credentials are missing or invalid

Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.

500 - Internal server error: Unexpected server error occurred

Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.

Implementation Examples

Python (requests):

import requests
import json

url = "https://api.sendclean.com/v2/settings/verifySendingDomain"

payload =:

{
  "owner_id": "{USER_ID}",
  "domain": "sendclean.com",
  "mailbox": "Test"
}

headers =:

{
  "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

if response.status_code == 200:
result = response.json()
print("Success:", result)
else:
print("Error:", response.status_code, response.text)

curl -X POST \
  https://api.sendclean.com/v2/settings/verifySendingDomain \
  -H 'Content-Type: application/json' \
  -d '{
  "owner_id": "{USER_ID}",
  "domain": "sendclean.com",
  "mailbox": "Test"
}'
const axios = require('axios');

const url = 'https://api.sendclean.com/v2/settings/verifySendingDomain';

const payload = {
    "owner_id":"{USER_ID}",
    "domain":"sendclean.com",
    "mailbox":"Test"
}  ;

axios.post(url, payload, {
    headers: {
        'Content-Type': 'application/json'
    }
})
.then(response => {
    console.log('Success:', response.data);
})
.catch(error => {
    console.error('Error:', error.response ? error.response.data : error.message);
});
<?php

$url = 'https://api.sendclean.com/v2/settings/verifySendingDomain';

$payload = json_decode('{
    "owner_id":"{USER_ID}",
    "domain":"sendclean.com",
    "mailbox":"Test"
}  ', true);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode == 200) {
    $result = json_decode($response, true);
    print_r($result);
} else {
    echo "Error: $httpCode - $response";
}

?>

Verify DKIM SPF

Overview

Bulk API version of DKIM/SPF validation with batch checking capabilities.

Endpoint Details

HTTP MethodPOST
Endpoint Path/v2/settings/checkSendingDomain
API VersionBulk API (v2.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
domainStringYesDomain name to add/verify/check. Must be a domain you own and can modify DNS foryourdomain.com

Request Example

Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.

{
  "owner_id": "{USER_ID}",
  "domain": "sendclean.com"
}

Response Format

Successful Response:

{
    "status": "success",
    "code": 200,
    "message": "Operation completed successfully"
}

Common Errors & Troubleshooting

401 - Unauthorized: Authentication credentials are missing or invalid

Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.

500 - Internal server error: Unexpected server error occurred

Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.

Implementation Examples

curl -X POST \
  https://api.sendclean.com/v2/settings/checkSendingDomain \
  -H 'Content-Type: application/json' \
  -d '{
  "owner_id": "{USER_ID}",
  "domain": "sendclean.com"
}'
const axios = require('axios');

const url = 'https://api.sendclean.com/v2/settings/checkSendingDomain';

const payload = {
    "owner_id":"{USER_ID}",
    "domain":"sendclean.com"
}
   ;

axios.post(url, payload, {
    headers: {
        'Content-Type': 'application/json'
    }
})
.then(response => {
    console.log('Success:', response.data);
})
.catch(error => {
    console.error('Error:', error.response ? error.response.data : error.message);
});
<?php

$url = 'https://api.sendclean.com/v2/settings/checkSendingDomain';

$payload = json_decode('{
    "owner_id":"{USER_ID}",
    "domain":"sendclean.com"
}
   ', true);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode == 200) {
    $result = json_decode($response, true);
    print_r($result);
} else {
    echo "Error: $httpCode - $response";
}

?>

Overview

Bulk API endpoint for listing sending domains with additional campaign-level metrics.

Endpoint Details

HTTP MethodGET
Endpoint Path/v2/settings/listSendingDomain
API VersionBulk API (v2.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345

Response Format

Successful Response:

{
    "status": "success",
    "code": 200,
    "data": {
        "items": [
            {
                "id": "item_001",
                "created_at": "2026-04-01T09:00:00Z",
                "status": "active"
            }
        ],
        "total": 1,
        "page": 0
    }
}

Common Errors & Troubleshooting

401 - Unauthorized: Authentication credentials are missing or invalid

Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.

500 - Internal server error: Unexpected server error occurred

Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.

Overview

Bulk API domain deletion with validation to prevent accidental removal of active domains.

Endpoint Details

HTTP MethodDELETE
Endpoint Path/v2/settings/deleteSendingDomain
API VersionBulk API (v2.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
domainStringYesDomain name to add/verify/check. Must be a domain you own and can modify DNS foryourdomain.com

Response Format

Successful Response:

{
    "status": "success",
    "code": 200,
    "message": "Resource deleted successfully"
}

Common Errors & Troubleshooting

401 - Unauthorized: Authentication credentials are missing or invalid

Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.

500 - Internal server error: Unexpected server error occurred

Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.


Did this page help you?