CAPABILITY 04 / API

A REST API
that
doesn't fight you.

Versioned endpoints, JSON in, JSON out, JWT with refresh tokens. The submission endpoint requires no auth — POST and go.

Read the docs ↗
QUICKSTART

Send your first submission in thirty seconds.

No SDK install required. The submission endpoint is unauthenticated — just POST email, name, message. Authentication kicks in for management endpoints (list, export, delete) using JWT with refresh tokens.

BASE URLzenith.infodivelabs.com
SUBMITPOST /crm/submissions/v1
AUTHJWT + REFRESH
FORMATJSON
RATE LIMIT2K/MIN
"c"># POST a submission — no auth required.
"c"># tenantId can be omitted if you submit from a
"c"># verified custom domain or authenticate with a
"c"># tenant account.
curl -X POST https:"c">//zenith.infodivelabs.com/crm/submissions/v1 \
  -H "Content-Type: application/json" \
  -d '{
    "tenantId": "507f1f77bcf86cd799439011",
    "email":    "alex@northwind.co",
    "name":     "Alex Chen",
    "formType": "contact",
    "message":  "Pricing for 250 seats?"
  }'

"c"># 201 Created
"c"># { "success": true,
"c">#   "id": "65f1a2b3c4d5e6f7a8b9c0d1",
"c">#   "message": "Thank you for your submission!" }
THE FLOW

POST returns fast. Webhooks bring the verdict.

The submission endpoint is intentionally thin — it accepts the payload, returns a 201 with the new submission ID, and queues the work. Senders get a fast response. You get acknowledgement, not enrichment.

The AI pipeline then runs server-side: spam scoring, sentiment, urgency, lead tier, categorization, auto-tags. When it lands on a status — approved, flagged, rejected — we POST a signed webhook to the URL you configured.

submission.createdFIRES ONCE PER SUBMISSION
submission.approvedPASSED SPAM CHECKS
submission.flaggedNEEDS REVIEW
submission.rejectedBLOCKED
submission.deletedREMOVED VIA API OR UI
1. POST response (immediate)
HTTP/1.1 201 Created
Content-Type: application/json

{
  "success": true,
  "message": "Thank you for your submission!",
  "id": "65f1a2b3c4d5e6f7a8b9c0d1"
}
2. Webhook to your endpoint (after AI runs)
POST https://your-app.com/zenith-hook
Content-Type: application/json
X-Webhook-Event: submission.created
X-Webhook-Timestamp: 2026-03-04T04:18:23.117Z
X-Webhook-Signature: sha256=<hex hmac-sha256 of body>

{
  "event": "submission.created",
  "timestamp": "2026-03-04T04:18:23.117Z",
  "data": {
    "submissionId": "65f1a2b3c4d5e6f7a8b9c0d1",
    "email":        "alex@northwind.co",
    "name":         "Alex Chen",
    "formType":     "contact",
    "status":       "approved",
    "data":         { "message": "Pricing for 250 seats?" },
    "createdAt":    "2026-03-04T04:18:23.117Z"
  }
}

Stop reading spam.
Start reading leads.

Free 14-day trial. No card. Five-minute integration. Cancel by clicking one button.