---
title: "Cron Valuation Tracker Publish"
method: POST
path: "/cron/valuation-tracker-publish"
tags: ["cron"]
---

# Cron Valuation Tracker Publish

`POST /cron/valuation-tracker-publish`

## 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/valuation-tracker-publish`
- Auth: none declared

Manual trigger (or Railway Cron) for the monthly valuation tracker publish.

Steps (run synchronously so caller sees full result):
  1. Snapshot current sector multiples to valuation_tracker_history
  2. Regenerate PDF via WeasyPrint
  3. Send email blast to all gated_downloads subscribers (skipped if dry_run)
  4. Queue a social post via the in-house publisher (skipped if dry_run)

Set dry_run=True to test the pipeline without sending emails or posting social.
Runs automatically on 3rd Friday of each month at 14:00 UTC (08:00 CST) via APScheduler.

## 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)
