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 |
| Endpoints | GET /v1/composite_securities/:id/:constituentId |
POST /v1/composite_securities/import | |
DELETE /v1/composite_securities/:id/:date | |
| Produces | JSON |
| Pagination | Yes |
| Application permissions required | "API Access: Create, edit, and delete" |
| OAuth scopes | GET COMPOSITE_SECURITIES_READ |
POST and DELETE COMPOSITE_SECURITIES_WRITE |
🔒 Access requirements
"API Access: Create, edit, and delete" permission is required. Use
COMPOSITE_SECURITIES_READfor GET operations andCOMPOSITE_SECURITIES_WRITEfor POST and DELETE operations.
ℹ️ Addepar currently only supports constituent data for ETFs. This will expand to more investment types over time.
Resource overview
| Attribute | Description |
|---|---|
date | The date of the composite security's constituent weights. String. Required. Example: "2024-01-01" |
constituents | A list of objects forming the composite security's constituents for the specified date. Array. Required. See constituent object below. |
Constituent object
| Attribute | Description |
|---|---|
entityId | The constituent security entity, identified by its Entity ID. Number. Required. Example: 199 |
percentage | The 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:
| Parameter | Description |
|---|---|
startDate | The start date for constituent data. String. Optional. |
endDate | The 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-- Success400 Bad Request-- Invalid query parameters or IDs do not refer to valid entities404 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-- Success400 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 204Response codes:
204 No Content-- Success
📘 Related resources
Updated 7 days ago