Bulk mailbox operations
Perform bulk operations on multiple mailboxes. Two selection modes:
- Explicit IDs:
{ "mailboxIds": ["id1", "id2"] } - Filter-based:
{ "selectAll": true, "filters": { ... }, "excludeIds": ["id3"] }
Available operations:
| Operation | Extra Fields | Description |
|---|---|---|
enableSending | - | Enable sending on selected mailboxes |
disableSending | - | Disable sending |
updateDailyLimit | dailySendLimit (1-50) | Set daily send limit |
updateSignature | signatureTemplate | Set signature with \{{firstName}\}, \{{lastName}\}, \{{email}\} auto-personalized per mailbox |
addTags | tags[] | Add tags (no duplicates) |
removeTags | tags[] | Remove specific tags |
replaceTags | tags[] | Replace all tags |
checkDNS | - | Check MX, SPF, DKIM, DMARC records (grouped by domain) |
startWarmup | warmupConfig? | Start warmup (default: 10 emails/day, +1/day, target 25, max 50) |
pauseWarmup | - | Pause active warmup |
resumeWarmup | - | Resume paused/stopped warmup |
stopWarmup | - | Stop warmup completely |
updateWarmupSettings | warmupConfig | Update warmup config (startingVolume, dailyIncrease, targetVolume) |
reactivate | - | Reactivate errored/suspended mailboxes |
delete | - | Delete mailboxes (fails if used in active campaigns) |
curl -X POST "https://api.sendkit.ai/v1/mailboxes/bulk" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"operation": "enableSending",
"mailboxIds": [
"665b1c2d3e4f5a6b7c8d9e0f",
"665b1c2d3e4f5a6b7c8d9e10"
]
}'
import requests
import json
url = "https://api.sendkit.ai/v1/mailboxes/bulk"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"operation": "enableSending",
"mailboxIds": [
"665b1c2d3e4f5a6b7c8d9e0f",
"665b1c2d3e4f5a6b7c8d9e10"
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/mailboxes/bulk", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"operation": "enableSending",
"mailboxIds": [
"665b1c2d3e4f5a6b7c8d9e0f",
"665b1c2d3e4f5a6b7c8d9e10"
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"operation": "enableSending",
"mailboxIds": [
"665b1c2d3e4f5a6b7c8d9e0f",
"665b1c2d3e4f5a6b7c8d9e10"
]
}`)
req, err := http.NewRequest("POST", "https://api.sendkit.ai/v1/mailboxes/bulk", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Api-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.sendkit.ai/v1/mailboxes/bulk')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-Api-Key'] = 'YOUR_API_KEY'
request.body = '{
"operation": "enableSending",
"mailboxIds": [
"665b1c2d3e4f5a6b7c8d9e0f",
"665b1c2d3e4f5a6b7c8d9e10"
]
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"operation": "enableSending",
"modifiedCount": 5
}
}
{
"success": true,
"data": {
"operation": "checkDNS",
"domainsChecked": 3,
"mailboxesUpdated": 8,
"results": {
"company.com": {
"mx": {
"status": "pass",
"records": [
{
"exchange": "mx1.company.com",
"priority": 10
}
]
},
"spf": {
"status": "pass",
"record": "v=spf1 include:_spf.google.com ~all"
},
"dkim": {
"status": "pass",
"selector": "google"
},
"dmarc": {
"status": "pass",
"record": "v=DMARC1; p=none"
},
"healthScore": 100
}
}
}
}
{
"success": true,
"data": {
"operation": "delete",
"deletedCount": 3
}
}
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "No mailboxes selected"
}
}
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "2 active campaign(s) use these mailboxes. Remove them from campaigns first.",
"campaigns": [
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"name": "Q1 Outreach"
}
]
}
}
/v1/mailboxes/bulk
Target server for requests. Edit to use your own host.
Platform API key (sk_user_...) or Workspace API key (sk_...)
The media type of the request body
The bulk operation to perform
Explicit mailbox IDs to operate on
Select all mailboxes matching filters
Filter criteria when using selectAll
Mailbox IDs to exclude from selection
Required for updateDailyLimit operation
Required for updateSignature operation. Supports \{\{firstName\}\}, \{\{lastName\}\}, \{\{email\}\} variables.
Configuration for startWarmup and updateWarmupSettings operations
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)
Body
The bulk operation to perform
enableSendingdisableSendingupdateDailyLimitupdateSignatureaddTagsremoveTagsreplaceTagscheckDNSstartWarmuppauseWarmupresumeWarmupstopWarmupupdateWarmupSettingsreactivatedeleteExplicit mailbox IDs to operate on
Select all mailboxes matching filters
Filter criteria when using selectAll
Mailbox IDs to exclude from selection
Required for updateDailyLimit operation
Required for updateSignature operation. Supports \\\{\\\{firstName\\\}\\\}, \\\{\\\{lastName\\\}\\\}, \\\{\\\{email\\\}\\\} variables.
Configuration for startWarmup and updateWarmupSettings operations