---
title: "Cron Ff Feedback Digest"
method: POST
path: "/cron/ff-feedback-digest"
tags: ["cron"]
---

# Cron Ff Feedback Digest

`POST /cron/ff-feedback-digest`

## Request

- Base URL: `https://api.equity-rank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.equity-rank.com/cron/ff-feedback-digest`
- Auth: none declared

Weekly F&F feedback digest (Phase 52 / FF-03).

Pulls every undigested ff_feedback row (digested_at IS NULL), formats
into an owner email via Resend, then marks the rows as digested in a
second batch. Idempotent within the digest window — re-running on the
same day is a no-op if everything is already marked.

Body params:
  dry_run=true  — render the digest but do NOT send + do NOT mark
                  rows as digested. Returns the rendered email for
                  review.

Auth: X-Cron-Secret. Recipient: settings.digest_recipient.
Schedule: Mondays 13:00 UTC (07:00 CST) via Railway Cron.

## Query parameters

- `dry_run` boolean

## Headers

- `x-cron-secret` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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