---
title: "Your watchlist alerts, newest first: events matched to the tickers, members of Congress and federal-contract recipients (UEIs) on YOUR watchlist, for the API key making the call"
method: GET
path: "/v1/alerts"
---

# Your watchlist alerts, newest first: events matched to the tickers, members of Congress and federal-contract recipients (UEIs) on YOUR watchlist, for the API key making the call

`GET /v1/alerts`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/alerts`
- Auth: API key in header `x-api-key`

Your watchlist alerts, newest first: events matched to the tickers, members of Congress and federal-contract
recipients (UEIs) on YOUR watchlist, for the API key making the call. Kinds:
  congress_trade: a congressional trade disclosed this week in a ticker or by a member on your watchlist.
  initial_13d: an initial Schedule 13D (a new 5%+ activist stake) filed this week in a ticker on your watchlist.
  federal_contract: federal awards at or above your threshold that KeyVex first reported this week, new or newly modified (a later modification of an award you were already alerted to does not alert again).
An event alerts only when its own date (disclosure, filing, the award's latest modification) is within 7 days of
detection and not before you added the entry, so a watchlist never replays history. Each alert's `data` is the
source record as KeyVex stored it when the alert fired, with KeyVex's internal `_` fields removed; the matching
tool may present the same record differently. Paginate with next_cursor. The watchlist itself is managed on
keyvex.com.
Webhooks (paid plans, Basic and up): each POST carries X-KeyVex-Timestamp and X-KeyVex-Signature = sha256 HMAC of
'<timestamp>.<raw body>' with your secret. Receivers MUST verify the signature and REJECT a timestamp older than
5 minutes (replay protection); redirects are never followed; answer 2xx within 5 s.

## Query parameters

- `since` string
- `kind` 'congress_trade' | 'initial_13d' | 'federal_contract'
- `limit` integer
- `cursor` string

## Response `200`

JSON envelope: { results: [...], count, has_more }.

## Other responses

- `400`: Invalid parameter.
- `401`: Missing or invalid API key.
- `402`: This tool requires a higher plan (upgrade_required). Retrying will not help.
- `429`: Tier rate/quota limit reached (rate_limited). Retry-After points at the reset.

---

[API](https://skmtc.dev/keyvex/apis/keyvex-api.md) · [All operations](https://skmtc.dev/keyvex/apis/keyvex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keyvex/apis/keyvex-api/revisions/01c0210c19cd?raw)
