Skip to main content
Use this tutorial when a signed-in organization needs scheduled saved-search matches delivered to its own HTTPS receiver. A monitor is not a real-time EDGAR feed, and a received event is a prompt to inspect a filing, not a materiality decision.

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, and jq for the read-only reconciliation requests.

1. Configure the control plane

In the signed-in Delivery dashboard, create an endpoint subscribed to monitor.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
The receiver must verify 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

Expected output: up to ten matches for the saved query plus pagination and request metadata. For every result retained by your application, record the monitor ID, accession number, filing URL or provenance, form, filing date, and 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

Expected output: recorded HTTP delivery attempts. Join an attempt to the receiver’s idempotency log by 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

  • 401 or 403 on reconciliation means the API key lacks access to that organization resource.
  • 404 monitor_not_found or 404 for 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.

Next step

Use Filing search to reopen an accession before assigning a reviewer or making a downstream interpretation.