Bulk import DNC list
Bulk import up to 10,000 DNC entries at once. Existing entries (by email) are
automatically skipped. Emails are lowercased. Uses insertMany for efficient bulk insert.
Default reason is import.
curl -X POST "https://api.sendkit.ai/v1/dnc/import" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"entries": [
{
"email": "bounce1@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "bounce2@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "badcompany.com",
"type": "domain",
"reason": "manual"
}
]
}'
import requests
import json
url = "https://api.sendkit.ai/v1/dnc/import"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"entries": [
{
"email": "bounce1@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "bounce2@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "badcompany.com",
"type": "domain",
"reason": "manual"
}
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/dnc/import", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"entries": [
{
"email": "bounce1@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "bounce2@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "badcompany.com",
"type": "domain",
"reason": "manual"
}
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"entries": [
{
"email": "bounce1@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "bounce2@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "badcompany.com",
"type": "domain",
"reason": "manual"
}
]
}`)
req, err := http.NewRequest("POST", "https://api.sendkit.ai/v1/dnc/import", 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/dnc/import')
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 = '{
"entries": [
{
"email": "bounce1@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "bounce2@example.com",
"type": "email",
"reason": "bounce"
},
{
"email": "badcompany.com",
"type": "domain",
"reason": "manual"
}
]
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"imported": 245,
"skipped": 12
}
}
POST
/v1/dnc/import
POST
Base URLstring
Target server for requests. Edit to use your own host.
API Key (header: X-Api-Key)
X-Api-Keystring
RequiredPlatform API key (sk_user_...) or Workspace API key (sk_...)
Platform API key (sk_user_...) or Workspace API key (sk_...)
Content-Typestring
RequiredThe media type of the request body
Options: application/json
entriesarray
RequiredList of DNC entries to import (max 10,000)
Request Preview
Response
Response will appear here after sending the request
Authentication
header
X-Api-Keystring
RequiredAPI Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)
Body
application/json
entriesarray
RequiredList of DNC entries to import (max 10,000)
Responses
Was this page helpful?