API Overview
The Magnetite API allows you to add leads to your campaigns for automated outreach and meeting booking.
Base URL
https://magnetite.ai/apiAuthentication
All API requests require authentication using a Bearer token. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYGetting Your API Key
- Log in to your Magnetite dashboard
- Navigate to Settings → API Keys
- Click Create API Key
- Give your key a descriptive name (e.g., "Zapier Integration", "Production API")
- Copy your API key immediately - you won't be able to see it again
Important: Your API key is shown only once when created. Store it securely - if you lose it, you'll need to create a new one.
Direct link: Go to API Keys Settings →
Available Endpoints
Adds a lead to your campaign queue for automated research, scoring, and outreach. The lead will be processed through your campaign's ICP scoring and email sequence.
Webhooks
Configure webhook URLs in your campaign settings to receive notifications when important events occur.
Receive a notification with meeting details when a prospect books a meeting through your campaign's calendar link.
Quick Start
Here's a simple example of adding a lead to your campaign:
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"
}'The lead will be automatically scored against your campaign's ICP criteria and added to the outreach queue.
Request Fields
The Add Lead endpoint accepts the following fields. Required fields must be provided; optional fields enhance lead scoring and email personalization.
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 in research) |
| extraContext | object | Freeform JSON for extra context passed to research agent |
Company Enrichment
Pass pre-enriched company data to skip enrichment and improve scoring accuracy.
{
"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",
"region": "North America",
"companyType": "Private",
"technologies": ["Salesforce", "HubSpot", "AWS"],
"techCategories": ["CRM", "Marketing Automation", "Cloud"],
"signals": {
"recentFunding": { "amount": 50000000, "date": "2024-06", "round": "Series B" },
"hiringSignals": { "isHiring": true, "openRoles": 15, "departments": ["Engineering", "Sales"] },
"newsSignals": { "recentNews": ["Launched new product", "Expanded to Europe"] },
"leadershipChanges": { "newCeo": false, "newCro": true },
"growthIndicators": { "employeeGrowth": 0.35, "revenueGrowth": 0.50 }
}
}
}Contact Enrichment
Pass pre-enriched contact data for better personalization.
{
"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"
}
}Research Data
Pass custom research data for email personalization. This is freeform JSON that will be available in your email templates for deep personalization.
{
"researchData": {
"recentPodcastAppearance": "Sales Leadership Podcast, Jan 2026",
"linkedInPosts": ["Excited about Q4 results...", "Hiring for our team..."],
"mutualConnections": ["Jane Doe", "Bob Wilson"],
"companyNewsHook": "Congratulations on the Series B!",
"personalizedOpener": "Saw your post about scaling sales teams..."
}
}Extra Context
Pass extra context as freeform JSON to be used by the research agent. This is useful when you have additional information about the lead that should inform the research process.
{
"extraContext": {
"meetingNotes": "Met at SaaStr 2026, interested in sales automation",
"referralSource": "Jane Doe introduced us",
"specificPainPoints": ["Manual data entry", "Low email response rates"],
"competitorsUsing": ["Competitor A", "Competitor B"],
"budgetRange": "$50k-$100k"
}
}Custom Data
Pass any additional custom data as freeform JSON. This data will be stored with the lead and can be used for filtering or reporting.
{
"customData": {
"leadSource": "Conference 2026",
"boothVisit": true,
"interestLevel": "high",
"followUpDate": "2026-01-20",
"tags": ["enterprise", "priority", "q1-target"]
}
}Full Example with Enrichment
Here's a complete example with all enrichment fields:
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",
"phone": "+1-555-123-4567",
"linkedInUrl": "https://linkedin.com/in/johnsmith",
"companyLinkedInUrl": "https://linkedin.com/company/acme",
"notes": "Met at SaaStr conference, very interested",
"company": {
"industry": "Software",
"employeeCount": 250,
"fundingStage": "Series B",
"technologies": ["Salesforce", "HubSpot"]
},
"contact": {
"seniority": "VP",
"department": "Sales"
},
"researchData": {
"personalizedOpener": "Saw your recent post about scaling sales teams"
},
"extraContext": {
"referralSource": "Jane Doe introduced us",
"painPoints": ["Manual outreach", "Low response rates"]
},
"customData": {
"leadSource": "Conference 2026"
}
}'Response Format
All API responses are JSON formatted:
{
"success": true,
"prospectId": "abc123...",
"status": "queued",
"message": "Lead added to campaign and queued for outreach"
}Rate Limits
API requests are rate limited to ensure fair usage. Current limits are included in response headers. Contact support if you need higher limits.