Getting Started (v3)
How to use Composites in Data Adapter
The composites service is part of the processing pipeline of Data Adapter. It allows you to send a simple CSV of holdings, which will be expanded and enriched based on data coming from your chosen provider, any uploaded constituent weightings (BYOD) and from our ETF library (if enabled).
Below you can read information on 1. Bring your Own Data (BYOD) and 2. our ETF library.
1. Bring Your Own Data (BYOD)
If you plan on supplying us with constituent data you hold on site, for example custom baskets or Index data used elsewhere within the business you should supply this using the endpoint:
Using the endpoint
POST https://{environment_name}-api.fundapps.co/v3/data/composites/upload
This method uploads the BYOD file that will be used in the positions enrichment.
The composites
parameter must be the file that you need to upload. It is required to be a .csv file or a .zip of a csv file.
It is important to note that Weighting, WeightingQuantity, or both must be defined in each line.
- Weighting can have values ranging from -1 to 1, but not zero.
- WeightingQuantity must be greater than zero.
Example Composites CSV File
CompositeId | CompositeIdType | ComponentId | ComponentIdType | Weighting | WeightingQuantity |
---|---|---|---|---|---|
.KS100EWI | DataProviderId | 005930.KS | DataProviderId | 0.2 | |
.KS100EWI | DataProviderId | KR7005930003 | Isin | 0.3 | 1.3 |
46141D203 | Cusip | US912796ZP71 | Isin | 2 | |
BNVTS02 | Sedol | US912796ZP71 | Isin | 0.08646 | 0.0825 |
Authorization
This endpoint uses Basic authentication, for more information please see Authentication for more details.
Example: Authorization: Basic ZW1haWxAZW1haWwuY29tOnBhc3N3b3Jk
Migration
If you are migrating from the _v2_
Composites BYOD endpoint the only change needed is to the URL:
Version | Url |
---|---|
v2 | https://<environment_name>-svc.fundapps.co/api/adapptr/v2/composites |
v3 | https://<environment_name>-api.fundapps.co/v3/data/composites/upload |
Example Upload Script
# Replace <environment_name> with your environment name
# Replace <ZipFileLocation> with the location of your zip file (i.e. C:/BYOD.zip)
# Replace <Token> with your credential token (i.e. Basic xxxx) or you can swap it
# to how you have authentication set up in your other scripts
import requests
url = "https://<environment_name>-api.fundapps.co/v3/data/composites/upload"
payload = {}
files=[
('composites',('BYOD.zip',open('<ZipFileLocation>','rb'),'application/zip'))
]
headers = {
'Authorization': '<Token>'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
BYOD File Validation
- You can specify additional fields within this CSV, they will be ignored for processing
- BYOD data is persisted until the next BYOD upload occurs, you do not need to upload it each day or run of the service
- If the file passes validation, you should see a return status 201 with a message. Please see below for the example:
Example Upload Composites Response
{
"message": "Upload Successful"
}
2. ETF Library
The ETF Library provides composition data used by the enrichment service. The ETF library is populated with ETFs that track major national indices (Think FTSE, Hang Seng, S&P 500, CAC, Dax, et al) and popular sectoral indices (Think STOXX EUROPE Banks, Healthcare, etc; Dow Jones Industrial Average, MSCI World).
Should you be interested in this service, please contact your Account Manager, as this requires an extra subscription.
We receive updated data from EDI daily, and currently, we will always use the most up-to-date data we have.
Composites in the ETF Library will match only on ISINs. You can match against the ETF ISIN, Index ISIN, any proxied Index Variant ISINs.
ETF Library Usage GET /v2/composites/usage
GET /v2/composites/usage
Example GET Response
GET information regarding the utilization of the subscribed ETF Library. This method provides a list of selected ETF ISINs from the library, along with details on the contracted number of ETFs and the total count already utilized.
{
"used": 2,
"contracted": 10,
"etfsUsed": [
{
"etfISIN": "DE000A0F5UK5",
"etfBenchmarkISIN": "EU0009658632"
},
{
"etfISIN": "IE0005042456"
}
]
}
If you have no subscription to ETF Library the API will return an error: HTTP 403 Forbidden
Updated 4 days ago