Endpoint detail and deliveries
One endpoint plus its 20 most recent delivery attempts. This is where you look when an event did not arrive: status is pending, delivered or dead, and last_error carries either HTTP <code> or the transport error we saw. Read, so a valid key is enough. Answers 404 NOT_FOUND for an unknown id or one on another account.
Path parameters
Endpoint id from registration.
Response schema
19 fields
Derived from the example response, nested as the JSON is.
Whether the request succeeded.
data
The payload. Everything an endpoint returns sits under this key.
Stable identifier for the record. On the tracking endpoints this is the container UUID, except on a portfolio summary row, where it is the container number.
Where we POST the events.
The events this endpoint receives. Anything not listed is not delivered.
The carrier own phrasing for the event, falling back to our word for the code.
False while the endpoint is paused. A paused endpoint keeps its secret and its history.
Consecutive failed deliveries. It resets on the first success, and a sustained climb is what disables an endpoint.
When we last attempted a delivery. Null before the first one.
When the record was created (ISO 8601).
The last deliveries with their outcome, which is enough to debug an integration without asking us.
recent_deliveries[]
Stable identifier for the record. On the tracking endpoints this is the container UUID, except on a portfolio summary row, where it is the container number.
DCSA event category: SHIPMENT, TRANSPORT or EQUIPMENT.
Current normalised status of the shipment. Ocean lifecycle order: discharged, available, delivered, returned_empty. Two values end a shipment, delivered and returned_empty, and returned_empty outranks delivered.
How many times this one delivery was attempted, retries included.
HTTP status your endpoint answered with on the last attempt. Null when the request never got an answer, for example on a timeout.
What went wrong on the last attempt. Null on a delivered event.
When the record was created (ISO 8601).
When your endpoint accepted the event. Null while it is still failing or queued.
curl 'https://api.schedulesmcp.com/v1/webhooks/3f1c9a4e-7b52-4f0e-9a41-2c9d5e6b8a10' \
-H "Authorization: Bearer smcp_YOUR_API_KEY"const res = await fetch("https://api.schedulesmcp.com/v1/webhooks/3f1c9a4e-7b52-4f0e-9a41-2c9d5e6b8a10", {
headers: {
"Authorization": "Bearer smcp_YOUR_API_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://api.schedulesmcp.com/v1/webhooks/3f1c9a4e-7b52-4f0e-9a41-2c9d5e6b8a10",
headers={"Authorization": "Bearer smcp_YOUR_API_KEY"},
)
data = res.json() {
"ok": true,
"data": {
"id": "3f1c9a4e-7b52-4f0e-9a41-2c9d5e6b8a10",
"url": "https://hooks.example.com/schedulesmcp",
"event_types": ["blank_sailing", "cutoff_approaching"],
"description": "Sailing alerts, booking desk",
"active": true,
"failure_count": 0,
"last_delivery_at": "2026-08-11T09:14:31.204Z",
"created_at": "2026-08-11T09:12:04.881Z",
"recent_deliveries": [
{ "id": "a94b2e10-33d7-4c8a-b0f1-6d2e7c9a4b55",
"event_type": "ping",
"status": "delivered",
"attempt_count": 1,
"last_status_code": 200,
"last_error": null,
"created_at": "2026-08-11T09:14:30.010Z",
"delivered_at": "2026-08-11T09:14:31.204Z" }
]
}
}