GEThttps://api.veriko.mx/v1/webhooks/{id}/deliveries

List deliveries for an endpoint

Audience
public
Auth
API key
Permission
webhooks:read
How-to guide →

Returns the delivery attempts for a specific endpoint, from most recent to oldest, paginated.

Each attempt carries the HTTP status code the receiver answered with, the response time, and the truncated response body.

Parameters
ParameterInTypeRequiredDescription
id*pathstring (uuid)required

Unique identifier of the webhook endpoint (UUID v4).

e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479
pagequeryintegeroptional

Page requested, starting at 1.

Default: 1

e.g. 1
per_pagequeryintegeroptional

How many deliveries each page carries.

Default: 50

e.g. 50
Request
curl -X GET 'https://api.veriko.mx/v1/webhooks/{id}/deliveries' \
  -H 'Authorization: Bearer veriko_••••'

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response 200WebhookDelivery — Paginated delivery attempts for this endpoint, with the HTTP status code, response time, and truncated body.
FieldTypeDescription
type*string

JSON:API resource type. Always webhook_delivery.

e.g. webhook_delivery
id*string

Auto-increment delivery identifier.

e.g. 48211
attributes*object

Webhook delivery data (receiver endpoint, attempt, response, and status).

endpoint_id*string (uuid)

Unique identifier of the webhook endpoint (UUID v4) that originated this delivery.

e.g. a1b2c3d4-e5f6-7890-abcd-ef0123456789
endpoint_urlstring

Receiver endpoint URL. Only present on the cross-endpoint list (GET /v1/webhooks/deliveries).

e.g. https://erp.example.com/hooks/pagos
event_type*string

Event type that produced the delivery. Determines the shape of the HMAC-signed body the receiver gets. test marks the synthetic deliveries from the test send.

e.g. validation.completed
validation_id*string | nullnullable

Unique identifier of the associated validation (UUID v4) when the event is validation.*. null for any other event.

e.g. a1b2c3d4-e5f6-7890-abcd-ef0123456789
response_status*integer | nullnullable

HTTP status code the receiver answered with. null when the delivery never completed a request (timeout or SSRF block).

e.g. 200
response_body*string | nullnullable

Receiver response body, truncated to 500 characters.

e.g. {"ok":true}
response_time_ms*integer | nullnullable

Delivery request duration, in milliseconds.

e.g. 184
attempt*integer

Attempt number. 1 is the first send; higher values are retries.

e.g. 1
status*string

Current delivery status. pending: Not delivered yet; retrying: Deferred by the outbound limit and Messenger will retry it; success: Delivered; failed: The latest attempt failed; Messenger can schedule another one for a recoverable failure.

e.g. pending
next_retry_at*TimestampUTC | null

Date and time of the next persisted retry, in ISO 8601 UTC. null when no date is stored; retries scheduled by Messenger do not persist this date on the delivery.

error_message*string | nullnullable

Transport or delivery-block error detail. null when no error detail is available, including when the receiver answered with a non-2xx status.

e.g. Connection timed out after 10s
created_at*string (date-time)

ISO 8601 timestamp in UTC with an explicit Z suffix; for example, "2026-05-01T05:14:38Z". The *_at, *_end, *_start, and *_date fields follow this format. meta.datetime describes the same contract in the response.

e.g. 2026-05-01T05:14:38Z
Response status codesGET /v1/webhooks/{id}/deliveries
StatusClassDescriptionBody
2002xxPaginated delivery attempts for this endpoint, with the HTTP status code, response time, and truncated body.WebhookDelivery
4014xxAuthentication is required or the provided credentials are invalid.ErrorResponse
4034xxInsufficient permissions.ErrorResponse
4044xxnot_found: Endpoint does not exist or does not belong to the user.ErrorResponse
4294xxRate limit exceededErrorResponse
Errors from GET /v1/webhooks/{id}/deliveries
StatusCodeExample
401unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b99b8a7f6e5d4c
403permission_denied

You do not have permission to access this resource.

Envelope
meta.request_id
d5e6f7a8b9c00c9b8a7f6e5d
429rate_limit_exceeded

Rate limit exceeded. Try again in 45 seconds.

Envelope
meta.request_id
f7a8b9c0d1e22e1d0c9b8a7f
Response headers
  • Retry-After: integer — Seconds to wait before retrying. Matches the endpoint's rate-limit window (typically 60s for list endpoints, 1-5s for in-flight idempotent operations).
  • X-RateLimit-Limit: integer — Configured request cap for this bucket. It is emitted on every 429 and, on the authenticated API, also on successful responses, where it is the per-key cap of the account plan.
  • X-RateLimit-Remaining: integer — Requests remaining in the current window. Always 0 at the moment of the 429; on a successful response of the authenticated API it is what is left of the per-key cap.
  • X-RateLimit-Reset: integer — Absolute Unix epoch (seconds) when the window resets. Emitted on every 429, alongside Retry-After, and on successful responses of the authenticated API. Per-endpoint overrides exist (e.g. `rate_limited_login`).