Composite Securities

Composite securities are investments made up of underlying "constituent" securities, such as ETFs, mutual funds, and benchmarks. Use this API to get, create, and delete constituent weights in Addepar. You can also use the Constituent Attributes API to manage attribute values on constituents.

Base route/v1/composite_securities
EndpointsGET /v1/composite_securities/:id/:constituentId
POST /v1/composite_securities/import
DELETE /v1/composite_securities/:id/:date
ProducesJSON
PaginationYes
Application permissions required"API Access: Create, edit, and delete"
OAuth scopesGET COMPOSITE_SECURITIES_READ
POST and DELETE COMPOSITE_SECURITIES_WRITE

🔒 Access requirements

"API Access: Create, edit, and delete" permission is required. Use COMPOSITE_SECURITIES_READ for GET operations and COMPOSITE_SECURITIES_WRITE for POST and DELETE operations.

ℹ️ Addepar currently only supports constituent data for ETFs. This will expand to more investment types over time.

Resource overview

AttributeDescription
dateThe date of the composite security's constituent weights. String. Required. Example: "2024-01-01"
constituentsA list of objects forming the composite security's constituents for the specified date. Array. Required. See constituent object below.

Constituent object

AttributeDescription
entityIdThe constituent security entity, identified by its Entity ID. Number. Required. Example: 199
percentageThe constituent security's weight. Number. Required. Example: 0.42

Get constituent weight

Returns a constituent's weight data from within a composite security. Only one constituent can be retrieved per request. If you do not provide a start or end date, all weights are returned.

GET /v1/composite_securities/:id/:constituentId

🔑 Authentication

All requests require a base64-encoded API key pair:

Authorization: Basic {base64(key_id:key_secret)}

See Access & Authentication for setup.

Query parameters:

ParameterDescription
startDateThe start date for constituent data. String. Optional.
endDateThe end date for constituent data. String. Optional.
curl -X GET "https://{firm}.addepar.com/api/v1/composite_securities/58/199?startDate=2024-01-01" \
  -H "Authorization: Basic {credentials}" \
  -H "Addepar-Firm: 1" \
  -H "Accept: application/vnd.api+json"
HTTP/1.1 200

{
  "data": {
    "id": "58",
    "type": "constituent_values",
    "attributes": {
      "values": [
        {
          "2024-01-01": 0.42
        },
        {
          "2024-01-02": 0.45
        }
      ]
    }
  },
  "included": []
}

Response codes:

  • 200 OK -- Success
  • 400 Bad Request -- Invalid query parameters or IDs do not refer to valid entities
  • 404 Not Found -- Composite Security ID or Constituent ID not found

Create constituent weight

Adds new constituent weight data to a composite security on a specific date.

POST /v1/composite_securities/import

curl -X POST "https://{firm}.addepar.com/api/v1/composite_securities/import" \
  -H "Authorization: Basic {credentials}" \
  -H "Addepar-Firm: 1" \
  -H "Content-Type: application/vnd.api+json" \
  -H "Accept: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "composite_security",
      "id": "58",
      "attributes": {
        "date": "2024-01-01",
        "constituents": [
          {
            "entityId": 199,
            "percentage": 0.42
          },
          {
            "entityId": 200,
            "percentage": 0.58
          }
        ]
      }
    }
  }'
HTTP/1.1 201

{
  "data": {
    "id": "58",
    "type": "composite_security",
    "attributes": {
      "date": "2024-01-01",
      "constituents": [
        {
          "entityId": 199,
          "percentage": 0.42
        },
        {
          "entityId": 200,
          "percentage": 0.58
        }
      ]
    }
  },
  "included": []
}

Response codes:

  • 201 Created -- Success
  • 400 Bad Request -- Composite Security ID is found in the constituent list, IDs do not refer to valid entities, or duplicate Constituent ID

Delete constituent weight

Removes all constituent weight data from a composite security on a specific date.

DELETE /v1/composite_securities/:id/:date

curl -X DELETE "https://{firm}.addepar.com/api/v1/composite_securities/58/2024-01-01" \
  -H "Authorization: Basic {credentials}" \
  -H "Addepar-Firm: 1"
HTTP/1.1 204

Response codes:

  • 204 No Content -- Success

📘 Related resources

Constituent Attributes | Benchmarks | Portfolio Query


Did this page help you?