Webhooks

Get a delivery

Reads a delivery by id.

GET
/v1/webhooks/deliveries/{id}

Returns a delivery by its id, which is the X-Marketapi-Delivery-Id header your endpoint received. It shows how many attempts there were (attempt), what your endpoint answered on the last one (responseCode, responseMs, error) and when the next one is (nextRetryAt).

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

id*string

Identifier of the resource, as returned by the API.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

The requested delivery.

application/json
  1. response

One delivery of one event to one endpoint, with the outcome of the last attempt.

id*string

Opaque unique identifier of the delivery. It is the X-Marketapi-Delivery-Id header we sent.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
endpointId*string

The endpoint the event was sent to.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
eventId*string

The event delivered: the id of the body. A redelivery repeats it.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
eventType*string

Type of the event delivered.

Value in"connection.created""connection.updated""connection.revoked""link_session.completed""seller.created""seller.updated""seller.deleted""product.created""product.updated""product.archived""variant.created""variant.updated""variant.archived""inventory.movement_created""inventory.published""warehouse.created""warehouse.updated""warehouse.archived""marketplace_product.created""marketplace_product.updated""listing.created""listing.updated""listing.deleted""listing.status_changed""listing.external_changed""listing.conflict_created""listing.conflict_resolved""asset.ready""asset.failed""order.created""order.updated""order.cancelled""job.completed""job.partially_completed""job.failed"
status*string

State of the delivery. pending: not delivered yet, waiting for an attempt or a retry. delivered: your endpoint answered 2xx. failed: every attempt failed, or the endpoint was paused.

Value in"pending""delivered""failed"
attempt*integer

Attempts already made. 0 while the first one has not happened.

Range0 <= value <= 9007199254740991
responseCode*|

HTTP status your endpoint answered on the last attempt. null when there was no answer (timeout, network).

Range-9007199254740991 <= value <= 9007199254740991
responseMs*|

How long the last attempt took, in milliseconds. null before the first attempt.

Range-9007199254740991 <= value <= 9007199254740991
error*|

Why the last attempt failed (for example HTTP 500 or a timeout). null when it did not fail.

nextRetryAt*|

When the next attempt happens, in ISO-8601 (UTC). null when there is none (delivered or failed).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
deliveredAt*|

When your endpoint answered 2xx, in ISO-8601 (UTC). null before that.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
createdAt*string

When the delivery was created, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
updatedAt*string

When the delivery last changed, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
curl -X GET "https://example.com/v1/webhooks/deliveries/3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01"
{  "id": "d1e2f3a4-b5c6-4d7e-8f90-a1b2c3d4e5f6",  "endpointId": "c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f",  "eventId": "e1d2c3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",  "eventType": "connection.created",  "status": "delivered",  "attempt": 1,  "responseCode": 200,  "responseMs": 84,  "error": null,  "nextRetryAt": null,  "deliveredAt": "2026-10-06T14:32:02.000Z",  "createdAt": "2026-10-06T14:32:01.000Z",  "updatedAt": "2026-10-06T14:32:02.000Z"}