Create lead
Create a single lead in the workspace. Returns 409 if a lead with the same email already exists.
curl -X POST "https://api.sendkit.ai/v1/leads" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
}
}'
import requests
import json
url = "https://api.sendkit.ai/v1/leads"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/leads", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
}
}`)
req, err := http.NewRequest("POST", "https://api.sendkit.ai/v1/leads", 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/leads')
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 = '{
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
}
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"_id": "665d4e5f6a7b8c9d0e1f2a3b",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Acme Corp",
"jobTitle": "VP of Sales",
"phoneNumber": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"city": "San Francisco",
"state": "CA",
"country": "US",
"tags": [
"vip",
"enterprise"
],
"customFields": {
"industry": "SaaS",
"revenue": "$10M"
},
"emailVerified": false,
"userId": "664f0a1b2c3d4e5f6a7b8c9d",
"workspaceId": "664f0a1b2c3d4e5f6a7b8c9e",
"createdAt": "2025-06-10T10:30:00.000Z",
"updatedAt": "2025-06-10T10:30:00.000Z"
}
}
{
"success": false,
"error": {
"code": "CONFLICT",
"message": "Lead with this email already exists"
},
"data": {
"_id": "665d4e5f6a7b8c9d0e1f2a3b",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe"
}
}
/v1/leads
Platform API key (sk_user_...) or Workspace API key (sk_...)
The media type of the request body
Lead email address (stored lowercase)
Phone number
LinkedIn profile URL
Arbitrary key-value custom fields
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
Lead email address (stored lowercase)
Phone number
LinkedIn profile URL
Arbitrary key-value custom fields
Responses
Whether the email has been verified via an enrichment provider
Result of the most recent email verification check
deliverableundeliverableriskyunknownConfidence score (0-100) for the email verification result
True if the recipient domain accepts all inbound emails (catch-all configuration)
Whether the recipient's email is protected by a Secure Email Gateway (SEG). null if SEG detection has not been run.
Short identifier for the detected SEG provider
proofpointmimecastbarracudaciscoforcepointsophostrendmicrosymantecmcafeemicrosoft_atpgoogle_postiniHuman-readable name of the detected SEG provider
ProofpointMimecastBarracudaCisco IronPortForcepointSophosTrend MicroSymantecMcAfeeMicrosoftGoogle PostiniTimestamp of the most recent SEG detection check
Timestamp of the most recent enrichment run on this lead
The existing lead record
Last updated 4 days ago
Built with Documentation.AI