---
title: "Force a Watch mail job (alerts, weekly digest, or monthly readout)"
method: POST
path: "/v1/watch/run"
---

# Force a Watch mail job (alerts, weekly digest, or monthly readout)

`POST /v1/watch/run`

## Request

- Base URL: `https://api.lodestarstamp.com`
- URL: `https://api.lodestarstamp.com/v1/watch/run`
- Auth: one of:
  - none
  - API key in header `X-Lodestar-Key`
  - OAuth 2 (authorization code, authorization URL `https://api.lodestarstamp.com/oauth/authorize`, token URL `https://api.lodestarstamp.com/oauth/token`, scopes: `mcp:read`)
  - API key in header `PAYMENT-SIGNATURE`

Desk/live-close only. Requires secret WATCH_CRON_KEY (Bearer or x-watch-cron-key). 503 if the secret is unbound. Same send path and WATCH_MAIL_SEND_ENABLED gate as the baseline. Crons already run these jobs; this endpoint does not invent a buy. Paying never changes what the public receipt shows.

## Request body

- object
  - `job` 'alerts' | 'digest' | 'readout'

## Response `200`

Job ran (sent, empty, blocked, or skipped)

## Other responses

- `400`: Unknown job or bad JSON
- `401`: Wrong or missing key
- `502`: Send failed, or a subscriber is missing business_key
- `503`: WATCH_CRON_KEY not bound

---

[API](https://skmtc.dev/lodestarstamp/apis/lodestar-trust-api.md) · [All operations](https://skmtc.dev/lodestarstamp/apis/lodestar-trust-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lodestarstamp/apis/lodestar-trust-api/revisions/af78368ab7a5?raw)
