Skip to main content
Every InsightAI tenant gets three credentials at creation time (see SDKs & Integration for how to generate them). Each has a distinct purpose — using the wrong one for the wrong call is the most common integration mistake, so read this before wiring anything up.

The three credentials

The private HMAC secret and webhook signing secret should never be embedded in client-side code beyond the SDK’s own signing logic, and never logged. The SDK signs locally — the raw secret itself doesn’t need to leave the device except inside the signature computation.

Signing outbound telemetry (SDK → InsightAI)

Every telemetry payload the SDK sends is signed with HMAC-SHA256, using your private HMAC secret, over the raw JSON request body:
Your SDK config handles this automatically — you only need to supply the secret:
If you’re calling the ingest API directly (outside an SDK, e.g. from a server-side integration), sign it yourself:

Verifying inbound webhooks (InsightAI → your backend)

When InsightAI delivers a risk.alert event to your configured webhook URL (see Webhooks & Payload Reference), verify the signature before processing the payload — never act on an unverified webhook body.
Compute the signature over the raw, unparsed request body — not a re-serialized version of the parsed JSON. Re-serializing can change key ordering or whitespace and produce a signature mismatch even for a genuinely valid payload.

REST API calls (dashboard/admin endpoints)

Use your public API key as a bearer token:

Key rotation

Both the HMAC secret and webhook signing secret can be rotated from the DI Dashboard under Admin → Integrations → [your tenant] → Rotate keys. Rotating invalidates the old secret immediately — coordinate a deploy so your SDK config and webhook verification update together, since there’s no overlap window where both old and new secrets are valid simultaneously.