Webhook Logs
The Webhook Log Object
Use webhook logs to troubleshoot Rutter's webhook deliveries to your configured endpoints. List logs for a connection to find a webhook log ID, then fetch that ID to inspect the payload and individual delivery attempts.
Authenticate with your organization's client ID and client secret using Basic authentication. Both endpoints are scoped to your organization. The list endpoint requires the connection's UUID item_id, rather than its access token.
List Webhook Logs
The response contains webhook_logs summaries with IDs, webhook types, resource IDs, delivery URLs, delivery status, retry counts, and timestamps. Payloads and delivery attempts are available from the detail endpoint below.
Select a time window and filters
Each request searches a one-hour window based on the webhook event's creation time, including the start and excluding the end: [start_time, start_time + 1 hour). Omitting start_time searches the most recent hour. There is no end_time parameter, and later retries do not move an event into a new creation-time window.
start_time must be an ISO 8601 timestamp with an explicit timezone, such as 2026-10-08T12:00:00Z or 2026-10-08T08:00:00-04:00. The current list endpoint accepts start times within the last seven days, up to the current time.
Optional filters are webhook_type (an exact type such as ORDER_CREATED) and success (the literal string true or false). success=false means the event has not been delivered successfully; it can include events with retries still pending. retry_amount counts retries after the initial attempt. Check the detail endpoint for each attempt's outcome.
Paginate within the same window
Results are ordered by creation time descending. page starts at 1; limit defaults to 100 and must be an integer from 1 to 500. The offset (page - 1) * limit cannot exceed 1,000,000.
The response reports the searched time_window (with start and end in UTC), the effective page and limit, and has_more. An empty webhook_logs array means no events matched that window and those filters.
- To inspect a longer historical period, set
start_timeto the earliest time you want to inspect within the available history. Request page1with thatstart_time,item_id, and any filters. Omitstart_timeonly if you want to inspect the most recent hour. - Save the returned
time_window.start. Ifhas_moreistrue, request the next page with that value asstart_time, the sameitem_id, filters, andlimit, and incrementpage. - Continue until
has_moreisfalseto finish paging through this window. If you began at an earlierstart_timeand want to inspect the next hour, use the returnedtime_window.endas the nextstart_timeand resetpageto1. Repeat until you reach the end of your desired period or the current time. If you started with the default most recent hour, there is no newer historical window to advance to.
Pinning start_time keeps the window fixed; omitting it on each page would shift the window as time passes. Delivery status and retry information can still change while you paginate.
Request Parameters
item_idstringqueryRequiredID of the connection to return webhook delivery logs for.
limitintegerqueryOptionalpageintegerqueryOptionalstart_timestringqueryOptionalISO 8601 timestamp with a timezone marking the inclusive start of a one-hour webhook creation-time window. Must be in the recent past. The window ends one hour after start_time, exclusively. Defaults to one hour ago.
successenumqueryOptionalFilter to only successful (or only failed) deliveries.
webhook_typestringqueryOptionalFilter to a single webhook type, e.g. ORDER_CREATED.
Response Body
Fetch a Webhook Log
Use an id from webhook_logs to fetch the full log. This ID identifies the logged webhook event; it is distinct from a resource ID, webhook configuration ID, or delivery attempt ID.
The response wraps the detail in webhook_log, adding payload, actual_body, and an attempts array to the summary fields. Attempts are ordered by request start time ascending. Each attempt includes its request body, delivery URL, timing, HTTP status or network error, response headers and body, and whether the response body was truncated. response_headers is a string of header lines, while response_body is a nullable string; non-JSON response bodies may be redacted in full.
Credential-shaped values in payloads, attempt bodies, response headers and bodies, and URLs are redacted as [REDACTED]. Delivery URLs in list summaries are also redacted.
Detail lookups are limited to recent webhooks and may cover a longer history than listing. An unknown ID, an event belonging to another organization, or an event outside the available lookup window returns HTTP 410 with error code RESOURCE_NOT_FOUND.
Request Parameters
idstringpathRequiredThe Rutter generated unique ID of the object.
Response Body
Have questions?
Contact support for personalized guidance.