{
    "openapi": "3.1.0",
    "info": {
        "title": "gateway-api"
    },
    "servers": [
        {
            "url": "https://data.api.landytech.net",
            "description": "Generated server url"
        }
    ],
    "paths": {
        "/api/v2/entities": {
            "get": {
                "tags": [
                    "entities"
                ],
                "summary": "Fetch entities",
                "description": "The `entities` endpoint returns all entities available in the account, along with optional date attributes and other metadata that can be used across the Sesame Data APIs.",
                "operationId": "getEntities",
                "parameters": [
                    {
                        "name": "X-Result-Limit",
                        "in": "header",
                        "description": "Maximum number of items to retrieve",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        },
                        "example": 20
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "List of field names to retrieve. If empty, all fields will be returned.",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "example": "ENTITY.ID"
                            }
                        }
                    },
                    {
                        "name": "entityId",
                        "in": "query",
                        "description": "Unique identifier provided by Landytech",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64",
                            "example": 123
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of entities with selected fields",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EntityResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized, missing or invalid authentication"
                    },
                    "403": {
                        "description": "Forbidden, user does not have permission"
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    }
                ]
            }
        },
        "/api/v2/transactions/{entityId}": {
            "get": {
                "tags": [
                    "transactions"
                ],
                "summary": "Fetch transactions",
                "description": "The `transactions` endpoint returns all transactions, per published entity date. If a transaction falls on a date which has no positions, it will be be available once a position on that date or a subsequent date is published",
                "operationId": "getTransactions",
                "parameters": [
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "List of field names to retrieve. If empty, all fields will be returned.",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "example": "ENTITY.ID"
                            }
                        }
                    },
                    {
                        "name": "entityId",
                        "in": "path",
                        "description": "Unique identifier provided by Landytech",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64",
                            "example": 123
                        }
                    },
                    {
                        "name": "fromDate",
                        "in": "query",
                        "description": "Start of transaction date range (inclusive)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-01-01"
                        }
                    },
                    {
                        "name": "toDate",
                        "in": "query",
                        "description": "End of transaction date range (inclusive)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-12-31"
                        }
                    },
                    {
                        "name": "consolidationType",
                        "in": "query",
                        "description": "DIRECT returns the entity's directly held assets. LOOK_THROUGH includes transactions of underlying entities linked through configured look-through relationships. If not provided, DIRECT is used",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "LOOK_THROUGH"
                        }
                    },
                    {
                        "name": "fromUpdatedDate",
                        "in": "query",
                        "description": "Return only records that have been updated on or after the specified date time",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "2025-10-01T00:00:00Z"
                        }
                    },
                    {
                        "name": "requestPageSize",
                        "in": "query",
                        "description": "Number of records per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 1000,
                            "maximum": 10000
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "description": "Token used for pagination. For the first page, this should not be provided. For subsequent pages, use the `nextPageToken` value returned in the previous response",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of transactions with selected fields",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TransactionResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized, missing or invalid authentication"
                    },
                    "403": {
                        "description": "Forbidden, user does not have permission"
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    }
                ]
            }
        },
        "/api/v2/positions/{entityId}": {
            "get": {
                "tags": [
                    "positions"
                ],
                "summary": "Fetch Positions",
                "description": "The `positions` endpoint returns the positions, per published entity date",
                "operationId": "getPositions",
                "parameters": [
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "List of field names to retrieve. If empty, all fields will be returned.",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "example": "ENTITY.ID"
                            }
                        }
                    },
                    {
                        "name": "entityId",
                        "in": "path",
                        "description": "Unique identifier provided by Landytech",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64",
                            "example": 123
                        }
                    },
                    {
                        "name": "fromDate",
                        "in": "query",
                        "description": "Start of position date range (inclusive)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-01-01"
                        }
                    },
                    {
                        "name": "toDate",
                        "in": "query",
                        "description": "End of position date range (inclusive)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-12-31"
                        }
                    },
                    {
                        "name": "consolidationType",
                        "in": "query",
                        "description": "DIRECT returns the entity's directly held assets. LOOK_THROUGH includes transactions of underlying entities linked through configured look-through relationships. If not provided, DIRECT is used",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "LOOK_THROUGH"
                        }
                    },
                    {
                        "name": "fromUpdatedDate",
                        "in": "query",
                        "description": "Return only records that have been updated on or after the specified date time",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "2025-10-01T00:00:00Z"
                        }
                    },
                    {
                        "name": "requestPageSize",
                        "in": "query",
                        "description": "Number of records per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 1000,
                            "maximum": 10000
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "description": "Token used for pagination. For the first page, this should not be provided. For subsequent pages, use the `nextPageToken` value returned in the previous response",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of entities with selected fields",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PositionResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized, missing or invalid authentication"
                    },
                    "403": {
                        "description": "Forbidden, user does not have permission"
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    }
                ]
            }
        },
        "/api/v2/analytics": {
            "post": {
                "tags": [
                    "analytics"
                ],
                "summary": "Fetch analytics data",
                "description": "The `analytics` endpoint returns all analytical data for an entity, position, transaction or asset. This includes market values, exposures, risk, performance, and other metrics.",
                "operationId": "getAnalyticsData",
                "parameters": [
                    {
                        "name": "requestPageSize",
                        "in": "query",
                        "description": "Number of records per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 1000,
                            "maximum": 10000
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "description": "Token used for pagination. For the first page, this should not be provided. For subsequent pages, use the `nextPageToken` value returned in the previous response",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AnalyticsDataBody"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "List of data with selected fields",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AnalyticsResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized, missing or invalid authentication"
                    },
                    "403": {
                        "description": "Forbidden, user does not have permission"
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "AnalyticsDataBody": {
                "type": "object",
                "description": "Request body for analytics data",
                "properties": {
                    "fields": {
                        "type": "array",
                        "description": "List of analytics fields to request",
                        "example": [
                            {
                                "code": "ENTITY.ID"
                            },
                            {
                                "code": "ENTITY.NAME"
                            },
                            {
                                "code": "POSITION.DATE"
                            },
                            {
                                "code": "ASSET.NAME"
                            },
                            {
                                "code": "ASSET.TYPE"
                            },
                            {
                                "code": "POSITION.CUSTODIAN_NAME"
                            },
                            {
                                "code": "ENTITY.REPORTING_CURRENCY"
                            },
                            {
                                "code": "POSITION.MARKET_VALUE_REPORTING"
                            },
                            {
                                "name": "YTD Return",
                                "code": "POSITION.RETURN",
                                "parameters": {
                                    "period": "YTD"
                                }
                            },
                            {
                                "name": "1D VaR MC 95",
                                "code": "POSITION.RISK",
                                "parameters": {
                                    "risk_measure_id": 250
                                }
                            },
                            {
                                "name": "Lehman Crisis (2008)",
                                "code": "POSITION.RISK",
                                "parameters": {
                                    "risk_measure_id": 522
                                }
                            }
                        ],
                        "items": {
                            "$ref": "#/components/schemas/AnalyticsField"
                        }
                    },
                    "ids": {
                        "type": "array",
                        "description": "List of entity ids to fetch",
                        "example": [
                            1,
                            2,
                            3
                        ],
                        "items": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    "consolidationType": {
                        "type": "string",
                        "default": "DIRECT",
                        "description": "DIRECT returns the entity's directly held assets. LOOK_THROUGH includes transactions of underlying entities linked through configured look-through relationships. If not provided, DIRECT is used",
                        "enum": [
                            "DIRECT",
                            "LOOK_THROUGH"
                        ],
                        "example": "DIRECT"
                    },
                    "since": {
                        "type": "string",
                        "format": "date",
                        "default": "2000-01-01",
                        "description": "Start date for the data to fetch",
                        "example": "2025-09-30"
                    },
                    "until": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date",
                        "description": "End date for the data to fetch. If not provided, latest published date is used",
                        "example": "2025-12-31"
                    },
                    "sort": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/AnalyticsSort"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "consolidationType",
                    "fields",
                    "ids",
                    "since"
                ]
            },
            "AnalyticsField": {
                "type": "object",
                "description": "List of fields to request",
                "properties": {
                    "code": {
                        "type": "string",
                        "description": "Field code",
                        "example": "ENTITY.ID"
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Field name. Has the same value as code by default",
                        "example": "Entity ID"
                    },
                    "parameters": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "additionalProperties": {},
                        "description": "Additional parameters for the field",
                        "example": {
                            "period": "MTD",
                            "_types": [
                                "TOTAL"
                            ]
                        }
                    }
                },
                "required": [
                    "code"
                ]
            },
            "AnalyticsSort": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Field code used for sorting. Default value depends on the data being requested: POSITION.DATE, TRANSACTION.DATE, ENTITY.ID or ASSET.ID",
                        "example": "POSITION.DATE"
                    },
                    "ascending": {
                        "type": "boolean",
                        "default": true,
                        "description": "True if sorting by the chosen field in ascending order, false if descending",
                        "example": true
                    }
                },
                "required": [
                    "ascending",
                    "name"
                ]
            },
            "AnalyticsDetails": {
                "type": "object",
                "description": "Analytics data details returned by the API",
                "properties": {
                    "ENTITY.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Unique identifier of the entity the request was made for. This identifier is created by Sesame",
                        "example": 10338
                    },
                    "ENTITY.NAME": {
                        "type": "string",
                        "description": "Name of the entity the request was made for",
                        "example": "Barclays *899"
                    },
                    "ENTITY.TYPE": {
                        "type": "string",
                        "description": "Type of the entity",
                        "enum": [
                            "FUND",
                            "HOLDING_COMPANY",
                            "TRUST",
                            "PORTFOLIO",
                            "PERSONAL",
                            "BASKET",
                            "BENCHMARK",
                            "GROUPING",
                            "CONSOLIDATION"
                        ],
                        "example": "PORTFOLIO"
                    },
                    "ENTITY.PORTFOLIO_PARENT_ENTITY_ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Parent entity ID of a portfolio entity",
                        "example": 10337
                    },
                    "ENTITY.REPORTING_CURRENCY": {
                        "type": "string",
                        "description": "Reporting currency of the entity, as defined in Sesame",
                        "example": "EUR"
                    },
                    "ASSET.NAME": {
                        "type": "string",
                        "description": "Name of the investment being transacted",
                        "example": "Hurricane Energy PLC"
                    },
                    "ASSET.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of the investment being transacted. This identifier is created by Sesame",
                        "example": 1990
                    },
                    "ASSET.TYPE": {
                        "type": "string",
                        "description": "Type of the investment being transacted",
                        "example": "Common Stock"
                    },
                    "TRANSACTION.SUBTYPE": {
                        "type": "string",
                        "description": "Subtype of the transaction. For a full list of supported subtypes, see the list in `FAQ and Troubleshooting`",
                        "example": "Purchase"
                    },
                    "TRANSACTION.CUSTODIAN_TRANSACTION_ID": {
                        "type": "string",
                        "description": "Unique identifier of the transaction, as provided in the custodial feed. When not provided by the custodian, a unique transaction Id is generated by Sesame",
                        "example": "1ab7d9fc-427f-42bf-97a8-1a8ff531efe4"
                    },
                    "TRANSACTION.DESCRIPTION": {
                        "type": "string",
                        "description": "Description of the transaction, as provided in the custodial feed. When not provided by the custodian, a description is generated by Sesame",
                        "example": "Purchase 9000 Hurricane Energy PLC 20251111"
                    },
                    "TRANSACTION.DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Date of the transaction.",
                        "example": "2025-11-11"
                    },
                    "TRANSACTION.SETTLEMENT_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Settlement date of the transaction.",
                        "example": "2025-11-13"
                    },
                    "TRANSACTION.MOVEMENT_LOCAL": {
                        "type": "number",
                        "description": "Net transaction value, in local currency",
                        "example": -350000
                    },
                    "TRANSACTION.GROSS_MOVEMENT_LOCAL": {
                        "type": "number",
                        "description": "Gross transaction value, in local currency",
                        "example": -346500
                    },
                    "TRANSACTION.QUANTITY": {
                        "type": "number",
                        "description": "Units of the investment transacted",
                        "example": 9000
                    },
                    "TRANSACTION.NET_UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Net unit price of the transaction, in local currency",
                        "example": 38.888889
                    },
                    "TRANSACTION.GROSS_UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Gross unit price of the transaction, in local currency",
                        "example": 38.5
                    },
                    "TRANSACTION.LOCAL_CURRENCY": {
                        "type": "string",
                        "description": "Currency that the transaction is denominated in",
                        "example": "GBP"
                    },
                    "TRANSACTION.LOCAL_CURRENCY2": {
                        "type": "string",
                        "description": "The local currency of the incoming cash where the transaction is an internal FX transaction",
                        "example": "CAD"
                    },
                    "TRANSACTION.MOVEMENT_REPORTING": {
                        "type": "number",
                        "description": "Net transaction value, in reporting currency",
                        "example": -291666.6667
                    },
                    "TRANSACTION.GROSS_MOVEMENT_REPORTING": {
                        "type": "number",
                        "description": "Gross transaction value, in reporting currency",
                        "example": -288750
                    },
                    "TRANSACTION.GRANULARITY": {
                        "$ref": "#/components/schemas/TransactionGranularityDetails",
                        "description": "Granularity of the transaction."
                    },
                    "TRANSACTION.PRIVATE_FUND_GRANULARITY": {
                        "$ref": "#/components/schemas/PrivateFundGranularityDetails",
                        "description": "Private fund granularity of the transaction."
                    },
                    "TRANSACTION.REVERSAL": {
                        "type": "boolean",
                        "description": "A boolean indicating whether this transaction is reversing a previous transaction",
                        "example": 0
                    },
                    "TRANSACTION.CUSTODIAN_REVERSED_TRANSACTION_ID": {
                        "type": "string",
                        "description": "Where available, the CUSTODIAN_TRANSACTION_ID of the transaction which this transaction is reversing. Only seen for transactions where reversal = `true`. This field helps users connect reversal transactions and the transactions that they are reversing",
                        "example": "abcdef12-3456-7890-abcd-ef1234567890"
                    },
                    "POSITION.DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "The date of the position in the investment",
                        "example": "2025-11-13"
                    },
                    "POSITION.QUANTITY": {
                        "type": "number",
                        "description": "Quantity of units of the investment held",
                        "example": 9000
                    },
                    "POSITION.MARKET_VALUE_LOCAL": {
                        "type": "number",
                        "description": "Market value of the holding, in local currency",
                        "example": 360000
                    },
                    "POSITION.UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Price per unit of the investment held, in local currency",
                        "example": 40
                    },
                    "POSITION.LOCAL_CURRENCY": {
                        "type": "string",
                        "description": "Currency that the position is denominated in",
                        "example": "GBP"
                    },
                    "POSITION.COST_VALUE_REPORTING": {
                        "type": "number",
                        "description": "Total cost value of the holding, in reporting currency",
                        "example": 263721.3762
                    },
                    "POSITION.AVERAGE_UNIT_COST_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Average cost per unit of the investment held, in local currency",
                        "example": 635.21
                    },
                    "POSITION.VWAP": {
                        "type": "number",
                        "description": "Volume-weighted average price",
                        "example": 283.45
                    },
                    "ENTITY.RETURN": {
                        "type": "number",
                        "description": "Total gain or loss generated by an investment entity over a specific period, expressed as a percentage of the portfolio's value.\nNeeds the period parameter (possible values are: \"DTD\", \"FYTD\", \"ITD\", \"LAST\", \"MTD\", \"QTD\", \"WTD\", \"YTD\")\nOptional parameters are:\n- methodology (possible values are: \"SIMPLE\", \"COMPOUNDED\", \"STDEV\", \"AVG\")\n- entity (possible values are: \"ENTITY\", \"DEFAULT_BENCHMARK\")\n- frequency (possible values are: \"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\")\n- start_date: From the given date (\"YYYY-MM-DD\")\n- end_date: To the given date (\"YYYY-MM-DD\")",
                        "example": 0.003312
                    },
                    "POSITION.RETURN": {
                        "type": "number",
                        "description": "The position return is calculated by compounding daily returns from t0 to t, using the daily PnL or the position at t in reporting currency, the previous days market value notional of the position in reporting currency, and the sum of transactions for the position on t. For Trading Pnl (and therefore FX Pnl) we use FX rate as of t when transforming daily PnL from t0 to t into reporting currency.\nNeeds the period parameter (possible values are: \"DTD\", \"FYTD\", \"ITD\", \"LAST\", \"MTD\", \"QTD\", \"WTD\", \"YTD\")\nOptional parameters are:\n- frequency (possible values are: \"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\")\n- start_date: From the given date (\"YYYY-MM-DD\")\n- end_date: To the given date (\"YYYY-MM-DD\")",
                        "example": 0.003312
                    },
                    "ENTITY.EXPOSURE": {
                        "type": "number",
                        "description": "Total notional exposure of the entity, expressed in %AUM.\nNeeds the kind parameter (possible values are: \"LONG\", \"SHORT\", \"NET\", \"GROSS\")\nOptional parameters are:\n- _format (possible values are: \"AMOUNT\", \"PERCENTAGE\", \"BASIS_POINTS\")\n- exposure_aggregation (possible values are: \"SUM\", \"MAX\", \"MIN\", \"COUNT\")",
                        "example": 1.001916
                    },
                    "POSITION.EXPOSURE": {
                        "type": "number",
                        "description": "Total notional exposure of the position, expressed in %AUM.\nOptional parameters are:\n- kind (possible values are: \"LONG\", \"SHORT\", \"NET\", \"GROSS\")",
                        "example": 1.001916
                    },
                    "POSITION.AGGREGATED_PNL": {
                        "type": "number",
                        "description": "Aggregated pnl value of the position.\nNeeds the period parameter (possible values are: \"DTD\", \"FYTD\", \"ITD\", \"LAST\", \"MTD\", \"QTD\", \"WTD\", \"YTD\")\nOptional parameters are:\n- _format (possible values are: \"AMOUNT\", \"PERCENTAGE\", \"BASIS_POINTS\")\n- aggregation (possible values are: \"SUM\", \"MAX\", \"MIN\", \"AVG\", \"PROD\")\n- frequency (possible values are: \"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\")\n- _types (possible values in the array are: \"TOTAL\", \"INCOME\", \"FX\", \"TRADING\", \"REALISED\", \"UNREALISED\")\n- start_date: From the given date (\"YYYY-MM-DD\")\n- end_date: To the given date (\"YYYY-MM-DD\")",
                        "example": -73.942712
                    },
                    "ENTITY.PNL": {
                        "type": "number",
                        "description": "Aggregation of the DTD PnLs of an entity for a given period of time.\nNeeds the period parameter (possible values are: \"DTD\", \"FYTD\", \"ITD\", \"LAST\", \"MTD\", \"QTD\", \"WTD\", \"YTD\")\nOptional parameters are:\n- _format (possible values are: \"AMOUNT\", \"PERCENTAGE\", \"BASIS_POINTS\")\n- aggregation (possible values are: \"SUM\", \"MAX\", \"MIN\", \"AVG\", \"PROD\")\n- frequency (possible values are: \"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\")\n- _types (possible values in the array are: \"TOTAL\", \"INCOME\", \"FX\", \"TRADING\", \"REALISED\", \"UNREALISED\")\n- methodology (possible values are: \"SIMPLE\", \"CARINO\")\n- start_date: From the given date (\"YYYY-MM-DD\")\n- end_date: To the given date (\"YYYY-MM-DD\")",
                        "example": 0.0156
                    },
                    "POSITION.MARKET_VALUE_NOTIONAL_REPORTING": {
                        "type": "number",
                        "description": "Market value of the position in reporting currency.",
                        "example": 7068.854036
                    },
                    "ENTITY.CUMULATIVE_PERFORMANCE": {
                        "type": "number",
                        "description": "Cumulative performance value of the entity.",
                        "example": 75.385618
                    },
                    "ASSET.CUMULATIVE_PERFORMANCE": {
                        "type": "number",
                        "description": "Cumulative performance value of the asset.\nNeeds the period parameter (possible values are: \"DTD\", \"FYTD\", \"ITD\", \"LAST\", \"MTD\", \"QTD\", \"WTD\", \"YTD\")",
                        "example": 75.385618
                    },
                    "ENTITY.RISK": {
                        "type": "number",
                        "description": "Risk value of the entity.\nNeeds the risk_measure_id parameter (integer), which can be found at docs.landytech.com",
                        "example": 173.456
                    },
                    "POSITION.RISK": {
                        "type": "number",
                        "description": "Risk value of the position.\nNeeds the risk_measure_id parameter (integer), which can be found at docs.landytech.com",
                        "example": 173.456
                    }
                },
                "required": [
                    "ASSET.CUMULATIVE_PERFORMANCE",
                    "ASSET.ID",
                    "ASSET.NAME",
                    "ASSET.TYPE",
                    "ENTITY.CUMULATIVE_PERFORMANCE",
                    "ENTITY.EXPOSURE",
                    "ENTITY.ID",
                    "ENTITY.NAME",
                    "ENTITY.PNL",
                    "ENTITY.REPORTING_CURRENCY",
                    "ENTITY.RETURN",
                    "ENTITY.RISK",
                    "ENTITY.TYPE",
                    "POSITION.AGGREGATED_PNL",
                    "POSITION.DATE",
                    "POSITION.EXPOSURE",
                    "POSITION.LOCAL_CURRENCY",
                    "POSITION.MARKET_VALUE_LOCAL",
                    "POSITION.MARKET_VALUE_NOTIONAL_REPORTING",
                    "POSITION.QUANTITY",
                    "POSITION.RETURN",
                    "POSITION.RISK",
                    "POSITION.UNIT_PRICE_LOCAL",
                    "TRANSACTION.CUSTODIAN_TRANSACTION_ID",
                    "TRANSACTION.DATE",
                    "TRANSACTION.DESCRIPTION",
                    "TRANSACTION.LOCAL_CURRENCY",
                    "TRANSACTION.MOVEMENT_LOCAL",
                    "TRANSACTION.QUANTITY",
                    "TRANSACTION.REVERSAL",
                    "TRANSACTION.SUBTYPE"
                ]
            },
            "AnalyticsResponse": {
                "type": "object",
                "description": "Analytics data returned by the API",
                "properties": {
                    "data": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/AnalyticsDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pagination": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PaginationDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "meta": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MetadataDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "MetadataDetails": {
                "type": "object",
                "description": "Metadata returned by the API",
                "properties": {
                    "requestId": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uuid",
                        "description": "Id of the request",
                        "example": "07f7230a-ad15-4cb6-8592-31ed9b1e880d"
                    },
                    "responseType": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Format of the request",
                        "example": "json"
                    }
                },
                "required": [
                    "requestId"
                ]
            },
            "PaginationDetails": {
                "type": "object",
                "description": "Pagination data returned by the API",
                "properties": {
                    "nextPageToken": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Token used to fetch the next page of result. This token is opaque and must be used as is"
                    },
                    "hasNextPage": {
                        "type": [
                            "boolean",
                            "null"
                        ],
                        "description": "A boolean indicating if there is a next page to this resource",
                        "example": 0
                    },
                    "pageSize": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "format": "int64",
                        "description": "Number of elements in the current page. This API is not providing the total number of elements for this resource.",
                        "example": 1000
                    }
                },
                "required": [
                    "hasNextPage",
                    "pageSize"
                ]
            },
            "PrivateFundGranularityDetails": {
                "type": "object",
                "description": "Provides a breakdown of MOVEMENT_LOCAL for Capital Calls, Distributions and Equalisations",
                "properties": {
                    "PE_DEDUCTIBLE": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which reduces the remaining commitment or the portion of an equalisation which increases the remaining commitment, in local currency",
                        "example": -90000
                    },
                    "PE_NON_DEDUCTIBLE": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which does not reduce the remaining commitment or the portion of an equalisation which does not increase the remaining commitment, in local currency",
                        "example": -10000
                    },
                    "PE_INVESTMENT": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which goes towards purchasing portfolio companies or the portion of an equalisation which refunds for amounts previously paid towards purchasing portfolio companies, in local currency",
                        "example": -90000
                    },
                    "PE_MANAGEMENT_FEES": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which is used for covering management fees or the portion an equalisation representing the pro-rata rebate for previously paid management fees, in local currency",
                        "example": -2000
                    },
                    "PE_FUND_EXPENSES": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which is used for covering fund expenses or the portion of an equalisation representing the pro-rata rebate for previously paid fund expenses, in local currency",
                        "example": -3000
                    },
                    "PE_OTHER_FEES": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which is used for covering other fund fees or the portion an equalisation representing the pro-rata rebate for previously paid other fund fees, in local currency",
                        "example": -5000
                    },
                    "PE_EQUALISATION": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of a capital call which is a catch-up equalisation payment or the portion of an equalisation which is received following catch-up equalisation by other investors, where above granularity is not provided, in local currency",
                        "example": 0
                    },
                    "PE_RECALLABLE": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of the distribution that is recallable, in local currency",
                        "example": 10000
                    },
                    "PE_NON_RECALLABLE": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of the distribution that is non-recallable, in local currency",
                        "example": 95000
                    },
                    "PE_CAPITAL_RETURN": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of the distribution that represents a return of capital to the LP, in local currency",
                        "example": 10000
                    },
                    "PE_CAPITAL_GAIN": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of the distribution that is a capital gain (this can be negative, indicating a capital loss), in local currency",
                        "example": 90000
                    },
                    "PE_INCOME": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The portion of the distribution that represents income, in local currency",
                        "example": 5000
                    }
                }
            },
            "TransactionGranularityDetails": {
                "type": "object",
                "description": "A breakdown of the difference between MOVEMENT_LOCAL and GROSS_MOVEMENT_LOCAL",
                "properties": {
                    "COMMISSIONS_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Value of commissions associated with the transaction, in local currency",
                        "example": -1500
                    },
                    "STAMP_DUTY_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Value of stamp duties associated with the transaction, in local currency",
                        "example": -1000
                    },
                    "WITHHOLDING_TAX_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Value of withholdings tax associated with the transaction, in local currency",
                        "example": -300
                    },
                    "COLLECTION_CHARGE_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Value of collection charges associated with the transaction, in local currency",
                        "example": -200
                    },
                    "TAX_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Value of taxes, duties associated with the transaction, in local currency",
                        "example": -500
                    },
                    "ACCRUED_INTEREST_LOCAL": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The value of the accrued interest when a fixed income investment is transacted, in local currency",
                        "example": 0
                    }
                }
            },
            "TransactionDetails": {
                "type": "object",
                "description": "Transaction details returned by the API",
                "properties": {
                    "ENTITY.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Unique identifier of the entity the request was made for. This identifier is created by Sesame",
                        "example": 10338
                    },
                    "ENTITY.NAME": {
                        "type": "string",
                        "description": "Name of the entity the request was made for",
                        "example": "Barclays *899"
                    },
                    "ASSET.NAME": {
                        "type": "string",
                        "description": "Name of the investment being transacted",
                        "example": "Hurricane Energy PLC"
                    },
                    "ASSET.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of the investment being transacted. This identifier is created by Sesame",
                        "example": 1990
                    },
                    "ASSET.TYPE": {
                        "type": "string",
                        "description": "Type of the investment being transacted",
                        "example": "Common Stock"
                    },
                    "TRANSACTION.SUBTYPE": {
                        "type": "string",
                        "description": "Subtype of the transaction. For a full list of supported subtypes, see the list in `FAQ and Troubleshooting`",
                        "example": "Purchase"
                    },
                    "TRANSACTION.CUSTODIAN_TRANSACTION_ID": {
                        "type": "string",
                        "description": "Unique identifier of the transaction, as provided in the custodial feed. When not provided by the custodian, a unique transaction Id is generated by Sesame",
                        "example": "1ab7d9fc-427f-42bf-97a8-1a8ff531efe4"
                    },
                    "TRANSACTION.DESCRIPTION": {
                        "type": "string",
                        "description": "Description of the transaction, as provided in the custodial feed. When not provided by the custodian, a description is generated by Sesame",
                        "example": "Purchase 9000 Hurricane Energy PLC 20251111"
                    },
                    "TRANSACTION.DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Date of the transaction.",
                        "example": "2025-11-11"
                    },
                    "TRANSACTION.SETTLEMENT_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Settlement date of the transaction.",
                        "example": "2025-11-13"
                    },
                    "TRANSACTION.MOVEMENT_LOCAL": {
                        "type": "number",
                        "description": "Net transaction value, in local currency",
                        "example": -350000
                    },
                    "TRANSACTION.GROSS_MOVEMENT_LOCAL": {
                        "type": "number",
                        "description": "Gross transaction value, in local currency",
                        "example": -346500
                    },
                    "TRANSACTION.QUANTITY": {
                        "type": "number",
                        "description": "Units of the investment transacted",
                        "example": 9000
                    },
                    "TRANSACTION.NET_UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Net unit price of the transaction, in local currency",
                        "example": 38.888889
                    },
                    "TRANSACTION.GROSS_UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Gross unit price of the transaction, in local currency",
                        "example": 38.5
                    },
                    "TRANSACTION.LOCAL_CURRENCY": {
                        "type": "string",
                        "description": "Currency that the transaction is denominated in",
                        "example": "GBP"
                    },
                    "TRANSACTION.LOCAL_CURRENCY2": {
                        "type": "string",
                        "description": "The local currency of the incoming cash where the transaction is an internal FX transaction",
                        "example": "CAD"
                    },
                    "TRANSACTION.MOVEMENT_REPORTING": {
                        "type": "number",
                        "description": "Net transaction value, in reporting currency",
                        "example": -291666.6667
                    },
                    "TRANSACTION.GROSS_MOVEMENT_REPORTING": {
                        "type": "number",
                        "description": "Gross transaction value, in reporting currency",
                        "example": -288750
                    },
                    "TRANSACTION.SUB_PORTFOLIO_CODE": {
                        "type": "string",
                        "description": "A string providing further granularity about the sub-account involved in the transaction. This could be a bank account number which differs per currency, or nature (capital/income), within the main account. The main account or portfolio identifier is shown in the PORTFOLIO_CODES field in the `entities` endpoint",
                        "example": "807899-1-A"
                    },
                    "TRANSACTION.SUB_PORTFOLIO_CODE2": {
                        "type": "string",
                        "description": "A string providing further granularity about the second account involved in the transaction. This is required for internal FX transactions. In this case, the subPortfolioCode2 represents the sub-account that the incoming cash is received into. The main account or portfolio identifier is shown in the PORTFOLIO_CODES field in the `entities` endpoint",
                        "example": "807899-1-B"
                    },
                    "TRANSACTION.CAPITAL_OR_INCOME": {
                        "type": "string",
                        "description": "A string indicating whether the transaction is in-to or out-of a CAPITAL, INCOME or MIXED account",
                        "example": "CAPITAL"
                    },
                    "TRANSACTION.GRANULARITY": {
                        "$ref": "#/components/schemas/TransactionGranularityDetails",
                        "description": "Granularity of the transaction."
                    },
                    "TRANSACTION.PRIVATE_FUND_GRANULARITY": {
                        "$ref": "#/components/schemas/PrivateFundGranularityDetails",
                        "description": "Private fund granularity of the transaction."
                    },
                    "TRANSACTION.REVERSAL": {
                        "type": "boolean",
                        "description": "A boolean indicating whether this transaction is reversing a previous transaction",
                        "example": 0
                    },
                    "TRANSACTION.CUSTODIAN_REVERSED_TRANSACTION_ID": {
                        "type": "string",
                        "description": "Where available, the CUSTODIAN_TRANSACTION_ID of the transaction which this transaction is reversing. Only seen for transactions where reversal = `true`. This field helps users connect reversal transactions and the transactions that they are reversing",
                        "example": "abcdef12-3456-7890-abcd-ef1234567890"
                    },
                    "TRANSACTION.UPDATED_DATE": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Last updated date of the transaction.",
                        "example": "2025-10-01T00:00:00Z"
                    }
                },
                "required": [
                    "ASSET.ID",
                    "ASSET.NAME",
                    "ASSET.TYPE",
                    "ENTITY.ID",
                    "ENTITY.NAME",
                    "TRANSACTION.CUSTODIAN_TRANSACTION_ID",
                    "TRANSACTION.DATE",
                    "TRANSACTION.DESCRIPTION",
                    "TRANSACTION.LOCAL_CURRENCY",
                    "TRANSACTION.MOVEMENT_LOCAL",
                    "TRANSACTION.QUANTITY",
                    "TRANSACTION.REVERSAL",
                    "TRANSACTION.SUBTYPE"
                ]
            },
            "TransactionResponse": {
                "type": "object",
                "description": "Transaction data returned by the API",
                "properties": {
                    "data": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/TransactionDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pagination": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PaginationDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "meta": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MetadataDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "PositionDetails": {
                "type": "object",
                "description": "Position data returned by the API",
                "properties": {
                    "ENTITY.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Unique identifier of the entity the request was made for. This identifier is created by Sesame",
                        "example": 10338
                    },
                    "ENTITY.NAME": {
                        "type": "string",
                        "description": "Name of the entity the request was made for",
                        "example": "Barclays *899"
                    },
                    "ASSET.NAME": {
                        "type": "string",
                        "description": "Name of the investment held",
                        "example": "Hurricane Energy PLC"
                    },
                    "ASSET.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of the investment held. This identifier is created by Sesame",
                        "example": 1990
                    },
                    "ASSET.TYPE": {
                        "type": "string",
                        "description": "Type of the investment held",
                        "example": "Common Stock"
                    },
                    "POSITION.DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "The date of the position in the investment",
                        "example": "2025-11-13"
                    },
                    "POSITION.QUANTITY": {
                        "type": "number",
                        "description": "Quantity of units of the investment held",
                        "example": 9000
                    },
                    "POSITION.MARKET_VALUE_LOCAL": {
                        "type": "number",
                        "description": "Market value of the holding, in local currency",
                        "example": 360000
                    },
                    "POSITION.UNIT_PRICE_LOCAL": {
                        "type": "number",
                        "description": "Price per unit of the investment held, in local currency",
                        "example": 40
                    },
                    "POSITION.LOCAL_CURRENCY": {
                        "type": "string",
                        "description": "Currency that the position is denominated in",
                        "example": "GBP"
                    },
                    "POSITION.GRANULARITY": {
                        "$ref": "#/components/schemas/PositionGranularityDetails",
                        "description": "Granularity of the position."
                    },
                    "POSITION.UPDATED_DATE": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Last updated date of the position.",
                        "example": "2025-10-01T00:00:00Z"
                    }
                },
                "required": [
                    "ASSET.ID",
                    "ASSET.NAME",
                    "ASSET.TYPE",
                    "ENTITY.ID",
                    "ENTITY.NAME",
                    "POSITION.DATE",
                    "POSITION.LOCAL_CURRENCY",
                    "POSITION.MARKET_VALUE_LOCAL",
                    "POSITION.QUANTITY",
                    "POSITION.UNIT_PRICE_LOCAL"
                ]
            },
            "PositionGranularityDetails": {
                "type": "object",
                "description": "Returns cash holdings split by sub-portfolio codes. The sub-portfolio code provides a level more granularity than the entity-level balances. That is, a sub-portfolio code reflects the cash balances separated by the specific sub-account codes. These codes will differ per currency, and per intention. For example, capital versus income accounts",
                "properties": {
                    "SUB_PORTFOLIO": {
                        "$ref": "#/components/schemas/SubPortfolioDetails",
                        "description": "Breakdown of holdings by sub-portfolio."
                    }
                }
            },
            "PositionResponse": {
                "type": "object",
                "description": "Position data returned by the API",
                "properties": {
                    "data": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PositionDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pagination": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PaginationDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "meta": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MetadataDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "SubPortfolioDetails": {
                "type": "object",
                "description": "The cash balance (position) for the POSITION.DATE, decomposed into the underlying SUB_PORTFOLIO_CODEs",
                "properties": {
                    "SUB_PORTFOLIO_CODE": {
                        "type": "string",
                        "description": "A string providing further granularity about the sub bank accounts balance which contribute to the cash position on this date. This could be a bank account number which differs per nature (capital/income), within the main account. The main account or portfolio identifier is shown in the PORTFOLIO_CODES field in the `entities` endpoint",
                        "example": "807899-1-A"
                    },
                    "MARKET_VALUE_LOCAL": {
                        "type": "number",
                        "description": "The cash balance of that SUB_PORTFOLIO_CODE on the position date",
                        "example": 1000.0
                    }
                }
            },
            "ConsolidationDetails": {
                "type": "object",
                "description": "A breakdown of the consolidation configuration, indicating which entities are included in the consolidation, and percentage of their participation. Only relevant for entities with type = 'CONSOLIDATION'",
                "properties": {
                    "ENTITY_ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of sub-entity in the consolidation.",
                        "example": 47
                    },
                    "PARTICIPATION": {
                        "type": "number",
                        "description": "Participation percentage in consolidation.",
                        "example": 0.9
                    }
                }
            },
            "EntityDetailedDatesDetails": {
                "type": "object",
                "description": "Summary of the publication and pipeline status of all position dates per each entity",
                "properties": {
                    "DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Date of position",
                        "example": "2025-11-11"
                    },
                    "PUBLISHED": {
                        "type": "boolean",
                        "description": "Whether data is published, meaning that data can be requested for that date",
                        "example": true
                    },
                    "PIPELINE_STATUS": {
                        "type": "string",
                        "description": "Processing status of the position date in the Sesame data pipeline",
                        "enum": [
                            "RUNNING",
                            "FAILED",
                            "READY"
                        ],
                        "example": "READY"
                    },
                    "DATE_PUBLISHED": {
                        "type": "string",
                        "description": "Timestamp of publication.",
                        "example": "2025-10-21 14:30:00"
                    }
                }
            },
            "EntityDetails": {
                "type": "object",
                "description": "Summary of the key dates of an entity",
                "properties": {
                    "ENTITY.ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Unique identifier of the entity. This identifier is created by Sesame",
                        "example": 10338
                    },
                    "ENTITY.NAME": {
                        "type": "string",
                        "description": "Name of the entity",
                        "example": "Barclays *899"
                    },
                    "ENTITY.TYPE": {
                        "type": "string",
                        "description": "Type of the entity",
                        "enum": [
                            "FUND",
                            "HOLDING_COMPANY",
                            "TRUST",
                            "PORTFOLIO",
                            "PERSONAL",
                            "BASKET",
                            "BENCHMARK",
                            "GROUPING",
                            "CONSOLIDATION"
                        ],
                        "example": "PORTFOLIO"
                    },
                    "ENTITY.PORTFOLIO_PARENT_ENTITY_ID": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Parent entity ID of a portfolio entity",
                        "example": 10337
                    },
                    "ENTITY.PORTFOLIO_CODES": {
                        "type": "array",
                        "description": "List of portfolio codes for this portfolio. These codes are received in the custodial feed, and used to identify which portfolio the data belongs to. Depending on the feed, a portfolio may have only one or several PORTFOLIO_CODES",
                        "example": [
                            "807899-1"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "ENTITY.REPORTING_CURRENCY": {
                        "type": "string",
                        "description": "Reporting currency of the entity, as defined in Sesame",
                        "example": "EUR"
                    },
                    "ENTITY.CONSOLIDATION_TYPE": {
                        "type": "string",
                        "description": "Indicates whether the entity was set up as DIRECT (Direct returns the entity's directly held assets) or LOOK_THROUGH (Look Through allows an entity to look-through its holdings, into underlying entities linked through Sesame-configured look-through relationships. For example, shares of ownership for a holding company will be represented as the proportional ownership of the positions and transactions of the holding company when an entity is LOOK_THROUGH)",
                        "enum": [
                            "DIRECT",
                            "LOOK_THROUGH"
                        ],
                        "example": "DIRECT"
                    },
                    "ENTITY.PORTFOLIO_FEED": {
                        "type": "string",
                        "description": "Name of the feed that populates data for this portfolio",
                        "example": "Barclays - UK"
                    },
                    "ENTITY.CONSOLIDATION_DETAILS": {
                        "$ref": "#/components/schemas/ConsolidationDetails",
                        "description": "Entities and participation within a consolidation."
                    },
                    "ENTITY.DETAILED_DATES": {
                        "$ref": "#/components/schemas/EntityDetailedDatesDetails",
                        "description": "Key reporting and verification dates."
                    },
                    "ENTITY.KEY_DATES": {
                        "$ref": "#/components/schemas/EntityKeyDatesDetails",
                        "description": "Summary of key date metrics."
                    }
                },
                "required": [
                    "ENTITY.CONSOLIDATION_TYPE",
                    "ENTITY.ID",
                    "ENTITY.NAME",
                    "ENTITY.REPORTING_CURRENCY",
                    "ENTITY.TYPE"
                ]
            },
            "EntityKeyDatesDetails": {
                "type": "object",
                "description": "Key dates to help users understand the entity's history",
                "properties": {
                    "LATEST_PUBLISHED_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Most recent published date. Dates can only be published when there is a position on that date",
                        "example": "2025-11-12"
                    },
                    "FIRST_PUBLISHED_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Earliest published date. Dates can only be published when there is a position on that date",
                        "example": "2023-03-20"
                    },
                    "LATEST_TRANSACTION_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Most recent transaction date.",
                        "example": "2025-11-11"
                    },
                    "FIRST_TRANSACTION_DATE": {
                        "type": "string",
                        "format": "date",
                        "description": "Earliest transaction date.",
                        "example": "2023-03-25"
                    }
                }
            },
            "EntityResponse": {
                "type": "object",
                "description": "Entity data returned by the API",
                "properties": {
                    "data": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/EntityDetails"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            }
        }
    }
}
