Fund lists are used to track things like "registered for sale" keys. Create a list name then add applicable funds to it. Note: the array of funds or share classes should be identified by the clientCode
used to load them in the system. Lists can be used as filters for the /searchEntity
service.
Parameter | Value |
---|---|
End Point | https://<US: api-us.kurtosys.app OR UK: api-uk.kurtosys.app>/config/upsertFundList |
Headers | X-KSYS-TOKEN |
Content Type | application/json |
HTTP Method | POST |
{
"entityType": "FUND",
"listType": "entity",
"listName": "institutional_UK",
"description": "UK Institutional funds",
"funds": ["GB123123123", "GB12312314"],
"segmentationTags": {
"country": { "value": "UK" },
"language": { "value": "en" }
}
}
{
"entityType": "FUND",
"listType": "entity",
"listName": "institutional_UK",
"funds": ["RWCGHIG", "RWGCRCH"],
"useEntityAlias": true,
"segmentationTags": {
"country": { "value": "UK" },
"language": { "value": "en" }
}
}
{
"entityType": "FUND",
"listType": "query",
"segmentationQuery": {
"terms": [
{
"code": "investor_type",
"operation": "include",
"values": ["institutional"]
},
{
"code": "market_ready",
"operation": "include",
"values": ["yes"]
},
{
"code": "market_cap",
"operation": "number_range",
"values": [50, 500]
},
{
"code": "inception_date",
"operation": "date_range",
"values": ["2017-01-01", "2018-01-01"]
},
{
"code": "domicile",
"operation": "exclude",
"values": ["UK"]
}
]
},
"listName": "UK Institutional funds",
"description": "Large, ready to trade, Non-UK Institutional Funds 2017",
"segmentationTags": {
"language": { "value": "en" }
}
}
{
"entityType": "FUND",
"listName": "Emerging Markets ex China",
"description": "Emerging Markets excluding China to prevent skew",
"listType": "composite",
"compositeQuery": {
"operation": "subtract",
"values": ["Emerging Markets", "China"]
}
}
Parameter | Value |
---|---|
entityType | The types of the entities in the list |
listType | The type of the list valid values are "entity" (for lists that do not change) and "query" (for lists that get the entities from the provided segmentationQuery ) |
segmentationQuery | The query used to determine which entities should be in this list (if listType is "query") |
compositeQuery | The operation and segmentation lists used to form a composite query (when listType is "composite"). Segmentation lists need to be of the same entityType |
listName | The name of the list |
description | Optional description of the list |
funds | The client codes for the entities included in this list. If this is not provided, the funds will not be updated. If it is provided, it will replace the current list of funds, even if it is an empty array |
useEntityAlias | Optional; when set to true, the funds parameter should contain a list of the entity property defined as the entity alias in client configuration instead of the client codes |
segmentationTags | Optional; the segmentation tags that a list is tagged with for use in the production center etc. |
The segmentationQuery
property is used when the listType
is query
. This means the entities in the list will be determined by the provided search criteria. The example below shows an example of the capabilities of the query. It contains a list of terms
objects which are logically ANDed together before the search is performed. This means an entity must have properties that fulfill each of the criteria before being added to this list.
{
"terms": [
{
"code": "investor_type",
"opertation": "include",
"values": ["institutional"]
},
{
"code": "market_ready",
"operation": "include",
"values": [true]
},
{
"code": "market_cap",
"operation": "number_range",
"values": [50, 500]
},
{
"code": "inception_date",
"operation": "date_range",
"values": ["2017-01-01", "2018-01-01"]
},
{
"code": "domicile",
"operation": "exclude",
"values": ["UK"]
}
]
}
Parameter | Value |
---|---|
code | The property on the entity to match on |
operation | The operation used when performing a match. Possible values are include , exclude , number_range and date_range . The use of these is restricted to properties with the applicable data types. See the matrix below |
values | The values to use in the match |
include |
exclude |
number_range |
date_range |
|
---|---|---|---|---|
String (STRG) | ✓ | ✓ | ✗ | ✗ |
Date (DATE, DTIM) | ✗ | ✗ | ✗ | ✓ |
Number (DCML, ITGR) | ✗ | ✗ | ✓ | ✗ |
Boolean (BOOL) | ✓ | ✓ | ✗ | ✗ |
The compositeQuery
property is used when the listType
is composite
. The entities in this dynamic list will be composed by combining 2 existing segmentation lists and applying the specified operation.
In the following example, the result will be all items that are in "List 1" but NOT in "List 2":
{
"operation": "subtract",
"values": ["List 1", "List 2"]
}
In the following example, the result will be all items that are in BOTH "List 1" and "List 2":
{
"operation": "intersect",
"values": ["List 1", "List 2"]
}
Parameter | Value |
---|---|
operation | The operation used when combining the lists. Possible values are subtract andintersect |
values | The lists to use in the composite query |
/config/listfundlists
Fund Lists can be listed by calling the following service with an empty json body {}
to return all the lists, or a list name to return a specific list.
If useEntityAlias
is set, it will use the Entity Alias columns and not the default entity column.
Parameter | Value |
---|---|
End Point | https://<US: api-us.kurtosys.app OR UK: api-uk.kurtosys.app>/config/listfundlists |
Headers | X-KSYS-TOKEN |
Content Type | application/json |
HTTP Method | POST |
Return Type | JSON |
Return Data | An array of fund lists |
Return a specific list:
{
"listname": "Institutional",
"useEntityAlias": false
}
{
"listName": ["Institutional", "All Funds"],
"description": ["All parent funds", "UK Institutional funds"],
"useEntityAlias": false,
"listType": ["entity"],
"entityType": ["FUND"],
"segmentationTags": {
"language": { "value": "en" }
},
"start": 0,
"limit": 10,
"sort": "description",
"sortDir": "desc"
}
An empty request object returns all lists (as per the Response
section)
JSON Key | Required | Type | Description |
---|---|---|---|
listname | FALSE | STRING | The name of the list to return (cannot be used with listName ) |
listName | FALSE | ARRAY | The names of the lists to return (cannot be used with listname ) |
description | FALSE | ARRAY | The descriptions of the lists to return |
useEntityAlias | FALSE | BOOLEAN | Determines if the Entity Alias is returned or the default Entity |
listType | FALSE | ARRAY | entity , query or composite |
entityType | FALSE | ARRAY | FUND , CLSS , ACCT , BMRK or MIXD |
segmentationTags | FALSE | TAG | Filter by segmentation tags attached to the list |
start | FALSE | INTEGER | Start index of the records (used for pagination) |
limit | FALSE | INTEGER | The max results to return |
sort | FALSE | STRING | The field to sort by listName or description |
sortDir | FALSE | STRING | asc or desc |
Tag:
JSON Key | Required | Type | Description |
---|---|---|---|
\ |
FALSE | OBJECT | The segmentation tag to search for |
[
{
listId: 1,
listName: "All Funds",
listType: "Entity",
entityType: "FUND",
funds: ["ALPHA", "BOND", "EQUITY", "EURO", "MACRO"],
segmentationTags: {
country: { value: "France" },
institutions: { value: "Health" },
},
description: "All parent funds",
segmentationQuery: {},
},
{
listId: 2,
listName: "UK Institutional",
listType: "Entity",
entityType: "CLSS",
funds: [
"KS0273642768",
"KS0273642925",
"KS0281101039",
"KS0281101385",
"KS0273643733",
"KS0281101468",
"KS0273643493",
"KS0280814137",
"KS0280814301",
"KS0281101898",
"KS0391202164",
"KS0453475161",
],
segmentationTags: {},
description: "UK Institutional funds",
segmentationQuery: {},
},
];
With useEntityAlias
set to true.
[
{
listId: 3,
listName: "individual_UK",
listType: "Entity",
entityType: "CLSS",
funds: [
{
clientCode: "GB123123123",
alias: "RWCGHIG",
type: "CLSS",
},
{
clientCode: "GB12312314",
alias: "RWGCRCH",
type: "FUND",
},
],
segmentationTags: {},
description: "UK Individual funds",
segmentationQuery: {},
},
];
If limit
is provided in the request, it is assumed that pagination is required. This means the response contains the total
number of records. The response will be:
{
"start": 0,
"limit": 1,
"total": 16,
"values": [
{
listId: 3,
listName: "individual_UK",
listType: "Entity",
entityType: "CLSS",
funds: [
{
clientCode: "GB123123123",
alias: "RWCGHIG",
type: "CLSS"
},
{
clientCode: "GB12312314",
alias: "RWGCRCH",
type: "FUND"
}
],
segmentationTags: {},
description: "UK Individual funds",
segmentationQuery: {}
}
]
}
JSON Key | Type | Description |
---|---|---|
start | INTEGER | The start index of the records |
limit | INTEGER | The maximum records returned in this response |
total | INTEGER | The total number of records matching the request filter (if any) |
values | ARRAY | The array of values |
getFundListFacets
Facets are a list of entities' meta properties filtered by a searchTerm
. The supported facet types are: segmentation list name, segmentation tags, segmentation tag values, and entities. Results are grouped and limited to 10 results per propertyValues
.
Parameter | Value |
---|---|
End Point | https://<US: api-us.kurtosys.app OR UK: api-uk.kurtosys.app>/config/getFundListFacets |
Headers | X-KSYS-TOKEN |
Content Type | application/json |
HTTP Method | POST |
Return Type | JSON |
{
"searchTerm": "a",
"listType": ["entity", "query"]
}
Property | Required | Type | Description |
---|---|---|---|
searchTerm | TRUE | STRING | The value to search for |
listType | FALSE | STRING LIST | The list types to return facets for |
The response contains the facets with items that match the searchTerm
.
{
"listName": [
{
"code": "listName",
"label": "List Name",
"values": [
"Alternatives",
"DE Individual",
"DE Institutional",
"FR Individual",
"FR Institutional",
"UK Individual",
"UK Institutional"
]
}
],
"description": [
{
"code": "description",
"label": "Description",
"values": [
"All parent funds",
"Alternatives funds",
"DE Individual funds",
"DE Institutional funds",
"FR Individual funds",
"FR Institutional funds",
"UK Individual funds",
"UK Institutional funds"
]
}
],
"segmentationTags": [
{
"code": "region",
"label": "Region",
"values": ["Africa", "Americas"]
}
]
}
Property | Type | Description |
---|---|---|
listName | FACET ARRAY | The name of the property found |
description | FACET ARRAY | The description of the matched item |
segmentationTags | FACET ARRAY | The segmentation tags of the matched item |
FACET:
Property | Type | Description |
---|---|---|
code | STRING | The facet code |
label | STRING | The facet label |
values | STRING ARRAY | The values of the matching item |
/config/deletefundlist
A fund list can be deleted by supplying the listName
in the request. This requires that the user either be assigned the DELETE_FUNDLIST
permission or be assigned to a role that includes that permission, e.g. ClientAdmin
Parameter | Value |
---|---|
End Point | https://<US: api-us.kurtosys.app OR UK: api-uk.kurtosys.app>/config/deletefundlist |
Headers | X-KSYS-TOKEN |
Content Type | application/json |
HTTP Method | POST |
Return Type | JSON |
{
"listName": "Institutional"
}
{
}
JSON Key | Required | Type | Description |
---|---|---|---|
listName | TRUE | STRING | The specific list to delete |
If the list is deleted successfully, the returned response code will be 200.
If the list is in use, the response code is 409, and includes a list of all the commentaries, disclaimers, composite queries and document production workflows where the segmentation list is being used.
{
"error": {
"message": "The segmentation list is in use, and can not be deleted as it is currently in use",
"areasInUse": [
{
"area": "commentary",
"values": ["Fund Performance", "Fund Introduction"]
},
{
"area": "Disclaimers",
"values": ["Disclaimer"]
},
{
"area": "Composite queries",
"values": ["Test Query List", "List1"]
}
]
}
}