openapi: 3.0.3 info: title: Factset Analytics Datastore About Costs API description: Allow clients to fetch precalculated Analytics through predeterministic URLs. contact: name: FactSet Research Systems url: https://developer.factset.com/contact email: api@factset.com license: name: Apache License, Version 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: 1.0.0 servers: - url: https://api.factset.com description: Production - url: https://api-sandbox.factset.com description: Sandbox security: - basicAuth: [] tags: - name: Costs paths: /factset-funds/v1/costs-fees: get: tags: - Costs summary: Factset Get the Fund's Costs, Investment Minimums and Risk, and Fees. operationId: getFundsCostsFees description: 'Fetch the Fund''s Costs, Investment minimums and Risk, and Fees. This subcategory includes management fees, 12b-1 fees, expense ratios, and several other data items. The value for each specified share class is expressed as a percentage of the AUM. ' parameters: - $ref: '#/components/parameters/costsFeesIds' - $ref: '#/components/parameters/costsFeesDate' - $ref: '#/components/parameters/currency' responses: '200': description: The Costs and Fees response object. content: application/json: schema: $ref: '#/components/schemas/costsFeesResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '415': $ref: '#/components/responses/415' '500': $ref: '#/components/responses/500' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - Costs summary: Factset Get the Fund's Costs, Investment Minimums and Risk, and Fees for Large List of Ids. description: 'Fetch the Fund''s Costs, Investment minimums and Risk, and Fees. Data Items include Expense Ratios, investment minimums and maximums, swing prices, entry and exit expenses, and more. ' operationId: getFundsCostsFeesForList requestBody: required: true description: The Costs and Fees request body, allowing the user to specify a list of ids. content: application/json: schema: $ref: '#/components/schemas/costsFeesRequest' responses: '200': description: The Cost and Fees response object. content: application/json: schema: $ref: '#/components/schemas/costsFeesResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '415': $ref: '#/components/responses/415' '500': $ref: '#/components/responses/500' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: examples: badRequestInvalidParameters: summary: Bad Request - Invalid Parameters description: This error message occurs when a request parameter is used in which is not recognized by the service. Please revise your request to include only the parameters listed in the specification. Typical causes are spelling mistakes and use of improper casing. value: status: Bad Request timestamp: '2020-06-12 15:58:54.068' path: /factset-funds/v1/{endpoint} message: 'Invalid Parameter (s): fakeParameterName1 fakeParameterName2. Please modify your request to use parameters outlined in the specification for this endpoint.' subErrors: null badRequestDateFormat: summary: Bad Request - Date Format description: This bad request occurs when a request doesn't use the YYYY-MM-DD in the date parameters. To resolve, convert your date to YYYY-MM-DD. value: status: Bad Request timestamp: '2019-10-31 16:08:07.945' path: /factset-funds/v1/{endpoint} message: 'The date parameter ''startDate'' must be in the following date format: YYYY-MM-DD' subErrors: null notWritable: summary: Internal Server Error - Not Writable description: This error may be returned when the server encounters an error writing the JSON response. value: status: Internal Server Error timestamp: '2019-11-05 09:48:29.18' path: /factset-funds/v1/{endpoint} message: Error writing JSON output subErrors: null unsupportedMediaType: summary: Unsupported Media Type description: This bad request occurs when the media type passed in the request is not supported. Currently the APIs only support 'application/json'. value: status: Unsupported Media Type timestamp: '2019-11-05 09:42:27.237' path: /factset-funds/v1/{endpoint} message: text/html media type is not supported. Supported media types are application/json subErrors: null generalException: summary: Internal Server Error - General Exception description: This is the most general error that can be returned to by the service. Please `Report Issue` to FactSet. value: status: Internal Server Error timestamp: '2019-11-01 10:36:01.944' path: /factset-funds/v1/{endpoint} message: Unexpected error subErrors: null badRequestReadTimeout: summary: Bad Request - Read Timeout description: This error may be returned if it takes more than 29 seconds to hear back from the data fetch service. value: status: Bad Request timestamp: '2019-11-04 16:18:38.949' path: /factset-funds/v1/{endpoint} message: The request took too long. Try again with a smaller request. subErrors: null badRequestFutureDate: summary: Bad Request - Future Date description: This error message occurs when a future date is requested in the startDate and endDate parameters. Please revise your request to include dates as of today's current date or any prior historical date. value: status: Bad Request timestamp: '2020-06-12 15:52:48.091' path: /factset-funds/v1/{endpoint} message: The use of future dates is not applicable in this endpoint. Please revise your request to include dates up to today's current date. subErrors: null forbidden: summary: Forbidden description: The USERNAME-SERIAL attempted to request the endpoint is not authorized to access. The request was a legal request, but the server is refusing to respond. Please reach out to FactSet Account Team for assistance with authorization. value: status: Forbidden timestamp: '2020-06-12 16:08:51.731' path: /factset-funds/v1/{endpoint} message: USERNAME-SERIAL does not have permission to use /factset-funds /v1/{endpoint} subErrors: null unauthenticated: summary: User Authentication Failed description: This occurs when a user is not properly authenticated or recognized by the service. Please double check the USERNAME-SERIAL and API-Key used to request and ensure you are within the IP range specified for the Key. Report Issue under 401 error for help with troubleshooting. value: status: User Authentication Failed timestamp: '2019-10-31 16:08:07.945' path: /factset-funds/v1/{endpoint} message: User Authentication Failed. subErrors: null badRequestMalformedJSON: summary: Bad Request - Malformed JSON Request description: This error may be returned when the request body is specified as JSON, but is not in proper JSON format. value: status: Bad Request timestamp: '2019-11-05 09:48:29.18' path: /factset-funds/v1/{endpoint} message: Malformed JSON Request subErrors: null badRequestRequiredParameter: summary: Bad Request - Required Parameter Missing description: This error message occurs when the request does not include the required parameters. Required parameters are indicated with a red asterisks symbol in the specification file. value: status: Bad Request timestamp: '2020-06-12 15:48:42.016' path: /factset-funds/v1/{endpoint} message: The parameter 'ids' is required and may not be empty. subErrors: null responses: '401': description: Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have successfully generated an API KEY for the IP range you are connecting from. For more help, select the **Report Issue** in the top right corner of this Developer Portal specification card and choose Connectivity 401 or 403 Responses. content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: Bad Request - Date Format: $ref: '#/components/examples/unauthenticated' '415': description: Unsupported Media Type. This error may be returned when the caller sends a resource in a format that is not accepted by the server. This can be fixed by ensuring that Content-Type header is set to the correct value. In this instance, "application/json" would be the appropriate value. content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: Bad Request - Date Format: $ref: '#/components/examples/unsupportedMediaType' '403': description: The USERNAME-SERIAL attempted to request the endpoint is not authorized to access. The request was a legal request, but the server is refusing to respond. Please reach out to FactSet Account Team for assistance with authorization. content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: Bad Request - Date Format: $ref: '#/components/examples/forbidden' '500': description: Internal Server Error. content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: Internal Server Error - Not Writable: $ref: '#/components/examples/notWritable' Internal Server Error - General Exception: $ref: '#/components/examples/generalException' '400': description: Bad Request. This can occur for several reasons. Please review the "message" for more details. content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: Bad Request - Date Format: $ref: '#/components/examples/badRequestDateFormat' Bad Request - Missing Required Parameter: $ref: '#/components/examples/badRequestRequiredParameter' Bad Request - Future Date: $ref: '#/components/examples/badRequestFutureDate' Bad Request - Invalid Parameter: $ref: '#/components/examples/badRequestInvalidParameters' Bad Request - Malformed JSON: $ref: '#/components/examples/badRequestMalformedJSON' Bad Request - Read Timeout: $ref: '#/components/examples/badRequestReadTimeout' schemas: costsFees: title: Costs and Fees Object type: object properties: fsymId: description: FactSet Security Identifier. Six alpha-numeric characters, excluding vowels, with a -S suffix (XXXXXX-S), resolved from the requestId of the Fund requested. type: string example: FNK7XP-S x-fds-fql-formula: FSYM_SECURITY_PERM_ID('SECURITY') nullable: true managementExpenses: description: The management fee, or maintenance fee, is charged by the fund manager. This cost is usually between 0.5% and 2% of assets on average and is a periodic fee. type: number format: double example: 0.42 x-fds-fql-formula: FFD_EXPENSES({date},MGMT) nullable: true date: description: The Expense Date expressed in YYYY-MM-DD. type: string format: date example: '2020-10-28' x-fds-fql-formula: FFD_EXPENSES({date},MGMT).dates nullable: true currency: description: ISO3 Currency type: string example: USD x-fds-fql-formula: FFD_CURRENCY nullable: true entryExpenses: description: The transaction entry fee or purchase fee collected from investors when they join or leave a scheme. The fee is paid to the fund type: number format: double example: null x-fds-fql-formula: FFD_EXPENSES({date},ENTRY) nullable: true exitExpenses: description: The transaction exit fee is charged to investors when they redeem shares from a fund. type: number format: double example: null x-fds-fql-formula: FFD_EXPENSES({date},EXIT) nullable: true frontExpensesMax: description: 'The Maximum sales load or initial Sales Fee is a reduction made from each investment in the fund, the maximum paid is dependent on the size of the purchase, it decreases as the investment increases. Often associated with class ''A'' shares of a mutual fund it is also known as Sales Charge, this is a fee paid when shares are purchased. Also known as a "front-end load", this fee typically goes to the brokers that sell the fund''s shares. (Under the Investment Company Act of 1940 is 9%. The maximum sales load under NASD Rules is 8 1/2%)." ' type: number format: double example: null x-fds-fql-formula: FFD_EXPENSES({date},MAXF) nullable: true backExpensesMax: description: The Back Expense Maximum type: number format: double example: null x-fds-fql-formula: FFD_EXPENSES({date},MAXB) nullable: true expenseRatio: description: The Expense Ratio type: number format: double example: 0.53 x-fds-fql-formula: FFD_EXPENSES({date},EXR) nullable: true expenseRatioProspectus: description: The Expense Ratio Prospectus type: number format: double example: 0.53 x-fds-fql-formula: FFD_EXPENSES({date},EXG) nullable: true initInvestmentMin: description: The Initial Investment Minimum type: number format: double example: 2000000 x-fds-fql-formula: FFD_INIT_INVT({date},MI,{currency}) nullable: true initInvestmentIra: description: The Initial Investment Individual Retirement Accounts type: number format: double example: null x-fds-fql-formula: FFD_INIT_INVT({date},IRA,{currency}) nullable: true swingPrice: description: Swing Price. Swing pricing occurs when a fund provider adjusts the net asset value (NAV) of a fund in order to pass on trading costs to purchasing or redeeming shareholders. This anti-dilution technique is used to protect long-term shareholder's interests. type: number format: double example: null x-fds-fql-formula: FFD_SWG_PRICE({date}) nullable: true swingPriceDate: description: Swing Price Date. Swing pricing occurs when a fund provider adjusts the net asset value (NAV) of a fund in order to pass on trading costs to purchasing or redeeming shareholders. This anti-dilution technique is used to protect long-term shareholder's interests. type: string format: date example: null x-fds-fql-formula: FFD_SWG_PRICE({date}).dates nullable: true sriPriips: description: The SRI (Summary Risk Indicator) illustrates PRIIPs' risk and reward profile by measuring the market and credit risk level. Returns 1 for low risk up to 7 for higher risk. type: integer example: null x-fds-fql-formula: FFD_PRIIPS_SRI nullable: true srriUcits: description: Synthetic Risk and Reward Indicator illustrates a UCITS or NURS (Non-UCITS Retail Scheme) fund's risk and reward profile by measuring the market risk level. Returns 1 for low risk up to 7 for high risk. type: integer example: null x-fds-fql-formula: FFD_UCITS_SRRI nullable: true performanceFee: description: Represents fees made to an investment manager as a percentage of investment profits for generating positive returns. type: number format: double example: null x-fds-fql-formula: FFD_PERF_FEE({date}) nullable: true tradingExpenseRatio: description: Represents the amount of trading commissions incurred to manage the portfolio as a percentage of the total assets of the fund. type: number format: double example: null x-fds-fql-formula: FFD_TRAD_EXP({date}) nullable: true requestId: description: The requested Id sent as input. type: string example: MABAX costsFeesRequest: title: Cost and Fees Request Body description: Cost and Fees Request Body type: object properties: ids: $ref: '#/components/schemas/costsFeesIds' date: $ref: '#/components/schemas/costsFeesDate' currency: $ref: '#/components/schemas/currency' required: - ids errorResponse: type: object title: Error Response properties: status: description: status type: string example: Bad Request timestamp: description: timestamp in YYYY-MM-DD HH:MM:SS.SSS type: string example: '2019-11-01 11:09:41.918' format: date-time path: description: The Endpoint path {package}/version/{endpoint} type: string example: /factset-funds/v1/superRegion message: description: The plain text error message type: string example: Validation Error subErrors: description: subErrors related to the error message. Null if not applicable. type: object properties: object: description: the operation ID type: string field: description: Parameter Field Name type: string message: description: Error message type: string rejectedValue: description: Rejected Values in an Array type: array items: type: string example: example_value costsFeesIds: type: array items: type: string minItems: 1 maxItems: 200 description: 'The requested Fund Identifier. FactSet Identifiers, tickers, CUSIP and SEDOL are accepted input.
***ids limit** = 1000 per request*
*Make note, GET Method URL request lines are also limited to a total length of 8192 bytes (8KB). In cases where the service allows for thousands of ids, which may lead to exceeding this request line limit of 8KB, its advised for any requests with large request lines to be requested through the respective "POST" method.
* ' example: - MABAX - FCNTX currency: type: string description: The ISO3 currency control for the requested fund. default: LOCAL example: USD costsFeesDate: type: string description: 'The date requested in **YYYY-MM-DD** format. If left blank, the API will default to previous close. Future dates (T+1) are not accepted in this endpoint. ' example: '2019-12-31' costsFeesResponse: type: object title: Classifications Response properties: data: description: Array of Costs and Fees Objects type: array items: $ref: '#/components/schemas/costsFees' example: [] parameters: costsFeesDate: name: date in: query required: false schema: type: string description: 'The date requested in **YYYY-MM-DD** format. If left blank, the API will default to latest available completed period. ' example: '2019-12-31' costsFeesIds: name: ids in: query schema: type: array items: type: string minItems: 1 maxItems: 200 required: true explode: false description: 'The requested fund identifier. FactSet Identifiers, tickers, CUSIP, SEDOL, and ISIN are accepted inputs.***ids limit** = 1000 per request*
*Make note, GET Method URL request lines are also limited to a total length of 8192 bytes (8KB). In cases where the service allows for thousands of ids, which may lead to exceeding this request line limit of 8KB, its advised for any requests with large request lines to be requested through the respective "POST" method.
* ' examples: oneId: summary: One Market Identifier value: - MABAX-US multipleIds: summary: Multiple Market Identifiers value: - MABAX-US - FCNTX-US currency: name: currency in: query required: false schema: type: string default: LOCAL description: Controls the Currency conversion of the Fund. By default, the currency will use the funds local currency. example: USD securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation