Authentication
Your API key with write scope
Request Body
The ID of the campaign this lead belongs to
Lead’s phone number in E.164 format (e.g., +15555551234)
Your CRM’s internal ID for this lead
Custom data about the lead (name, company, notes, etc.)
ISO 8601 timestamp for when to call this lead
Lead priority (higher = called first). Range: 0-100
Response
Whether the request was successful
The unique ID of the created lead
Error message if request failed
curl -X POST https://lupitor.acrely.ai/api/v1/leads \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaignId": "k978z8ndfnqjnbxmphvf0wd59h6yrd0a",
"phoneNumber": "+15555551234",
"externalId": "CRM_12345",
"metadata": {
"name": "John Doe",
"company": "Acme Corp",
"industry": "Technology",
"notes": "Interested in premium plan"
},
"scheduledFor": "2024-12-25T09:00:00Z",
"priority": 10
}'
{
"success": true,
"data": {
"leadId": "jh7abc123xyz"
},
"error": null
}
Notes
Duplicate Prevention: If a lead with the same phone number already exists in this campaign, the request will fail.
Scheduling: If you don’t provide scheduledFor, the lead will be called as soon as possible based on business hours and priority.
Phone Format: Phone numbers must be in E.164 format (+ and country code). Example: +15555551234
Common Errors
| Error | Cause | Solution |
campaignId is required | Missing campaignId | Include campaignId in request body |
phoneNumber is required | Missing phoneNumber | Include phoneNumber in request body |
Invalid or inactive API key | Wrong API key | Check your API key |
Campaign not found or access denied | Wrong campaign or no access | Verify campaignId and API key scope |
Lead already exists | Duplicate phone number | Phone number already exists in campaign |