Add batch DNC entries
DNC
Add batch DNC entries
Bulk import multiple LinkedIn URLs to your team’s Do Not Contact list
POST
Add batch DNC entries
Documentation Index
Fetch the complete documentation index at: https://docs.kakiyo.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Bulk import multiple LinkedIn URLs to your team’s Do Not Contact (DNC) list in a single operation. This endpoint efficiently processes large lists of opt-outs, providing detailed reports on successes, duplicates, and errors.Use Cases
- CSV Import: Bulk import DNC lists from CSV files or spreadsheets
- CRM Sync: Synchronize opt-outs from external CRM systems
- Compliance Migration: Import historical opt-out lists from legacy systems
- Mass Opt-Outs: Process multiple opt-out requests simultaneously
- System Integration: Batch sync DNC entries from other platforms
Key Features
- Bulk Processing: Add hundreds of URLs in a single request
- Duplicate Handling: Automatically skips existing entries without errors
- Error Resilience: Continues processing even if individual URLs fail
- Detailed Reporting: Returns comprehensive stats (added, duplicates, errors)
- Automatic Normalization: All URLs standardized before storage
- Rate Limited: 10 requests per minute for bulk operations
- Team Isolation: All entries scoped to your team
Testing Example
Request Body
Required Fields
| Field | Type | Required | Description |
|---|---|---|---|
entries | array<object> | Yes | Array of entry objects to add (minimum 1 entry) |
Entry Object Structure
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | LinkedIn profile URL to add to DNC list |
Example Request Body
Response Format
Success Response (201 Created)
Error Responses
400 Bad Request - Missing Entries Array
400 Bad Request - Empty Entries Array
400 Bad Request - Invalid Entry Format
429 Too Many Requests - Rate Limit Exceeded
401 Unauthorized - Invalid API Key
500 Internal Server Error
Response Fields
Summary Statistics
| Field | Type | Description |
|---|---|---|
data.added | integer | Number of URLs successfully added |
data.duplicates | integer | Number of URLs already on DNC list (skipped) |
data.errors | integer | Number of URLs that failed to process |
Details Array
Each entry in thedetails array contains:
| Field | Type | Description |
|---|---|---|
url | string | The normalized LinkedIn URL |
status | string | Status: added, duplicate, or error |
error | string | Error message (only present if status: "error") |
Bulk Processing Behavior
Error Handling
- Resilient Processing: Continues processing even if individual entries fail
- Duplicate Skipping: Existing URLs marked as
duplicate, not errors - Individual Errors: Each error tracked separately in
detailsarray - Partial Success: Returns 201 even if some entries fail
Processing Order
- Validate Request: Check entries array format
- Loop Through Entries: Process each URL sequentially
- Normalize URL: Standardize LinkedIn URL format
- Check Duplicate: Query existing DNC entries
- Add or Skip: Insert new entry or mark as duplicate
- Track Stats: Update counters for added/duplicates/errors
- Invalidate Cache: Clear team cache after all processing
Rate Limiting
- Limit: 10 requests per minute per team
- Window: Rolling 60-second window
- Reason: Bulk operations require more resources
- Exceeded: Returns 429 status with
resetTimetimestamp
Rate Limit Best Practices
- Batch Size: Process 100-500 URLs per request for optimal performance
- Wait Between Batches: Add 6+ second delay between bulk requests
- Handle 429: Implement exponential backoff with
resetTime - Queue System: Use a queue for very large imports (1000+ URLs)
Integration Examples
CSV Import
CRM Synchronization
Migration from Legacy System
Webhook Batch Processing
Export and Re-Import
Best Practices
- Batch Size: Use 100-500 URLs per request for optimal performance
- Rate Limiting: Wait 6+ seconds between batch requests
- Error Handling: Review
detailsarray for failed entries - Validation: Pre-validate URLs before sending to API
- Progress Tracking: Log batch results for large imports
- Duplicate Handling: Expect duplicates, don’t treat as errors
- Retry Logic: Retry failed batches with exponential backoff
- Audit Trail: Log all bulk operations with timestamps
URL Format Support
The endpoint accepts various LinkedIn URL formats per entry:https://linkedin.com/in/usernamehttps://www.linkedin.com/in/username/linkedin.com/in/usernamein/username
https://linkedin.com/in/username
Performance Considerations
- Sequential Processing: Entries processed one at a time within batch
- Duplicate Check: Each URL checked against database (indexed query)
- Cache Invalidation: Team cache cleared once after all processing
- Typical Speed: ~10-20 entries per second
- Large Batches: 500 URLs typically processes in 25-50 seconds
Status Codes
| Status | Description |
|---|---|
added | URL successfully added to DNC list |
duplicate | URL already exists on DNC list (skipped) |
error | URL failed to process (see error field for reason) |
Compliance Considerations
GDPR
- Batch Processing: Process bulk opt-out requests within 24-48 hours
- Audit Trail: Maintain logs of all bulk imports
- Data Source: Document source of bulk DNC entries
- Verification: Verify consent withdrawal before bulk import
CAN-SPAM
- Opt-Out Lists: Accept and process bulk unsubscribe lists
- Third-Party Lists: Honor opt-outs from third-party sources
- Suppression Lists: Maintain and respect suppression lists
- Processing Time: Process within 10 business days
Common Use Cases
Daily CRM Sync
Large-Scale Migration
Next Steps
After bulk importing DNC entries:- Verify Import: Use List DNC to review entries
- Check Specific URLs: Use Check DNC to validate
- Review Errors: Investigate and retry failed entries
- Monitor Campaigns: Ensure affected contacts are paused
- Audit Compliance: Document import for compliance records
Related Endpoints
- Add Single Entry - Add individual URLs one at a time
- Check DNC Status - Verify if a URL is on the DNC list
- List DNC Entries - View all DNC entries
- Delete Entry - Remove a URL from DNC list
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Minimum array length:
1Last modified on January 28, 2026

