Composites

How to use Composites in Adapptr

Getting Started

The composites service is part of the processing pipeline of Adapptr. 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 https://NAME-svc.fundapps.co/api/adapptr/v2/composites

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.

Example File

CompositeId,CompositeIdType,ComponentId,ComponentIdType,Weighting
.KS100EWI,DataProviderId,005930.KS,DataProviderId,0.2
.KS100EWI,DataProviderId,KR7005930003,Isin,0.3
46141D203,Cusip,US912796ZP71,Isin,0.08646
BNVTS02,Sedol,US912796ZP71,Isin,0.08646

Example Upload Script

# Replace <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://<Name>-svc.fundapps.co/api/adapptr/v2/composites"

payload = {}
files=[
  ('composites',('BYOD.zip',open('<ZipFileLocation>','rb'),'application/zip'))
]
headers = {
  'X-Client-Environment': '<Name>',
  'Authorization': '<Token>'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

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

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