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
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
Search by email or display name
Filter by status
Filter by provider (google → gmail, microsoft → outlook, smtp → custom)
Only select mailboxes with no tags
Only select mailboxes currently warming up
Only select mailboxes NOT warming up
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
Starting daily email volume (default 10)
Daily volume increase (default 1)
Target daily volume (default 25, max 50)
Custom reply rate configuration
Responses
Number of mailboxes affected
Number of mailboxes deleted (delete operation only)
Number of domains checked (checkDNS operation only)
Number of mailboxes updated (checkDNS operation only)
Per-domain DNS results (checkDNS operation only)
Applied warmup config (startWarmup operation only)
Validation error (no mailboxes selected, missing required fields, or active campaign conflict)
Last updated 5 days ago
Built with Documentation.AI