---
title: "Upload Iv History"
method: POST
path: "/api/admin/upload-iv-history"
tags: ["admin"]
---

# Upload Iv History

`POST /api/admin/upload-iv-history`

## 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/api/admin/upload-iv-history`
- Auth: HTTP bearer

Upload a CSV or Excel file of historical IV data into iv_daily_snapshot.

Accepts files from any source — ORATS, Market Chameleon, AlphaQuery VolVue,
OptionSlam, or any custom spreadsheet.

Required columns (flexible naming):
  - ticker / symbol / underlying
  - date / trade_date / snapshot_date

Optional columns (auto-detected):
  - iv / iv30 / weightedImpliedVolatility
  - iv_rank / ivRank / impliedVolatilityRank1y
  - iv_percentile / ivPercentile
  - put_call_ratio / pcr
  - total_oi / openInterest
  - sector / industry

IV values > 5 are auto-converted from percentage to decimal (e.g. 42.0 → 0.420).
Duplicate (ticker, date) rows within the file are merged before the write.
The write replaces the stored row, so a column this file omits is cleared —
upload complete rows, not partial ones.

Returns: { parsed, upserted, skipped, warnings, sources_detected }

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