smartchat

Test webhook endpoint

Sends one signed webhook.test event to the endpoint and waits for the answer. Sends no messages to contacts and does not change the endpoint health. Returns the HTTP status and the duration.

POST /v1/webhook-endpoints/{endpoint_id}/test

Permissionwebhooks:write (all permissions)
RiskWrite (no outside effect)
Idempotency-KeyNot needed (how it works)
Safe to repeatNot safe to repeat blindly: the server keeps no key for this call, so a repeat does the work again.
Rate limit classwrite (120 requests per minute per key)
ConfirmationNone
MCP toolNot available in MCP
Since version2026-10-25

#What it does

  • Changes data in your account. It does not send messages to contacts.
  • Acts on a connected outside system.

#Request

Path parameters

NameTypeDescription
endpoint_idstringWebhook endpoint ID.

#Examples

curl -X POST "https://api.smartchat.marketing/v1/webhook-endpoints/whe_0f8c1a2e4b7d4c3e9a5b6d7e8f901234/test" \
  -H "Authorization: Bearer $SMARTCHAT_API_KEY"
import os
import requests

response = requests.post(
    "https://api.smartchat.marketing/v1/webhook-endpoints/whe_0f8c1a2e4b7d4c3e9a5b6d7e8f901234/test",
    headers={"Authorization": "Bearer " + os.environ["SMARTCHAT_API_KEY"]},
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.smartchat.marketing/v1/webhook-endpoints/whe_0f8c1a2e4b7d4c3e9a5b6d7e8f901234/test", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SMARTCHAT_API_KEY}`,
  },
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());

Response (200):

{
  "object": "webhook_test_result",
  "endpoint_id": "whe_0f8c1a2e4b7d4c3e9a5b6d7e8f901234",
  "delivery_id": "whd_7a1b2c3d4e5f40718293a4b5c6d7e8f9",
  "delivered": true,
  "http_status": 200,
  "duration_ms": 182,
  "error": null
}

#Response

Status 200. Every response has the headers Request-Id, SmartChat-Version and X-RateLimit-*.

NameTypeDescription
objectstringAlways "webhook_test_result". always webhook_test_result
endpoint_idstringTested endpoint.
delivery_idstringDelivery ID of the test (visible in the delivery log).
deliveredbooleanTrue if your server answered with a 2xx status.
http_statusinteger or nullHTTP status of your server. Null if there was no answer. 0 to 599
duration_msintegerDuration in milliseconds. 0 to 3600000
errorstring or nullShort reason if the test failed. up to 200 characters

#Errors

CodeStatusWhen
api_key_expired401This API key has expired.
api_key_invalid401This API key is not valid.
api_key_revoked401This API key was revoked.
authentication_required401No API key was sent. Send 'Authorization: Bearer <key>'.
insufficient_scope403This key lacks a required permission.
ip_not_allowed403This IP address is not allowed for this key.
endpoint_not_found404No webhook endpoint with this ID exists in this account.
validation_failed422A field is not valid.
rate_limited429Too many requests. Wait and try again.
internal_error500Something went wrong on our side.

All errors use one format.