daimon.email
Api referenceWebhooks

List Webhooks

Retrieve all webhooks for your account

Authentication

Account API Key required via Authorization: Bearer {api_key} header.

Query Parameters

inbox_idstringquery

Filter webhooks by inbox UUID. Omit to see all webhooks.

statusstringquery

Filter by webhook status: active, unhealthy, or disabled

curl -X GET 'https://api.daimon.email/v1/webhooks?status=active' \
  -H "Authorization: Bearer dm_free_7d8a9b0c1d2e3f4g5h6i7j8k9l0m1n2o"
import { DaimonClient } from 'daimon-email';

const client = new DaimonClient({
  apiKey: 'dm_free_7d8a9b0c1d2e3f4g5h6i7j8k9l0m1n2o'
});

// Get all webhooks
const allWebhooks = await client.webhooks.list();

// Filter by inbox
const inboxWebhooks = await client.webhooks.list({
  inboxId: 'inb_abc123'
});

// Filter by status
const activeWebhooks = await client.webhooks.list({
  status: 'active'
});

console.log(`Total webhooks: ${allWebhooks.length}`);
from daimon_email import DaimonClient

client = DaimonClient(api_key='dm_free_7d8a9b0c1d2e3f4g5h6i7j8k9l0m1n2o')

# Get all webhooks
all_webhooks = client.webhooks.list()

# Filter by inbox
inbox_webhooks = client.webhooks.list(inbox_id='inb_abc123')

# Filter by status
active_webhooks = client.webhooks.list(status='active')

print(f"Total webhooks: {len(all_webhooks)}")

Response

{
  "result": [
    {
      "id": "wh_xyz789",
      "account_id": "acc_def456",
      "inbox_id": "inb_abc123",
      "url": "https://your-agent.com/webhook",
      "events": ["message.received"],
      "status": "active",
      "last_delivered_at": "2024-03-11T15:30:00Z",
      "failure_count": 0,
      "created_at": "2024-03-11T14:23:45Z",
      "updated_at": "2024-03-11T14:23:45Z"
    },
    {
      "id": "wh_abc456",
      "account_id": "acc_def456",
      "inbox_id": null,
      "url": "https://backup.your-agent.com/webhook",
      "events": ["message.received", "message.bounced"],
      "status": "active",
      "last_delivered_at": "2024-03-11T15:29:00Z",
      "failure_count": 0,
      "created_at": "2024-03-10T09:15:22Z",
      "updated_at": "2024-03-10T09:15:22Z"
    }
  ],
  "next_steps": [
    "Use GET /v1/webhooks/{id} to see detailed delivery history",
    "Check status field - unhealthy webhooks need attention",
    "Use PATCH /v1/webhooks/{id} to update URLs or disable webhooks"
  ]
}

Response Fields

resultarray

Array of webhook objects. Each webhook contains:

  • id - Unique webhook identifier
  • account_id - Owning account
  • inbox_id - Scoped inbox (null for account-wide)
  • url - HTTPS delivery endpoint
  • events - Subscribed event types
  • status - Health status (active/unhealthy/disabled)
  • last_delivered_at - Last successful delivery timestamp
  • failure_count - Consecutive failures
  • created_at - Creation timestamp
  • updated_at - Last modification timestamp

Info

Note: The secret field is never returned in list responses. Secrets are only shown on webhook creation.

Webhook Status

  • active: Delivering events successfully
  • unhealthy: 5+ consecutive delivery failures (still attempting delivery)
  • disabled: Manually disabled, no delivery attempts

Warning

Check for unhealthy webhooks regularly. After 10 consecutive failures, webhooks are automatically disabled.