Features › API + webhooks

API + webhooks - REST endpoints and HMAC-signed outbound events

Most LinkedIn outreach tools treat integration as an afterthought - "we're available on Zapier" is the typical promise. SocialScalr ships a real public REST API and HMAC-signed outbound webhooks on every paid plan. The same surface internal SocialScalr code uses is the one external integrations get.

The REST API

Base URL: https://socialscalr.com/api/v1/. Authentication: Authorization: Bearer YOUR_API_TOKEN header. Token rotation: Settings → API tokens. Rate limit: 600 requests/minute per workspace.

Endpoints (highlights)

Full reference at /help/api with example payloads.

Example: pull replied leads from the last 24 hours

# Curl
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://socialscalr.com/api/v1/leads?stage=replied&since=24h"

# Returns paginated JSON of leads with full activity, notes, message history.

Outbound webhooks

Webhooks fire when an event happens in your workspace. Configure in Settings → Webhooks. Each endpoint subscribes to a list of event types and receives signed HTTPS POSTs.

Supported event types

Payload shape (every event uses the same envelope)

// POST {your_endpoint}
// X-SocialScalr-Signature: sha256=<hmac-of-body>
// X-SocialScalr-Delivery-Id: del_01HEX...
// Content-Type: application/json
{
  "event": "lead.replied",
  "id": "evt_01HEXBC...",
  "workspace_id": "ws_8a2...",
  "created_at": "2026-05-24T15:32:11Z",
  "data": {
    "lead": { "id": "ld_...", "name": "Sarah Chen", ... },
    "message": { "direction": "inbound", "text": "Sure - send a link." }
  }
}

Signature verification

Every delivery includes an X-SocialScalr-Signature header of the form sha256=<hex>. Verify by computing HMAC-SHA256 of the raw request body using your webhook secret (shown once at endpoint creation time):

// Node.js
const crypto = require('crypto');
const sig = req.headers['x-socialscalr-signature'];
const expected = 'sha256=' + crypto.createHmac('sha256', secret)
  .update(req.rawBody).digest('hex');
if (sig !== expected) return res.status(401).send('bad sig');

Delivery reliability

Rate limits on outbound webhooks

SocialScalr caps outbound webhook delivery at 100 events/minute per workspace. Bursts above that queue and drain at the cap rate. For most workspaces this is invisible; agencies running 8+ active accounts can hit it at peak times.

Integration recipes (with payload + receiver setup)

Full recipes with copy-paste receiver code at /integrations/.

What the API + webhooks are good for

Plan availability

Related

Frequently asked questions

Does SocialScalr have a public REST API?

Yes. The public REST API is included on all paid plans (Starter and above). Authentication is via a per-user API token rotatable from Settings. Endpoints cover campaigns, leads, posts, sequences, and Watchtower entities. Rate limit is 600 requests per minute per workspace.

How do SocialScalr webhooks work?

Configure destination URLs in Settings → Webhooks. Pick which event types to forward (lead.connected, lead.replied, campaign.completed, post.published, watchtower.alert). Each delivery is an HTTPS POST with the event JSON in the body and an HMAC-SHA256 signature in the X-SocialScalr-Signature header. Failed deliveries retry with exponential backoff for 24 hours.

What can I integrate SocialScalr with?

Anything that accepts HTTPS POSTs. Documented recipes ship for Zapier, Make (Integromat), n8n, Slack, Discord, HubSpot, Salesforce, and Pipedrive. Custom integrations to internal CRMs or data warehouses work through the same webhook layer plus a small bridge function in Make/n8n or a dedicated receiver.