TL;DR

Superkabe's webhook API lets external systems push leads and receive real-time status changes. POST leads to /api/v1/leads/ingest with your API key; receive webhooks for status transitions (GREEN/YELLOW/RED), pause events, and bounce events. All endpoints are HMAC-signed.

API & Webhook Integration

Complete API reference for Clay webhooks, direct lead ingestion, and campaign resolution

Integration Overview

Superkabe provides three primary integration points:

  1. 1. Clay Webhook — Receive enriched leads from Clay tables
  2. 2. Direct Ingestion API — Programmatic lead submission
  3. 3. Campaign Resolution API — Automate stalled campaign recovery

1. Clay Webhook Integration

Send enriched leads from Clay directly to Superkabe for campaign routing and protection.

Endpoint

POST https://api.superkabe.com/api/ingest/clay

Authentication

Header: x-organization-id

Your organization ID from Superkabe dashboard (Settings → API Keys)

Request Body

{
 "email": "john.doe@example.com", // Required
 "persona": "VP Engineering", // Optional, defaults to "General"
 "lead_score": 85, // Optional, defaults to 50
 "firstName": "John", // Optional
 "lastName": "Doe", // Optional
 "company": "Acme Corp", // Optional
 "campaignId": "campaign_xyz" // Optional (for direct assignment)
}

💡 Flexible Field Mapping

Clay webhook supports case-insensitive field lookup:

  • email, E-mail, or work email
  • persona, job title, title, or role
  • lead score, score, or lead_score

Response

{
 "message": "Lead ingested successfully",
 "leadId": "lead_abc123",
 "assignedCampaignId": "campaign_xyz" // null if no routing rule matched
}

2. Direct Ingestion API

Programmatically submit leads to Superkabe from your own systems.

Endpoint

POST https://api.superkabe.com/api/ingest

Authentication

Header: x-organization-id

Your organization ID from Superkabe dashboard

Request Body

{
 "email": "jane.smith@company.com", // Required
 "persona": "CTO", // Required
 "lead_score": 90, // Required (0-100)
 "source": "api" // Optional
}

Response

{
 "message": "Lead ingested successfully",
 "leadId": "lead_def456",
 "assignedCampaignId": "campaign_123"
}

Error Codes

StatusReasonSolution
400Missing required fieldsCheck request body for email, persona, lead_score
401Missing organization contextAdd x-organization-id header
409Duplicate webhook eventEvent already processed (idempotency)
500Internal server errorRetry with exponential backoff

Best Practices

  • 1. Idempotency: All webhook endpoints use idempotency keys to prevent duplicate processing
  • 2. Retries: Implement exponential backoff for 5xx errors
  • 3. Webhook Security: Configure webhook secrets in Clay and Superkabe for HMAC signature validation
  • 4. Field Mapping: Use consistent field names in Clay to avoid case-sensitivity issues
  • 5. Monitoring: Check Superkabe audit logs to verify successful webhook delivery

Testing Your Integration

cURL Example - Clay Webhook

curl -X POST https://api.superkabe.com/api/ingest/clay \
 -H "Content-Type: application/json" \
 -H "x-organization-id: YOUR_ORG_ID" \
 -d '{
 "email": "test@example.com",
 "persona": "VP Sales",
 "lead_score": 75,
 "firstName": "Test",
 "lastName": "User"
 }'

Frequently Asked Questions

Where do I find my API key?

+

Dashboard → Settings → API Keys. Keys are workspace-scoped. Rotate them at any time; old keys invalidate immediately.

Are webhook payloads signed?

+

Yes — every outgoing webhook carries an X-Superkabe-Signature header (HMAC-SHA256 over the raw body, keyed with your webhook secret). Verify before trusting the payload.

What are the rate limits?

+

Default: 600 requests/minute per workspace. Enterprise workspaces can request higher limits. 429 responses carry a Retry-After header.