---
title: "Upsert Holding"
method: POST
path: "/api/portfolio/holdings"
tags: ["portfolio"]
---

# Upsert Holding

`POST /api/portfolio/holdings`

## 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/portfolio/holdings`
- Auth: HTTP bearer

Add a holding, or update it if the symbol already exists for this user.

## Request body

- HoldingRequest
  - `symbol` string, required
  - `shares` number, required
  - `cost_basis` number, required
  - `notes` string, nullable

## Response `201`

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)
