MemorySync
API Reference

List Webhook Deliveries

Paginated history of every delivery attempt for a single webhook endpoint, newest first. Each row carries the full event payload plus delivery telemetry (HTTP status, latency, attempt counter, signature). Used by the dashboard's webhook log view and by SDKs that want to surface delivery health.
GET/org/webhooks/{endpoint_id}/deliveries

Authentication

Accepts a JWT bearer token (Authorization: Bearer eyJ…) or an API key (X-API-Key: ms_live_…). API-key callers should send X-Project-ID unless the key is project-locked. Cross-tenant operators must send X-Tenant-ID.

Path parameters

FieldTypeRequiredDescription
endpoint_idintegerrequiredWebhook endpoint id.

Query parameters

FieldTypeRequiredDescription
pageintegeroptionalOne-indexed page number. Default 1.
page_sizeintegeroptionalRange 1..100. Default 20.
status_filterstringoptionalRestrict to a single delivery status (e.g. delivered, failed, dead_letter, retrying, pending).

Response

Returns 200 OK with the following body.

FieldTypeRequiredDescription
deliveriesobject[]optionalDelivery rows ordered by created_at DESC.
totalintegeroptionalTotal deliveries matching the filter.
pageintegeroptionalEchoed page index.
page_sizeintegeroptionalEchoed page size.
200.json
{
"deliveries": [
{
"id": 9012,
"endpoint_id": 42,
"event_type": "memory.created",
"event_id": "evt_01HX...",
"status": "delivered",
"payload": {
"id": "evt_01HX...",
"type": "memory.created",
"data": {
"memory_id": 184213
}
},
"payload_hash": "sha256:9b...",
"signature": "t=1714824660,v1=...",
"status_code": 200,
"response_body": "{\"ok\":true}",
"error_message": null,
"latency_ms": 142,
"attempt_number": 1,
"max_attempts": 6,
"next_retry_at": null,
"created_at": "2026-05-04T12:31:00Z",
"completed_at": "2026-05-04T12:31:00Z"
}
],
"total": 1284,
"page": 1,
"page_size": 20
}

Errors

StatusCodeDescription
400validation_errorBody or query failed schema validation. The error includes the offending field name.
401unauthenticatedMissing or invalid bearer token / API key.
403forbiddenAuthenticated principal lacks the required scope, role, or project access.
404not_foundTarget resource does not exist or is not visible to the calling tenant.
429rate_limitedPer-IP or per-route limit exceeded. Respect the Retry-After header.
500internal_errorUnhandled server error. Quote the request_id when contacting support.

Examples

cURL
curl -X GET https://api.memorysync.io/org/webhooks/EXAMPLE_ID/deliveries \
-H "Authorization: Bearer $MEMORYSYNC_KEY"
javascript
import { MemorySync } from 'memorysync'
const client = new MemorySync({ apiKey: process.env.MEMORYSYNC_KEY })
const result = await client.request({
method: 'GET',
path: '/org/webhooks/EXAMPLE_ID/deliveries',
})
console.log(result)
python
from memorysync import Client
client = Client(api_key=os.environ["MEMORYSYNC_KEY"])
result = client.request(
method="GET",
path="/org/webhooks/EXAMPLE_ID/deliveries",
)
print(result)

Behavior & notes

Requires owner, admin, or developer role and webhooks:read scope. response_body is truncated to 1000 characters. Companion routes: GET /org/webhooks/{endpoint_id}/deliveries/latest, GET /org/webhooks/deliveries/recent, POST /org/webhooks/deliveries/{delivery_id}/retry.