Historical Prices
Historical prices represent the price of a share-based investment on a specific date. They are typically created for assets that were held before you used Addepar.
Overview
| Key | Value |
|---|---|
| Base route | /v1/entities/:id/prices |
| Produces | JSON |
| Pagination | Cursor-based (links.prev, links.next) |
| OAuth scopes | HISTORICAL_PRICES_READ (GET), HISTORICAL_PRICES_WRITE (POST, DELETE) |
Access requirementsRequires the "API Access: Create, edit, and delete" application permission.
Resource attributes
| Attribute | Description |
|---|---|
date | String. Required. The date for which the price is recorded, in YYYY-MM-DD format. Example: "2025-01-25" |
source | String. The price data's source. For historical prices, this is always GLOBAL. Example: "GLOBAL" |
value | Number. Required. The numerical value of the price on the specified date. Example: 101.0 |
nodeId | Number. Required. The investment's Entity ID that the price is for. Example: 60 |
priceFactor | Number. Optional. A multiplier affecting a security's total value (called "Principal Factor" in Addepar). Only applies to historical prices on bonds. Example: 1.05 |
comment | String. Optional. Describes the historical price, with a max length of 4,000 characters. Example: "After 2022 acquisition" |
Get all historical prices
Returns an entity's historical prices.
GET /v1/entities/:id/prices
AuthenticationAll requests require a base64-encoded API key pair:
Authorization: Basic {base64(key_id:key_secret)}See Access & Authentication for setup.
| Parameter | Description |
|---|---|
date | Optional. The date to retrieve a price for, in YYYY-MM-DD format. If omitted, all of the entity's historical prices are returned. Example: 2012-06-29 |
curl -X GET "https://{firm}.addepar.com/api/v1/entities/60/prices" \
-H "Authorization: Basic {base64(key_id:key_secret)}" \
-H "Accept: application/vnd.api+json" \
-H "Addepar-Firm: {firm_id}"{
"data": [
{
"id": "60_2012-06-29",
"type": "historical_prices",
"attributes": {
"date": "2012-06-29",
"source": "GLOBAL",
"value": 101.0,
"nodeId": 60
}
}
],
"included": [],
"links": {
"self": "https://{firm}.addepar.com/api/v1/entities/60/prices",
"prev": null,
"next": null
}
}{
"errors": [
{
"status": "404",
"title": "Not Found",
"detail": "Entity with ID 60 not found or not permissioned for your account."
}
]
}200 OK-- Success403 Forbidden-- Lacking necessary permissions404 Not Found-- Entity ID is nonexistent or not permissioned, or no price was found for the specified date
Create or update historical prices
Creates or updates historical prices for a given entity. This operation is asynchronous and returns the background job's ID.
POST /v1/entities/:id/prices
curl -X POST "https://{firm}.addepar.com/api/v1/entities/60/prices" \
-H "Authorization: Basic {base64(key_id:key_secret)}" \
-H "Content-Type: application/vnd.api+json" \
-H "Accept: application/vnd.api+json" \
-H "Addepar-Firm: {firm_id}" \
-d '{
"data": [
{
"type": "historical_prices",
"attributes": {
"date": "2012-06-29",
"nodeId": 60,
"value": 101.0
}
}
]
}'{
"async_price_save_id": 10,
"links": {
"self": "https://{firm}.addepar.com/api/v1/entities/60/prices"
}
}{
"errors": [
{
"status": "400",
"title": "Bad Request",
"detail": "Payload exceeds the maximum number of prices per request."
}
]
}200 OK-- Success400 Bad Request-- Invalid payload or creating more prices than the limit403 Forbidden-- Lacking the required permissions to write prices404 Not Found-- Entity ID is nonexistent or not permissioned
Delete a historical price
Deletes an entity's historical price on a specific date. This operation is asynchronous and returns the background job's ID.
DELETE /v1/entities/:id/prices/:date
WarningThis action permanently removes the historical price record for the specified date. This cannot be undone.
| Parameter | Description |
|---|---|
date | Required. The date of the price to be deleted, in YYYY-MM-DD format. Example: 2012-06-29 |
curl -X DELETE "https://{firm}.addepar.com/api/v1/entities/60/prices/2012-06-29" \
-H "Authorization: Basic {base64(key_id:key_secret)}" \
-H "Accept: application/vnd.api+json" \
-H "Addepar-Firm: {firm_id}"{
"async_price_delete_id": 10,
"links": {
"self": "https://{firm}.addepar.com/api/v1/entities/60/prices/2012-06-29"
}
}{
"errors": [
{
"status": "400",
"title": "Bad Request",
"detail": "The date query parameter is missing or invalid."
}
]
}200 OK-- Successfully submitted the job to delete prices400 Bad Request-- The date query parameter is missing403 Forbidden-- Lacking the required permissions to write prices404 Not Found-- Entity ID is nonexistent or not permissioned
Related resources
- Entities -- Manage investable entities
- Current Prices -- Work with real-time price data
- Transactions -- Record buys, sells, and other activity
Updated 19 days ago