MsgDripMsgDrip
Documentation

API reference

Everything you need to send messages, manage contacts and receive events.

Getting started

MsgDrip has a REST API at https://api.msgdrip.com/api/v1. Requests and responses use JSON. To begin, create an API key under Settings → API keys. Use a sandbox key while building; sandbox sends are simulated and never reach customers.

Authentication

Send your key as a bearer token in the Authorization header. Keys are scoped to a workspace and can be revoked at any time.

curl https://api.msgdrip.com/api/v1/me \
  -H "Authorization: Bearer $MSGDRIP_KEY"

Send a message

Send one message to a contact across one or more channels. Channels are tried in the order you list them unless smart routing is enabled for the campaign.

POST/api/v1/messages/send
{
  "contact": "customer_1024",
  "message": "Your order is ready!",
  "channels": [
    "whatsapp",
    "sms",
    "email"
  ],
  "campaign": "order_ready"
}
FieldDescription
contactYour contact ID, or an email or phone number.
messageMessage text. Use a template ID instead for approved WhatsApp templates.
channelsAny of email, whatsapp, sms, gchat.
campaignOptional. Groups the message in reports and analytics.

Contacts

Create or update a contact. If a contact with the same id exists, its fields are merged.

POST/api/v1/contacts
{
  "id": "customer_1024",
  "name": "Priya Shah",
  "email": "priya@example.com",
  "phone": "+447700900123",
  "whatsapp_opt_in": true,
  "fields": { "plan": "Growth", "city": "Leeds" }
}

Campaigns

Trigger a saved campaign for one or many contacts, passing data to fill template fields.

POST/api/v1/campaigns/order_ready/trigger
{
  "contacts": ["customer_1024", "customer_2048"],
  "data": { "order_id": "A-5521", "pickup": "17:00" }
}

Webhooks

Add an endpoint under Settings → Webhooks and choose the events to receive. Each request includes an X-MsgDrip-Signature header; verify it with your signing secret before trusting the payload. Failed deliveries are retried for up to 24 hours.

{
  "event": "message.delivered",
  "message_id": "msg_8f2a91",
  "contact": "customer_1024",
  "channel": "whatsapp",
  "campaign": "order_ready",
  "delivered_at": "2026-10-16T09:41:07Z"
}

Errors & limits

MsgDrip uses standard HTTP status codes. Bursts of up to 100 requests per second are allowed per workspace.

StatusMeaning
400The request is missing a field or has an invalid value. The response says which.
401The API key is missing, revoked or for another workspace.
404The contact, campaign or template was not found.
409The contact has opted out of every requested channel.
429Too many requests. Retry after the time in the Retry-After header.