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" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-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",
"Authorization": "Bearer YOUR_API_TOKEN"
}
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",
"Authorization": "Bearer YOUR_API_TOKEN"
},
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")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
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['Authorization'] = 'Bearer YOUR_API_TOKEN'
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
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_...)
Bearer token. API key as Bearer token
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
Responses
Last updated today
Built with Documentation.AI