LeadDuo – Service Business SoftwareLeadDuo

LeadDuo REST API Documentation

⚑ 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.

Authentication

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.

Submit Form Data

POSThttps://api.leadduo.io/api/v1/form/{formId}

Request Body

{
  "ld_key": "your_form_key_here",
  "email": "user@example.com",
  "name": "John Doe",
  "message": "I'm interested in your services"
}

Response

{
  "ok": true
}

Code Examples

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));

HTML Form Submission (No JavaScript)

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.

POSThttps://api.leadduo.io/api/v1/form/{formId}

HTML Example

<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:

  • Instant SMS + email alerts sent (if configured)
  • Lead appears in LeadInbox immediately
  • AI scoring applied (if AI Intelligence add-on is active)
  • User redirected to thank you page or custom URL

Use Cases

🌐 Webflow / Notion

Replace your form action URL with LeadDuo's endpoint. Keep all your existing fields.

πŸ”— Zapier / Make.com

Use webhooks to send form data from any platform to LeadDuo.

⚑ Static Sites

Add contact forms to static HTML sites without backend code.

πŸ“± Custom Integrations

Build custom form integrations using the REST API endpoint.

Content-Type Support

Content-TypeUse Case
application/jsonAPI integrations, JavaScript fetch/axios
application/x-www-form-urlencodedHTML forms, standard POST requests
multipart/form-dataForms with file uploads (coming soon)

Get Submissions

GEThttps://api.leadduo.io/api/v1/submissions?formId={formId}

Headers

X-API-Key: your_api_key_here

Query Parameters

ParameterTypeDescription
formIdstringRequired. Your form ID
limitnumberOptional. Number of submissions to return (default: 50)
offsetnumberOptional. Number of submissions to skip (default: 0)

Response

{
  "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:

  • aiScore: 0-100 lead quality score
  • aiTier: "hot" (70+), "warm" (50-69), or "cold" (0-49)
  • aiQualified: true/false based on score threshold
  • aiAnalysis: Reasons, confidence level, and detailed classification
  • Note: These fields are null if AI Intelligence add-on is not active

Code Examples

Retrieve 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));

Rate Limits

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 Codes

ErrorDescription
missing_ld_keyForm key is required
invalid_ld_keyForm key is invalid
form_not_foundForm does not exist
form_inactiveForm is paused
rate_limitedToo many requests, please try again later
invalid_api_keyAPI key is invalid or missing
unauthorizedYou don't have permission to access this resource

Need Help?

Have questions about the API? Contact our support team

LeadDuo API Reference | Form Submission & Webhook Integration Docs