---
title: "Cron Price Feed Repair"
method: POST
path: "/cron/price-feed-repair"
tags: ["cron"]
---

# Cron Price Feed Repair

`POST /cron/price-feed-repair`

## 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/price-feed-repair`
- Auth: none declared

Manual trigger for the PF-01 dead-feed repair (PFR-01, 2026-10-05).

Runs `scripts/repair_price_feeds.py`'s `run_repair` inside the backend:
DRY RUN by default (classifies the stale `screener_cache` rows and logs
the plan, writes nothing; cron_runs job `price-feed-repair-dry`).
`?apply=true` writes what the script documents — retire verified
delisted/renamed names, backfill provider gaps, and with
`&purge_contaminated=true` delete the AVB successor-series bars (re-checked
first). `&retire_presumed=true` also retires the presumed-dead class;
off by default so that list is reported for review, never auto-retired.
`only=TICK,TICK` limits the run. Auth: X-Cron-Secret.

## Query parameters

- `apply` boolean
- `purge_contaminated` boolean
- `retire_presumed` boolean
- `max_retire` integer
- `stale_days` integer
- `only` string, nullable

## Headers

- `x-cron-secret` string, nullable

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