List endpoints
Every webhook endpoint on your account, newest first, with its health. failure_count counts consecutive failures and resets to zero on a success. last_delivery_at moves only on a success, so a null there on a busy endpoint is what a failing signature check looks like from our side. The signing secret is never returned.
Counted: 1 call when the request succeeds; refusals and errors are free. A valid key is enough; SchedulesMCP need not be connected. The event deliveries we send are free. See how calls are counted.
Response schema
11 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.
The list of results.
items[]
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).
Errors
Every refusal is { "ok": false, "error": { "code", "message" } }. Branch on the code, and log the message. No refusal or error is counted as a call.
The key is missing, unknown, revoked or past its own expiry date. Not counted.
The monthly call limit or the key's daily limit is spent. Retry-After gives the seconds until it resets. Not counted.
Too many requests in a short window. Wait Retry-After seconds. Not counted.
curl 'https://api.schedulesmcp.com/v1/webhooks' \
-H "Authorization: Bearer smcp_YOUR_API_KEY"const res = await fetch("https://api.schedulesmcp.com/v1/webhooks", {
headers: {
"Authorization": "Bearer smcp_YOUR_API_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://api.schedulesmcp.com/v1/webhooks",
headers={"Authorization": "Bearer smcp_YOUR_API_KEY"},
)
data = res.json() {
"ok": true,
"data": {
"items": [
{ "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" }
]
}
}