sent-integration-starter
Sent Integration Starter
Bring up a Sent integration in four stages: authenticate, send idempotently, receive verified events, then harden. Do not conflate them — most broken integrations pass stage one and skip stage three.
Stage 1: client and credentials
Direct Sent v3 REST requests authenticate with the x-api-key header. An application proxy may accept Authorization: Bearer from its own callers, and the Sent MCP server uses client-managed OAuth, but neither changes the REST header sent to api.sent.dm. Organization keys may add x-profile-id to act for a child profile; a profile-scoped key that sends that header receives 403.
| Language | Package | Client |
|---|---|---|
| TypeScript | @sentdm/sentdm |
new SentDm() |
| Python | sentdm (imports sent_dm) |
Sent() or AsyncSent() |
| Go | github.com/sentdm/sent-dm-go |
sentdm.NewClient() |
| Java | dm.sent:sent-java |
SentOkHttpClient.fromEnv() |
| C# | Sentdm |
new SentClient() |
| PHP | sentdm/sent-dm-php |
new SentDm\Client($apiKey) |
| Ruby | sentdm |
Sentdm::Client.new |
Every SDK except PHP reads SENT_DM_API_KEY automatically. Single-endpoint receiver samples read SENT_DM_WEBHOOK_SECRET; multi-tenant production receivers need a secret registry keyed by webhook id instead of one process-wide secret. Older documentation uses SENT_API_KEY and SENT_WEBHOOK_SECRET — treat those as aliases and standardize on the SENT_DM_ names.