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

KeyValue
Base route/v1/entities/:id/prices
ProducesJSON
PaginationCursor-based (links.prev, links.next)
OAuth scopesHISTORICAL_PRICES_READ (GET), HISTORICAL_PRICES_WRITE (POST, DELETE)
📘

Access requirements

Requires the "API Access: Create, edit, and delete" application permission.

Resource attributes

AttributeDescription
dateString. Required. The date for which the price is recorded, in YYYY-MM-DD format. Example: "2025-01-25"
sourceString. The price data's source. For historical prices, this is always GLOBAL. Example: "GLOBAL"
valueNumber. Required. The numerical value of the price on the specified date. Example: 101.0
nodeIdNumber. Required. The investment's Entity ID that the price is for. Example: 60
priceFactorNumber. Optional. A multiplier affecting a security's total value (called "Principal Factor" in Addepar). Only applies to historical prices on bonds. Example: 1.05
commentString. 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

📘

Authentication

All requests require a base64-encoded API key pair:

Authorization: Basic {base64(key_id:key_secret)}

See Access & Authentication for setup.

ParameterDescription
dateOptional. 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 -- Success
  • 403 Forbidden -- Lacking necessary permissions
  • 404 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 -- Success
  • 400 Bad Request -- Invalid payload or creating more prices than the limit
  • 403 Forbidden -- Lacking the required permissions to write prices
  • 404 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

⚠️

Warning

This action permanently removes the historical price record for the specified date. This cannot be undone.

ParameterDescription
dateRequired. 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 prices
  • 400 Bad Request -- The date query parameter is missing
  • 403 Forbidden -- Lacking the required permissions to write prices
  • 404 Not Found -- Entity ID is nonexistent or not permissioned
📘

Related resources


Did this page help you?