API
API Reference
Learn how to set up Conturs and start scoring leads in minutes.
Overview
The Conturs Scoring Service is a lightweight Go microservice that scores leads locally on your infrastructure. It fetches personalized scoring weights from the Config API and calculates scores with microsecond latency. Your lead data never leaves your servers.
Scoring Service: Self-hosted, runs on localhost:8082
Config API: api.conturs.com (provides personalized weights)
Quick Start
Source code: github.com/conturs-team/scoring
Authentication
Every API request includes your api_key and email in the request body. Get your API key from Dashboard → API at conturs.com.
Health Check
GET /health
Score Leads
POST /leads
Score a batch of leads against your personalized ICP model. The service fetches weights from the Config API on the first call, then caches them locally.
Request Body
Required Fields
api_key (string) — Your Conturs API key
email (string) — Your account email
leads (array) — Array of lead objects to score
Lead Object Fields
email (string) — Lead's email address
first_name, last_name (string) — Contact name
phone (string) — Phone number
company (string) — Company name
job_title (string) — Job title
city, country (string) — Location
industry (string) — Company industry
email_open_count, email_click_count (number) — Engagement metrics
lead_status (string) — One of: new, open, in_progress, qualified, unqualified
num_deals (number) — Number of associated deals
deal_amount (number) — Total deal value
create_date (string) — When the lead was created
notes_last_updated (string) — Last activity date
Response
Response Fields
scores (array) — Array of scored leads
scores[].email (string) — Lead identifier
scores[].score (integer, 0–100) — Overall similarity score
scores[].label (string) — Human-readable label: Hot Lead (80–100), Warm Lead (60–79), Cool Lead (40–59), Cold Lead (0–39)
scores[].factors (array) — Individual scoring factors with weight, value, and contribution
method (string) — Weight source:
similar_clients(personalized),industry_prior(industry benchmark),default(baseline)client_id (string) — Your client identifier
Scoring Factors
Each lead is evaluated across 10 factors. Weights are personalized based on what works for similar businesses.
Lead Source — Whether the lead has a valid email source
Valid Email — Email format validation
Company Match — Company name present and matchable
Industry Match — Industry alignment with your ICP
Recency — How recently the lead was created
Lead Status — Current pipeline status (qualified > in_progress > open > new)
Engagement — Email opens and clicks activity
Profile Completeness — How many data fields are filled
Company Size — Employee count alignment with your ICP
Activity Recency — How recently notes or data were updated
Score Calculation
Scores are calculated as: score = Σ(factor_value × factor_weight) × 100
Each factor contributes proportionally based on its personalized weight. Weights are generated by the Config API based on conversion patterns of similar businesses.
Score Labels
80–100: Hot Lead — Excellent fit. Prioritize immediately.
60–79: Warm Lead — Good fit. Worth focused outreach.
40–59: Cool Lead — Average fit. Nurture if other signals positive.
0–39: Cold Lead — Low fit. Marketing drip only.
Weight Methods
similar_clients
Best quality. Weights generated from conversion patterns of businesses similar to yours. Requires at least 5 similar clients with feedback data.
industry_prior
Good quality. Research-based weights for your industry vertical when not enough similar client data exists.
default
Baseline weights. Used on first registration before any data is collected. Still produces useful scores.
Feedback Loop
Improve scoring accuracy by reporting lead outcomes. Feedback from your account improves weights for all similar businesses.
Outcome Types
converted (reward: +1.0) — Lead became a customer
replied (reward: +0.5) — Lead engaged
clicked (reward: +0.3) — Lead clicked a link
ignored (reward: -0.5) — Lead did not respond
bounced (reward: -1.0) — Email bounced
Architecture
Why Self-Hosted?
Zero network latency — Microsecond scoring vs millisecond API calls
Privacy by design — Lead data never transmitted externally
Works offline — Cached weights enable scoring without internet
Unlimited scoring — No per-request costs, score as many leads as needed
Simpler compliance — Data stays on your infrastructure (GDPR, SOC 2)
Data Flow
1. Scoring Service starts on your infrastructure
2. On first request, fetches personalized weights from Config API (api.conturs.com)
3. Weights are cached locally
4. All scoring calculations happen locally — lead data never leaves
5. Optional: send feedback to Config API to improve weights over time
Integration
The Scoring Service works with any automation tool:
n8n — HTTP Request node to POST /leads
Zapier — Webhooks by Zapier to call the API
Custom code — Any HTTP client (curl, Python requests, fetch)
HubSpot — Native app (in review) for automatic CRM scoring
Uspacy — Native marketplace app
This is where the documentation content will appear. Connect this text node to the Content CMS field.
