> ## Documentation Index
> Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/monitors/{monitor_id}/matches

> Run the monitor's saved query and return new matches since last_checked_at

Run the monitor's saved query and return new matches since last\_checked\_at

<Info>
  Audience: application and coding agent.
</Info>

## Match window

This endpoint runs the saved query using the monitor's current boundary and returns up to `limit` matches. It is an inspection read: unlike an internal monitor check, it does not advance `lastCheckedAt`. Do not treat an empty response as proof that no future scheduled check can find a match.

For keyword monitors, `lastCheckedAt` becomes the filing-date lower bound. Structured monitor modes are availability-gated, so a disabled structured mode can produce no matches without proving that the underlying event type is absent.

## Canonical metadata

* `requestId`
* `traceparent`

## Example request

<RequestExample>
  ```bash theme={null}
  curl -X GET \
    -H "x-api-key: $SECAPI_API_KEY" \
    -H "secapi-version: 2026-03-19" \
    "https://api.secapi.ai/v1/monitors/mon_example_123/matches"
  ```
</RequestExample>

## Example response

<ResponseExample>
  ```json theme={null}
  {
    "requestId": "req_2ZK8Q1W9F4M6P7R3"
  }
  ```
</ResponseExample>

## Give this prompt to your agent

<Prompt>
  Call SEC API GET /v1/monitors/{monitor_id}/matches to inspect the current saved-search result set. This read does not advance the monitor cursor, so keep the monitor id and returned filing identifiers when reconciling results with later delivery.
</Prompt>

## Failure posture

* treat non-2xx responses as contract-aware failures, not free-form errors
* preserve `requestId` and `traceparent` in logs and downstream reports
* if provenance or freshness metadata is present, return it unchanged so trust is not lost in the handoff
