API v1.0 — Universal Lead Schema online

The routing layer
for the insurance lead network.

One API. Every directory platform. LeadSwitchly accepts leads in a single universal schema, ranks every candidate agent across the network with a transparent scoring formula, and delivers signed webhooks the moment a match is made.

7
Product lines
<1s
Match latency
6
Webhook events
POST /api/v1/leads/ingest
200 OK · 412ms
# composer require switchly/php-sdk
$switchly = new SwitchlyClient(
    apiKey:  $_ENV['SWITCHLY_API_KEY'],
    baseUrl: 'https://api.switchly.example',
);

$payload = UlsLeadBuilder::for('medicare')
    ->withConsumer(['phone' => '+1-555-0100'])
    ->withTcpa(true, 'https://example.test/q')
    ->build();

$resp = $switchly->ingestLead($payload);
echo $resp['lead_id']; // 019e4ddd-aaaa-...
php · 12 lines Full quickstart →
Built on Universal Lead Schema · HMAC-signed webhooks · Idempotent ingest · Per-route audit log
Why LeadSwitchly

A protocol-layer router, not another lead vendor.

We don't generate leads. We move them — between the platforms that already do — with the same rigor your payments stack expects.

Deterministic routing

Every match is ranked by the published RoutingScore v1.0 formula — quality, intent, contactability, fraud, platform & agent performance, strategic priority — with the full score breakdown in the audit log for every decision.

Signed webhooks, no surprises

Stripe-style HMAC signatures, 5-minute replay tolerance, six lifecycle events (routed, delivered, failed, scored, flagged_fraud, status_changed), per-webhook secrets you rotate independently.

One schema, every product

The Universal Lead Schema covers Medicare, Health, Life, Auto, Home, Commercial, Final Expense, and Annuities in nine consistent blocks. Add a new product line without a migration.

Lifecycle

Every lead, every signal, every decision — observable.

STEP 01
Ingest
POST /v1/leads/ingest
STEP 02
Validate
ULS + compliance
STEP 03
Score
RoutingScore v1.0
STEP 04
Route
Rank candidates
STEP 05
Deliver
Wallet · webhook
STEP 06
Notify
lead.routed event
Webhook payload

The audit log is the score.

When LeadSwitchly routes a lead, it doesn't just tell you which agent won — it tells you why. Each routed event carries the full per-component score breakdown, the weights used, and the candidate set that lost. Replay it. Dispute it. Improve from it.

event: lead.routed delivered · v1
// X-Switchly-Signature: t=1735900000,v1=...
{
  "id":           "evt_01HK...",
  "type":         "lead.routed",
  "lead_id":      "019e4ddd-aaaa...",
  "agent_id":     "agt_4f9a",
  "score": {
    "total":   0.87,
    "quality": 0.92,
    "intent":  0.81,
    "fraud":   0.03
  },
  "weights": { "Q":0.25, "I":0.20, ... }
}

Ready to wire up your platform?

The full OpenAPI spec, the PHP SDK, the integration guide, and a live sandbox console are all one click away.