API Coming Soon

Developer API

Programmatic access to AI-powered company search, enrichment, people lookup, deal scoring, and webhooks. Build powerful integrations on top of LeadScoutr.

Be first in line for API access. No spam, ever.

Authentication & Basics

Simple API key authentication over HTTPS. Consistent JSON responses across all endpoints.

API Key Authentication

Bearer token in Authorization header. Generate keys in your dashboard settings.

HTTPS Only

All API requests require HTTPS. HTTP requests are rejected.

Rate Limiting

Per-minute rate limits based on your plan. Headers include remaining quota.

JSON Responses

All endpoints return JSON. Errors include code, message, and details.

authentication.sh
# All requests require an API key in the Authorization header
curl -X GET https://api.leadscoutr.com/v1/me \
  -H "Authorization: Bearer ls_api_your_key_here"

# Response includes your account info and credit balance
{
  "user": { "email": "[email protected]" },
  "credits": {
    "scout": { "used": 120, "limit": 7500 },
    "enrich": { "used": 15, "limit": 200 },
    "people": { "used": 8, "limit": 75 }
  }
}

API Endpoints

Five core endpoints covering search, enrichment, people, scoring, and webhooks.

POST/v1/search

AI Company Search

Run natural language company searches. Describe your ideal customer and get structured results with firmographic data.

Request Body
{
  "query": "SaaS companies in Germany with 50-200 employees",
  "limit": 20,
  "include_enrichment": true
}
Response
{
  "companies": [
    {
      "name": "Acme Software GmbH",
      "domain": "acme-software.de",
      "industry": "Software",
      "employee_count": 85,
      "city": "Berlin",
      "country": "Germany",
      "score": 82
    }
  ],
  "total": 47,
  "credits_used": 20
}
POST/v1/enrich/company

Company Enrichment

Enrich a company domain with firmographic data including employee count, revenue estimates, tech stack, and industry classification.

Request Body
{
  "domain": "acme-software.de"
}
Response
{
  "name": "Acme Software GmbH",
  "domain": "acme-software.de",
  "industry": "Software",
  "employee_count": 85,
  "estimated_revenue": "$5M-$10M",
  "tech_stack": ["React", "AWS", "PostgreSQL"],
  "founded_year": 2018,
  "location": {
    "city": "Berlin",
    "country": "Germany"
  }
}
POST/v1/people/search

People Lookup

Find decision-makers at any company by domain and job title. Get names, titles, LinkedIn profiles, and verified email addresses.

Request Body
{
  "domain": "acme-software.de",
  "job_title": "Head of Sales",
  "limit": 5
}
Response
{
  "people": [
    {
      "name": "Anna Mueller",
      "title": "Head of Sales",
      "email": "[email protected]",
      "linkedin_url": "linkedin.com/in/annamueller",
      "confidence": "high"
    }
  ],
  "total": 2,
  "credits_used": 1
}
POST/v1/score

Deal Scoring

Score a company across 6 AI-powered dimensions: ICP fit, revenue potential, tech stack, need signals, engagement, and buying readiness.

Request Body
{
  "domain": "acme-software.de",
  "icp": "B2B SaaS companies needing sales tools"
}
Response
{
  "score": 82,
  "dimensions": {
    "icp_fit": 90,
    "revenue_potential": 75,
    "tech_stack": 85,
    "need_signals": 80,
    "engagement": 70,
    "buying_readiness": 88
  },
  "summary": "Strong ICP fit with active buying signals.",
  "credits_used": 1
}
POST/v1/webhooks

Webhook Subscriptions

Subscribe to real-time events for new leads, score changes, enrichment completions, and pipeline updates.

Request Body
{
  "url": "https://your-app.com/webhooks/leadscoutr",
  "events": ["lead.created", "lead.scored", "enrichment.completed"],
  "secret": "whsec_..."
}
Response
{
  "id": "wh_abc123",
  "url": "https://your-app.com/webhooks/leadscoutr",
  "events": ["lead.created", "lead.scored", "enrichment.completed"],
  "status": "active",
  "created_at": "2026-03-01T12:00:00Z"
}

Code Examples

Get started quickly with examples in JavaScript, Python, and cURL.

JavaScript / Node.jsSDK
import LeadScoutr from '@leadscoutr/sdk';

const client = new LeadScoutr({ apiKey: 'ls_api_...' });

// Search for companies
const { companies } = await client.search({
  query: 'logistics companies in Rotterdam with 50+ employees',
  limit: 20,
});

// Enrich and score each result
for (const company of companies) {
  const enriched = await client.enrich.company(company.domain);
  const score = await client.score({
    domain: company.domain,
    icp: 'logistics companies needing fleet management',
  });

  console.log(`${enriched.name}: ${score.score}/100`);
}
PythonSDK
from leadscoutr import LeadScoutr

client = LeadScoutr(api_key="ls_api_...")

# Search for companies
result = client.search(
    query="logistics companies in Rotterdam with 50+ employees",
    limit=20
)

# Enrich and score each result
for company in result["companies"]:
    enriched = client.enrich.company(company["domain"])
    score = client.score(
        domain=company["domain"],
        icp="logistics companies needing fleet management"
    )

    print(f"{enriched['name']}: {score['score']}/100")
cURLREST
# Search for companies
curl -X POST https://api.leadscoutr.com/v1/search \
  -H "Authorization: Bearer ls_api_..." \
  -H "Content-Type: application/json" \
  -d '{
    "query": "logistics companies in Rotterdam",
    "limit": 20
  }'

# Enrich a company
curl -X POST https://api.leadscoutr.com/v1/enrich/company \
  -H "Authorization: Bearer ls_api_..." \
  -H "Content-Type: application/json" \
  -d '{"domain": "acme-logistics.nl"}'

# Score a company
curl -X POST https://api.leadscoutr.com/v1/score \
  -H "Authorization: Bearer ls_api_..." \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "acme-logistics.nl",
    "icp": "logistics companies needing fleet management"
  }'

Rate Limits

Generous rate limits that scale with your plan. Response headers include remaining quota.

PlanSearch /minEnrich /minPeople /minScore /min
Founders30603060
Normal40804080
Enterprise100200100200
X-RateLimit-Limit

Total requests allowed per minute

X-RateLimit-Remaining

Requests remaining in current window

X-RateLimit-Reset

Unix timestamp when the window resets

Error Handling

Consistent error responses with actionable error codes across all endpoints.

Error Response Format
// HTTP 429 — Rate limit exceeded
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests. Please retry after 32 seconds.",
    "retry_after": 32
  }
}

// HTTP 402 — Credit limit reached
{
  "error": {
    "code": "CREDIT_LIMIT_REACHED",
    "message": "Monthly credit limit reached for 'enrich'.",
    "credit_info": {
      "type": "enrich",
      "used": 200,
      "limit": 200,
      "resets_at": "2026-04-09T00:00:00Z"
    }
  }
}

// HTTP 401 — Invalid API key
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or expired API key."
  }
}
200

Success

400

Bad Request

401

Unauthorized

402

Credits Exhausted

404

Not Found

422

Validation Error

429

Rate Limited

500

Server Error

Ready to Build?

The LeadScoutr API is coming soon. Join the waitlist to get early access, documentation, and SDK packages before anyone else.

Free during beta
SDKs for JS & Python
Webhook support