β‘ Real-time form submissions with instant notifications
The LeadDuo API allows you to submit form data via a simple REST endpoint, retrieve form submissions programmatically, and integrate with your CRM via webhooks or REST API. Each submission triggers optional email and SMS alerts if configured.
LeadDuo is part of the Three Core AI developer suite, alongside EngageAI and AgileAI.
The LeadDuo API uses API keys for authentication. You can generate an API key from your form settings page.
Note: Keep your API key secure. Do not expose it in client-side code or public repositories.
https://api.leadduo.io/api/v1/form/{formId}{
"ld_key": "your_form_key_here",
"email": "user@example.com",
"name": "John Doe",
"message": "I'm interested in your services"
}{
"ok": true
}Choose your preferred language to see how to submit form data
const formData = {
ld_key: 'your_form_key_here',
email: 'user@example.com',
name: 'John Doe',
message: "I'm interested in your services"
};
fetch('https://api.leadduo.io/api/v1/form/YOUR_FORM_ID', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
if (data.ok) {
console.log('Form submitted successfully!');
}
})
.catch(error => console.error('Error:', error));You can submit forms directly using standard HTML forms without any JavaScript. This is perfect for static sites, Webflow, Notion, or any platform where you can edit HTML.
https://api.leadduo.io/api/v1/form/{formId}<form action="https://api.leadduo.io/api/v1/form/YOUR_FORM_ID" method="POST"> <input type="hidden" name="ld_key" value="YOUR_FORM_KEY"> <label for="name">Name:</label> <input type="text" name="name" id="name" required> <label for="email">Email:</label> <input type="email" name="email" id="email" required> <label for="message">Message:</label> <textarea name="message" id="message"></textarea> <button type="submit">Submit</button> </form>
β¨ What happens after submission:
Replace your form action URL with LeadDuo's endpoint. Keep all your existing fields.
Use webhooks to send form data from any platform to LeadDuo.
Add contact forms to static HTML sites without backend code.
Build custom form integrations using the REST API endpoint.
| Content-Type | Use Case |
|---|---|
| application/json | API integrations, JavaScript fetch/axios |
| application/x-www-form-urlencoded | HTML forms, standard POST requests |
| multipart/form-data | Forms with file uploads (coming soon) |
https://api.leadduo.io/api/v1/submissions?formId={formId}X-API-Key: your_api_key_here
| Parameter | Type | Description |
|---|---|---|
| formId | string | Required. Your form ID |
| limit | number | Optional. Number of submissions to return (default: 50) |
| offset | number | Optional. Number of submissions to skip (default: 0) |
{
"ok": true,
"submissions": [
{
"id": 123,
"formId": "form_abc123",
"formName": "Contact Form",
"data": {
"email": "john@acmecorp.com",
"name": "John Smith",
"company": "Acme Corp",
"message": "Looking for enterprise solution..."
},
"createdAt": "2025-11-07T00:00:00.000Z",
"emailSent": true,
"smsSent": false,
"spamFlag": false,
"aiScore": 85,
"aiTier": "hot",
"aiQualified": true,
"aiAnalysis": {
"source": "ai_intelligence",
"reasons": ["Business email", "Company provided", "Detailed message"],
"confidence": "high",
"details": {
"classification": {
"intent": "demo_request",
"urgency": "high",
"persona": "decision_maker",
"sentiment": "positive"
},
"enrichment": {
"companyName": "Acme Corp",
"companySize": "51-200",
"industry": "SaaS"
},
"confidence": 0.85,
"reasoning": "High-intent demo request from decision maker"
},
"scoringBreakdown": {
"baseScore": 60,
"aiBoost": 25,
"total": 85
},
"disclaimer": "AI-generated analysis. May not be 100% accurate.",
"timestamp": "2025-11-07T00:00:00Z"
}
}
],
"total": 150,
"limit": 50,
"offset": 0,
"hasMore": true
}π€ AI Intelligence Fields (Add-On Subscription): When AI Intelligence is enabled, the response includes:
null if AI Intelligence add-on is not activeRetrieve submissions with authentication
fetch('https://api.leadduo.io/api/v1/submissions?formId=YOUR_FORM_ID&limit=10', {
method: 'GET',
headers: {
'X-API-Key': 'your_api_key_here'
}
})
.then(response => response.json())
.then(data => {
console.log('Submissions:', data.submissions);
console.log('Total:', data.total);
})
.catch(error => console.error('Error:', error));Form Submissions: 10 requests per hour per IP address + form key combination
API Requests: 10 requests per hour per API key + IP address combination
Rate limits help prevent abuse and ensure service reliability for all users.
| Error | Description |
|---|---|
| missing_ld_key | Form key is required |
| invalid_ld_key | Form key is invalid |
| form_not_found | Form does not exist |
| form_inactive | Form is paused |
| rate_limited | Too many requests, please try again later |
| invalid_api_key | API key is invalid or missing |
| unauthorized | You don't have permission to access this resource |
Have questions about the API? Contact our support team