Saved-query matches; 30-day inbox, paginated
GET /api/v1/monitoring/inbox
| queryId | query | string (uuid) | |
| unreadOnly | query | "true" | "false" | |
| cursor | query | string (uuid) | |
Mark a match read or unread
PATCH /api/v1/monitoring/inbox/{id}
| id * | path | string (uuid) | |
| read * | body | boolean | |
Saved queries, endpoints and monitoring usage
GET /api/v1/monitoring
Create an endpoint; returns signing secret once
POST /api/v1/webhook-endpoints
| name * | body | string | |
| url * | body | string | |
Verify endpoint ownership
POST /api/v1/webhook-endpoints/{id}/verify
Rotate signing secret; requires verification again
POST /api/v1/webhook-endpoints/{id}/rotate
Delete endpoint and its queries/history
DELETE /api/v1/webhook-endpoints/{id}
Monitor newly indexed matching articles
POST /api/v1/saved-queries
| requiredTerms | body | string[] | All case-insensitive literal substrings must occur in title or description |
| excludedPhrases | body | string[] | Reject articles containing any case-insensitive literal substring in title or description |
| name * | body | string | |
| query * | body | string | |
| endpointId | body | string (uuid) | null | Default: null. |
| minScore | body | number | Default: 0.35. |
| feedIds | body | string (uuid)[] | |
| intervalMinutes | body | object | Default: 1. |
Replace query; starts a new forward-only version
PUT /api/v1/saved-queries/{id}
| id * | path | string (uuid) | |
| requiredTerms | body | string[] | All case-insensitive literal substrings must occur in title or description |
| excludedPhrases | body | string[] | Reject articles containing any case-insensitive literal substring in title or description |
| name * | body | string | |
| query * | body | string | |
| endpointId | body | string (uuid) | null | Default: null. |
| minScore | body | number | Default: 0.35. |
| feedIds | body | string (uuid)[] | |
| intervalMinutes | body | object | Default: 1. |
Pause or resume query
PATCH /api/v1/saved-queries/{id}
| id * | path | string (uuid) | |
| active * | body | boolean | |
Delete query and its delivery history
DELETE /api/v1/saved-queries/{id}
Last 50 events; paginate with cursor
GET /api/v1/webhook-events
Immutable payload and attempt history
GET /api/v1/webhook-events/{id}
Replay the same event ID and payload
POST /api/v1/webhook-events/{id}/replay