Skip to main content

Webhooks

Test your webhook endpoint to verify it can receive notifications from meter.

Test webhook delivery

Send a sample webhook payload to verify your endpoint is configured correctly.

Request body

Response

Example

Webhook payload formats

Meter sends webhooks for both successful and failed jobs. The payload structure differs based on the job status.

Success payload

Sent when a job completes successfully:
delivery_reason is only included in standard webhook payloads. The slack, slack_workflow, and discord formatters cherry-pick fields for human display and do not forward it.

Failure payload

Sent when a job fails:
Failure webhooks do not include results, item_count, has_changes, or content_hash fields.

Webhook types

Meter supports four webhook formats:

Auto-detection rules

The webhook type is auto-detected from the URL when not explicitly set: You can override auto-detection by setting webhook_type explicitly when creating a schedule.
Discord and Slack Workflow types do not require a webhook_secret. For standard and slack types, a secret is auto-generated if not provided.

Webhook secrets

When a schedule has a webhook_url, Meter auto-generates a secret with a whsec_ prefix. The secret is sent in the X-Webhook-Secret header on every webhook delivery. Verify this header to ensure requests are from Meter. See the Webhooks Guide for verification examples.

Retry behavior

Failed deliveries are retried up to 5 times with exponential backoff: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours.
  • 2xx: Success, no retry
  • 4xx: Permanent failure, no retry
  • 5xx / timeout / connection error: Retries with backoff

Error responses

See REST API Errors for detailed error handling.

Next steps

Webhooks Guide

Learn how to handle webhook notifications

Schedules

Set up scheduled scraping with webhooks