Prerequisites
- An SEC API organization administrator who can use the signed-in dashboard.
- A public HTTPS endpoint that can retain the exact raw request body.
SECAPI_API_KEY,curl, andjqfor the read-only reconciliation requests.
1. Configure the control plane
In the signed-in Delivery dashboard, create an endpoint subscribed tomonitor.match. Create a monitor with a specific
query, ticker list, and form filter, then save these values in your receiver’s
secret store:
- monitor ID
- webhook endpoint ID
- signing secret, which is only shown on creation or rotation
x-secapi-signature and
x-secapi-signature-timestamp against the unparsed raw body before parsing
JSON. Use x-secapi-event-id as an idempotency key. The event body and headers
are the delivery record; do not replace their filing identifiers with a summary.
2. Inspect the monitor’s current match window
requestId. This inspection does not advance lastCheckedAt, so it is not a
delivery receipt and does not prove that a later scheduled check will match.
3. Reconcile delivery attempts
eventId; a successful HTTP status only records
the sender’s observed response, not application-level acceptance. Replay only
after the receiver can safely handle the duplicate.
Failure modes
401or403on reconciliation means the API key lacks access to that organization resource.404 monitor_not_foundor404for a webhook endpoint can mean the ID is wrong or belongs to a different organization.- An empty match page is scoped to the saved query and current boundary; it is not evidence that no relevant filing exists.
- A failed delivery attempt requires receiver and delivery-log review. Preserve
eventId, status, error, request ID, and the original filing source record.

