Add single DNC entry
DNC
Add single DNC entry
Add a single LinkedIn URL to your team’s Do Not Contact list
POST
Add single DNC entry
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
Add a single LinkedIn URL to your team’s Do Not Contact (DNC) list. Once added, this contact will be automatically excluded from all current and future campaigns, ensuring compliance with opt-out requests.Use Cases
- Opt-Out Requests: Add contacts who have requested to stop receiving messages
- Compliance Management: Maintain GDPR/CAN-SPAM compliance
- Manual Exclusions: Exclude specific individuals from campaigns
- Customer Requests: Honor removal requests from existing customers
- Integration Workflows: Add DNCs from external systems via API
Key Features
- Automatic URL Normalization: LinkedIn URLs automatically standardized
- Duplicate Prevention: Prevents adding the same URL twice
- Immediate Effect: Contact excluded from all campaigns instantly
- Cache Invalidation: Automatically updates cache for instant checks
- Rate Limited: 30 requests per minute for reliable performance
- Team Isolation: DNC entries only visible to your team
Testing Example
Request Body
Required Fields
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | LinkedIn profile URL to add to DNC list |
URL Format Support
The endpoint accepts various LinkedIn URL formats:https://linkedin.com/in/usernamehttps://www.linkedin.com/in/username/linkedin.com/in/usernamein/username
https://linkedin.com/in/username
Example Request Body
Response Format
Success Response (201 Created)
Error Responses
409 Conflict - URL Already on DNC List
400 Bad Request - Missing URL
400 Bad Request - Invalid URL Format
429 Too Many Requests - Rate Limit Exceeded
401 Unauthorized - Invalid API Key
500 Internal Server Error
URL Normalization
All LinkedIn URLs are automatically normalized before storage:Normalization Process
- Lowercase: Convert to lowercase
- Protocol: Add
https://if missing - Remove www: Strip
www.subdomain - Trim Trailing Slash: Remove trailing
/ - Extract Username: Extract username from various formats
Normalization Examples
| Input | Normalized Output |
|---|---|
https://www.linkedin.com/in/john/ | https://linkedin.com/in/john |
LINKEDIN.COM/IN/JOHN | https://linkedin.com/in/john |
linkedin.com/in/john | https://linkedin.com/in/john |
in/john | https://linkedin.com/in/john |
Rate Limiting
- Limit: 30 requests per minute per team
- Window: Rolling 60-second window
- Shared with: Other DNC write operations
- Exceeded: Returns 429 status with
resetTimetimestamp
Rate Limit Best Practices
- Implement Backoff: Wait for
resetTimebefore retrying - Batch Operations: Use Bulk Add for multiple URLs
- Queue System: Implement a queue for high-volume additions
- Error Handling: Gracefully handle 429 responses
Integration Examples
Handle Opt-Out Request
Webhook Integration
CRM Integration
Form Submission Handler
Automated Campaign Monitoring
Best Practices
- Validate URLs: Ensure LinkedIn URLs are valid before adding
- Handle Duplicates: Gracefully handle 409 responses (URL already exists)
- Immediate Action: Add to DNC as soon as opt-out is received
- Audit Trail: Log all DNC additions with timestamp and reason
- Team Notification: Alert team when contacts are added to DNC
- Bulk Operations: Use bulk endpoint for multiple URLs
- Error Handling: Implement proper error handling and retries
- Compliance: Document the reason for each DNC addition
Compliance Considerations
GDPR Compliance
- Right to Object: Honor opt-out requests within 24 hours
- Proof of Consent: Maintain audit logs of all DNC additions
- Data Retention: Keep DNC list indefinitely or per policy
- Transparency: Provide clear opt-out mechanisms
CAN-SPAM Compliance
- Opt-Out Mechanism: Provide clear unsubscribe links
- Honor Requests: Process opt-outs within 10 business days
- Permanent: Keep opt-outs permanent (don’t remove from DNC)
- No Charges: Never charge for processing opt-outs
Automatic Campaign Integration
Once a URL is added to the DNC list:- Active Campaigns: Contact is automatically paused in all active campaigns
- Future Campaigns: Contact cannot be added to new campaigns
- CSV Imports: DNC entries are skipped during prospect imports
- API Checks: All prospect creation endpoints check DNC list
- Worker Tasks: Agent tasks are automatically skipped for DNC contacts
Performance Considerations
- URL Normalization: Automatic, adds ~5ms to request time
- Duplicate Check: Uses indexed query, typically < 50ms
- Database Write: Typically < 100ms
- Cache Invalidation: Immediate, affects team-wide checks
- Team Isolation: Permissions enforced at database level
Response Fields
| Field | Type | Description |
|---|---|---|
error | string|null | Error code if failed, null on success |
data.$id | string | Unique identifier for the DNC entry |
data.teamId | string | Team ID that owns this entry |
data.url | string | Normalized LinkedIn URL |
data.$createdAt | string | ISO 8601 timestamp when entry was created |
data.$updatedAt | string | ISO 8601 timestamp when entry was last updated |
message | string | Success message |
Common Use Cases
Real-time Opt-Out Processing
Compliance Dashboard
Next Steps
After adding a single DNC entry:- Verify Addition: Use Check DNC to confirm
- View All Entries: Use List DNC to see complete list
- Bulk Operations: Use Bulk Add for multiple URLs
- Monitor Campaigns: Ensure contact is paused in all active campaigns
Related Endpoints
- Check DNC Status - Check if a URL is on the DNC list
- List DNC Entries - View all DNC entries
- Bulk Add Entries - Add multiple URLs to DNC list
- 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
LinkedIn profile URL to add to DNC list
Example:
"https://linkedin.com/in/johnsmith"
Last modified on January 28, 2026

