---
title: "Cron News Factor Backfill"
method: POST
path: "/cron/news-factor-backfill"
tags: ["cron"]
---

# Cron News Factor Backfill

`POST /cron/news-factor-backfill`

## 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/news-factor-backfill`
- Auth: none declared

Historical as-of derivation of the seven SHADOW news factors (NEWS-03). Auth: X-Cron-Secret.

Writes one factor_history row per (symbol, weekly NYSE session) carrying
the session close, a point-in-time market cap and the seven columns —
weighted into nothing (D-08). No AlphaVantage calls: it reads
news_sentiment_daily / news_sentiment_coverage / price_history only.
Idempotent (pairs that already carry a news row are skipped) and bounded
by `max_minutes`; resume with `resume_after` = the previous run's
`last_symbol_completed`. Stops itself with stopped_because='db_slow' when a
chunk's reads exceed 45s. Duplicate-safe via _run_tracked's atomic claim.

## Headers

- `x-cron-secret` string, nullable

## Request body

- NewsFactorBackfillRequest: Body for one bounded slice of the Phase 94 historical news-factor derivation.
  - `start_date` string, nullable
  - `end_date` string, nullable
  - `tickers` string[], nullable
  - `max_minutes` number
  - `resume_after` string, nullable
  - `pause_seconds` number

## Response `202`

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)
