{
  "id": 7908933,
  "title": "How Do Verified Sending Domains, Webhooks, and Logs Work in an Email API?",
  "url": "https://urgent.news/2026/09/17/how-do-verified-sending-domains-webhooks-and-logs-work-in-an-email-api",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-17T00:17:01.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/sohom_47/how-do-verified-sending-domains-webhooks-and-logs-work-in-an-email-api-1lj9"
  },
  "original_language": "en",
  "account": "Verified Sending Domains, Webhooks, and Logs form the foundation for running email through an API rather than a traditional mail server. These components ensure legitimacy, real-time notifications, and comprehensive tracking of email messages.\n\nVerified Sending Domains prove that emails are genuinely sent from the domain they claim to be from. This is achieved by adding three DNS records: SPF lists authorized servers, DKIM cryptographically signs messages, and DMARC dictates actions when authentication fails. Notify simplifies this process by providing the necessary records upon domain addition through the Domains dashboard. Verification typically takes 24-48 hours once DNS propagation completes. Domain limits vary by plan, ranging from 1 on Free to 10 on Scale, and sending from an unverified domain results in outright rejection with a DOMAIN_NOT_VERIFIED error.\n\nWebhooks provide real-time event notifications instead of requiring constant polling. Instead of repeatedly checking if an email bounced or was opened, you register an HTTPS endpoint that receives JSON payloads for events like delivered, bounced, opened, clicked, rejected, and more. Notify's webhook events include Send, Delivery, Open, Click, Bounce, Complaint, and DeliveryDelay. Unlike many providers that include a signature in webhook payloads, Notify does not sign them. To register a webhook, specify it per verified domain with optional narrowing to subdomains or from addresses. Up to 10 webhook endpoints are available on the Scale plan. To test the webhook endpoint, Notify offers a dedicated test endpoint. A properly designed webhook handler should acknowledge quickly with a 2xx response and process events asynchronously to avoid false failures. Due to the lack of signature verification in Notify's webhooks, handling the receiving end demands careful design, especially for idempotency to accommodate duplicate deliveries.\n\nLogs serve as a queryable record of every message's journey, including metadata and delivery statuses. Each send generates a record with a messageId, sentAt timestamp, and an events array detailing the event types and timestamps. Notifications are retained for varying periods depending on the plan—48 hours on Free, permanent on Pro and Scale. Querying logs can be filtered by event type and date range, paginated, and accessed via the API. Notify also allows filtering by event type but does not support custom tags or arbitrary headers directly in logs. To correlate log entries with your own system, use the messageId obtained from the send call. The typical flow involves verifying the domain first, sending via the API, registering webhooks for real-time notifications, and falling back to the logs API for comprehensive reporting.",
  "summary": "These three pieces are what let you run email through an API instead of your own mail server: domain verification proves you're allowed to send as your domain, webhooks push you real-time events instead of making you poll, and logs give you a queryable record of what happened to every message. I'll explain how each works generally, then show exactly how Notify implements them — since the generic…",
  "key_points": [
    "Verified Sending Domains authenticate emails via SPF, DKIM, and DMARC.",
    "Webhooks deliver real-time notifications for email events like delivery and opens.",
    "Logs provide a searchable record of each email's journey with metadata."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}