POST
Add Lead to Campaign
Add a lead to your campaign for automated research, scoring, and outreach.
Endpoint
POST /api/campaigns/:campaignId/leadsReplace :campaignId with your campaign ID. You can find your campaign ID in your campaign dashboard.
Quick Example
curl -X POST https://magnetite.ai/api/campaigns/YOUR_CAMPAIGN_ID/leads \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"companyName": "Acme Corp",
"contactName": "John Smith",
"email": "john@acme.com"
}'Request Fields
Required Fields
| Field | Type | Description |
|---|---|---|
| companyName | string | Company name |
| contactName | string | Contact's full name |
| string | Contact's email address |
Optional Basic Fields
| Field | Type | Description |
|---|---|---|
| domain | string | Company domain (auto-extracted from email if not provided) |
| title | string | Contact's job title |
| phone | string | Contact's phone number |
| linkedInUrl | string | Contact's LinkedIn profile URL |
| companyLinkedInUrl | string | Company's LinkedIn page URL |
| notes | string | Internal notes about the lead (available to research agent) |
Advanced Enrichment Fields
Pass pre-enriched data to skip automatic enrichment and improve scoring accuracy.
| Field | Type | Description |
|---|---|---|
| company | object | Company enrichment data (industry, size, technologies, signals) |
| contact | object | Contact enrichment data (bio, seniority, department, location) |
| researchData | object | Freeform JSON for email personalization |
| extraContext | object | Freeform JSON for extra context passed to research agent |
| customData | object | Any additional custom data (stored with lead) |
Company Enrichment Schema
{
"company": {
"description": "Enterprise software company...",
"website": "https://acme.com",
"linkedinUrl": "https://linkedin.com/company/acme",
"industry": "Software",
"subIndustry": "Enterprise SaaS",
"employeeCount": 250,
"employeeRange": "201-500",
"revenue": 50000000,
"revenueRange": "$10M-$50M",
"foundedYear": 2015,
"fundingStage": "Series B",
"headquarters": "San Francisco, CA",
"country": "United States",
"technologies": ["Salesforce", "HubSpot", "AWS"],
"signals": {
"recentFunding": { "amount": 50000000, "date": "2024-06", "round": "Series B" },
"hiringSignals": { "isHiring": true, "openRoles": 15 },
"growthIndicators": { "employeeGrowth": 0.35, "revenueGrowth": 0.50 }
}
}
}Contact Enrichment Schema
{
"contact": {
"bio": "20+ years in enterprise sales...",
"photoUrl": "https://example.com/photo.jpg",
"seniority": "VP",
"department": "Sales",
"city": "San Francisco",
"state": "California",
"country": "United States",
"timezone": "America/Los_Angeles"
}
}Response
{
"success": true,
"prospectId": "abc123...",
"status": "queued",
"message": "Lead added to campaign and queued for outreach"
}The lead will be automatically scored against your campaign's ICP criteria and added to the outreach queue. Use webhooks to receive notifications when meetings are booked.
Full Example
curl -X POST https://magnetite.ai/api/campaigns/YOUR_CAMPAIGN_ID/leads \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"companyName": "Acme Corp",
"domain": "acme.com",
"contactName": "John Smith",
"email": "john@acme.com",
"title": "VP of Sales",
"linkedInUrl": "https://linkedin.com/in/johnsmith",
"companyLinkedInUrl": "https://linkedin.com/company/acme",
"notes": "Met at SaaStr conference",
"company": {
"industry": "Software",
"employeeCount": 250,
"fundingStage": "Series B"
},
"contact": {
"seniority": "VP",
"department": "Sales"
},
"extraContext": {
"referralSource": "Jane Doe introduced us",
"painPoints": ["Manual outreach", "Low response rates"]
}
}'Error Responses
400
Bad RequestMissing required fields or invalid data format
401
UnauthorizedInvalid or missing API key
403
ForbiddenCampaign doesn't belong to your organization
404
Not FoundCampaign not found
Integrations
Prefer a no-code solution? Use our integrations: