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

CompositeIdCompositeIdTypeComponentIdComponentIdTypeWeightingWeightingQuantity
.KS100EWIDataProviderId005930.KSDataProviderId0.2
.KS100EWIDataProviderIdKR7005930003Isin0.31.3
46141D203CusipUS912796ZP71Isin2
BNVTS02SedolUS912796ZP71Isin0.086460.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:

VersionUrl
v2https://<environment_name>-svc.fundapps.co/api/adapptr/v2/composites
v3https://<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

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