---
title: "Cron Universe Dead Feeds"
method: POST
path: "/cron/universe-dead-feeds"
tags: ["cron"]
---

# Cron Universe Dead Feeds

`POST /cron/universe-dead-feeds`

## 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/universe-dead-feeds`
- Auth: none declared

UNI-DEAD-01 (2026-10-12): list — and with ``?apply=true`` retire — the
screener_universe rows whose price feed is dead (no traded price_history
bar AND no screener_cache quote stamp within 14 days of the feed's latest
session; first seen >= 21 days ago; manual / manual_include rows exempt).

DRY RUN by default: returns the list, writes nothing. ``apply=true`` sets
included=false (capped 60/run, reversible — not manual_exclude) and
deletes their screener_cache / options_screener_cache rows; price_history
is never touched. The weekly refresh-universe build runs the same pass
with apply before its upsert. Synchronous (a few dozen reads). Auth:
X-Cron-Secret.

## Query parameters

- `apply` 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)
