openapi: 3.0.3 info: title: Factset Analytics Datastore About Fields 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: Fields paths: /user-defined-field-group: get: operationId: listUserDefinedFieldGroups description: List user defined groups tags: - Fields parameters: - name: name in: query required: false schema: type: string example: string description: Return only files whose name includes this query - name: _paginationLimit in: query required: false schema: type: number default: 100 example: 0 description: Number of groups to return - name: _paginationCursor in: query required: false schema: type: string example: string description: Cursor used for paging. Fetch items after the specified cursor responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/listUserDefinedFieldGroupsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '406': $ref: '#/components/responses/NotAcceptableErrorResponse' '415': $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' '501': $ref: '#/components/responses/NotImplementedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /user-defined-field-group/{id}: get: operationId: readUserDefinedGroup description: Read a specific user defined field group and list its fields. tags: - Fields parameters: - name: id in: path required: true schema: type: string example: 270c2fa8-9110-444b-9101-17e10132fe0a description: Unique identifer for the group to be read. - name: _paginationLimit in: query required: false schema: type: number default: 100 example: 0 description: Number of fields to list from this group - name: _paginationCursor in: query required: false schema: type: string example: string description: Cursor used for paging. Fetch fields after the specified cursor responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/readUserDefinedGroupResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '406': $ref: '#/components/responses/NotAcceptableErrorResponse' '415': $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' '501': $ref: '#/components/responses/NotImplementedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /user-defined-field: get: operationId: listUserDefinedFields description: List user defined fields tags: - Fields parameters: - name: database in: query required: false schema: type: string enum: - CLIENT - FACTSET - SUPER_CLIENT default: CLIENT example: CLIENT description: Database where the fields are defined. - name: name in: query required: false schema: type: string example: string description: Return only fields whose name includes this query - name: group in: query required: false schema: type: string example: string description: Return only fields whose group includes this query - name: _paginationLimit in: query required: false schema: type: number default: 100 example: 0 description: Number of fields to return - name: _paginationCursor in: query required: false schema: type: string example: string description: Cursor used for paging. Fetch items after the specified cursor responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/listUserDefinedFieldsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '406': $ref: '#/components/responses/NotAcceptableErrorResponse' '415': $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' '501': $ref: '#/components/responses/NotImplementedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /user-defined-field/{id}: get: operationId: readUserDefinedField description: Read a user defined field tags: - Fields parameters: - name: id in: path required: true schema: type: string example: 270c2fa8-9110-444b-9101-17e10132fe0a description: Unique identifier of the user defined field to be read example: 270c2fa8-9110-444b-9101-17e10132fe0a responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/readUserDefinedFieldResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '406': $ref: '#/components/responses/NotAcceptableErrorResponse' '415': $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' '501': $ref: '#/components/responses/NotImplementedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /factset-private-markets/v1/fields: get: summary: Factset Available Private Company Fields, Metrics, and Ratios. operationId: getFields tags: - Fields description: 'Returns list of available Private Company fields that can be used in the `fields` parameter of related endpoints. These are related to FactSet Private Company standardized data. ' parameters: - $ref: '#/components/parameters/category' responses: '200': description: Private Company data items content: application/json: schema: $ref: '#/components/schemas/fieldsResponse' '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 /factset-terms-and-conditions/v1/fields: get: summary: Factset Available Fields for /terms-and-conditions Endpoint operationId: getTermsAndConditionsFields tags: - Fields description: 'Returns a list of available fields that can be used in the `fields` parameter of the **/terms-and-conditions** endpoint. Leave _category_ blank to request all available items. Make Note, this does not represent all available fields within the Terms and Conditions API and all other endpoints. ' parameters: - $ref: '#/components/parameters/category_2' responses: '200': description: Terms And Conditions Fields Response content: application/json: schema: $ref: '#/components/schemas/fieldsResponse_2' '400': $ref: '#/components/responses/400_2' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403_2' '415': $ref: '#/components/responses/415_2' '500': $ref: '#/components/responses/500' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: responses: '400_2': description: Bad Request. This can occur for several reasons. Please review the "message" for more details. content: application/json: schema: $ref: '#/components/schemas/errorResponse_2' examples: Bad Request - Missing Required Parameter: $ref: '#/components/examples/badRequestRequiredParameter_2' Bad Request - Invalid Parameter: $ref: '#/components/examples/badRequestInvalidParameters_2' Bad Request - Malformed JSON: $ref: '#/components/examples/badRequestMalformedJSON_2' Bad Request - Read Timeout: $ref: '#/components/examples/badRequestReadTimeout_2' '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' BadRequestErrorResponse: description: The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing). content: application/json: schema: $ref: '#/components/schemas/Errors' '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 - Unsupported Media Type: $ref: '#/components/examples/unsupportedMediaType' '415_2': 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_2' examples: Bad Request - Date Format: $ref: '#/components/examples/unsupportedMediaType_2' '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 - Forbidden: $ref: '#/components/examples/forbidden' ForbiddenErrorResponse: description: The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action. content: application/json: schema: $ref: '#/components/schemas/Errors' '403_2': 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_2' examples: Bad Request - Date Format: $ref: '#/components/examples/forbidden_2' NotFoundErrorResponse: description: The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. content: application/json: schema: $ref: '#/components/schemas/Errors' UnauthorizedErrorResponse: description: Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. content: application/json: schema: $ref: '#/components/schemas/Errors' UnsupportedMediaTypeErrorResponse: description: The request entity has a media type which the server or resource does not support. content: application/json: schema: $ref: '#/components/schemas/Errors' NotImplementedErrorResponse: description: '' content: application/json: schema: $ref: '#/components/schemas/Errors' NotAcceptableErrorResponse: description: The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. content: application/json: schema: $ref: '#/components/schemas/Errors' '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' InternalServerErrorResponse: description: '' content: application/json: schema: $ref: '#/components/schemas/Errors' '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 - Invalid Parameter: $ref: '#/components/examples/badRequestInvalidParameters' Bad Request - Malformed JSON: $ref: '#/components/examples/badRequestMalformedJSON' Bad Request - Read Timeout: $ref: '#/components/examples/badRequestReadTimeout' examples: forbidden_2: 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-terms-and-conditions/v1/{endpoint} message: USERNAME-SERIAL does not have permission to use /factset-terms-and-conditions/v1/{endpoint} subErrors: null badRequestInvalidParameters: summary: Bad Request - Passing Invalid Parameter description: This error message occurs when user is passing an Invalid Parameter value: status: Bad Request timestamp: '2020-07-23 11:03:40.765' path: /factset-private-markets/v1/{endpoint} message: 'Invalid Parameter (s): fakeParameter. Please modify your request to use parameters outlined in the specification for this endpoint.' subErrors: null badRequestInvalidParameters_2: 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-terms-and-conditions/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: '2020-07-02 11:52:36.464' path: /factset-private-markets/v1/{endpoint} message: 'The date parameter 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: '2020-07-02 09:48:29.18' path: /factset-private-markets/v1/{endpoint} message: Error writing JSON output subErrors: null badRequestReadTimeout_2: 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-terms-and-conditions/v1/{endpoint} message: The request took too long. Try again with a smaller request. 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: '2020-07-02 09:42:27.237' path: /factset-private-markets/v1/{endpoint} message: text/html media type is not supported. Supported media types are application/json. subErrors: null badRequestRequiredParameter_2: 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-terms-and-conditions/v1/{endpoint} message: The parameter 'ids' is required and may not be empty. 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: '2020-07-02 10:36:01.944' path: /factset-private-markets/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: '2020-07-02 16:18:38.949' path: /factset-private-markets/v1/{endpoint} message: The request took too long. Try again with a smaller request. 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-07-02 17:21:52.197' path: /factset-private-markets/v1/{endpoint} message: USERNAME-SERIAL does not have permission to use /factset-private-markets/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: '2020-07-02 16:08:07.945' path: /factset-private-markets/v1/{endpoint} message: User Authentication Failed. subErrors: null unsupportedMediaType_2: 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-terms-and-conditions/v1/{endpoint} message: text/html media type is not supported. Supported media types are application/json 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: '2020-07-02 11:59:09.649' path: /factset-private-markets/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-30 13:22:09.053' path: /factset-private-markets/v1/{endpoint} message: The parameter 'ids' is required and may not be empty. subErrors: null badRequestMalformedJSON_2: 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-terms-and-conditions/v1/{endpoint} message: Malformed JSON Request subErrors: null parameters: category_2: name: category in: query schema: type: string enum: - SECURITY_DETAILS - COUPON_DETAILS - CONVERTIBLE_FEATURES - REDEMPTION_OPTIONS required: false description: "Filters the list of Fixed Income metrics by major category -\n * **SECURITY_DETAILS** = Detailed information about the security.\n * **COUPON_DETAILS** = Coupon details.\n * **CONVERTIBLE_FEATURES** = Features of convertible instruments.\n * **REDEMPTION_OPTIONS** = Redemption options.\n" category: name: category in: query schema: type: string enum: - FINANCIALS - NON_PERIODIC required: false description: "Filters the list of available fields per endpoint -\n * **FINANCIALS** = Financials endpoint data items, such as Assets, Liabilities, and EBITDA.\n * **NON_PERIODIC** = Non-Periodic endpoint data items, such as ISO Currency, Current CEO, and Investor List.\n" examples: FINANCIALS: summary: FINANCIALS - Financials. value: FINANCIALS NON_PERIODIC: summary: NON_PERIODIC - Non-Periodic. value: NON_PERIODIC schemas: listUserDefinedFieldGroupsResponse: type: object properties: data: type: array items: type: object properties: id: type: string nullable: false example: MDpEZWZhdWx0IEdyb3Vw type: type: string enum: - UserDefinedFieldGroup nullable: false name: type: string nullable: false example: MY_GROUP nullable: false example: [] meta: type: object properties: pagination: type: object properties: next: type: string nullable: true example: YwAAAA== previous: type: string nullable: true example: AAAAAA== nullable: false example: example_value nullable: true field: title: Field Object type: object properties: field: description: Data item to be used as `fields` input in `/factset-private-markets/v#/` endpoint. type: string example: assets nullable: true name: description: Plain text name of the field. type: string example: Total Assets nullable: true category: description: Corresponding endpoint to input field item. For example, fields returning the category 'FINANCIALS' should be used in the /financials endpoint. The same follows data items falling in the category for NON_PERIODIC, which would be used in the /non-periodic endpoint. type: string example: FINANCIALS nullable: true factor: description: The factor for the field (e.g. 1000 = thousands). type: integer example: 1000000 nullable: true sdfName: description: The name of the data item as it appears in the Standard Data Feed (SDF). A null value represents items available only in API. type: string example: FPC_ASSETS nullable: true readUserDefinedGroupResponse: type: object properties: data: type: object properties: id: type: string nullable: false example: MDpEZWZhdWx0IEdyb3Vw type: type: string enum: - UserDefinedFieldGroup nullable: false name: type: string nullable: false example: MY_GROUP fields: type: object properties: data: type: array items: type: object properties: id: type: string nullable: false example: b1c36b19-1417-4e8c-8d0a-416cf6a92a6a type: type: string enum: - UserDefinedField nullable: false name: type: string nullable: false example: MY_VALUE nullable: false meta: type: object properties: pagination: type: object properties: next: type: string nullable: true example: YwAAAA== previous: type: string nullable: true example: AAAAAA== nullable: false example: example_value nullable: true fieldsResponse: type: object title: Fields Response properties: data: description: 'Array of field objects representing the data items that can be requested from the Private Markets API. ' type: array items: $ref: '#/components/schemas/field' example: [] errorResponse: type: object description: error description 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-private-markets/v1/{end-point} 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 Errors: type: object description: Information about one or more errors properties: errors: type: array description: List of errors items: type: object properties: id: type: string description: Unique identifier for this error instance. Used to reference this error in logging. example: 270c2fa8-9110-444b-9101-17e10132fe0a code: type: string description: Error code for this error enum: - BadRequestError - UnauthorizedError - ForbiddenError - NotFoundError - NotAcceptableError - ConflictError - UnsupportedMediaTypeError - InternalServerError - NotImplementedError title: type: string description: HTTP reason phrase associcated with this error enum: - Bad Request - Unauthorized - Forbidden - Not Found - Not Acceptable - Conflict - Unsupported Media Type - Internal Server Error - Not Implemented detail: type: string description: Detailed description of the error that occurred example: [] required: - errors readUserDefinedFieldResponse: type: object properties: data: type: object properties: id: type: string nullable: false example: b1c36b19-1417-4e8c-8d0a-416cf6a92a6a type: type: string enum: - UserDefinedField nullable: false name: type: string nullable: false example: MY_VALUE dataType: type: string enum: - NUMBER - STRING nullable: false group: type: object properties: id: type: string nullable: false example: MDpEZWZhdWx0IEdyb3Vw type: type: string enum: - UserDefinedFieldGroup nullable: false name: type: string nullable: false example: MY_GROUP nullable: false nullable: true example: example_value nullable: true errorResponse_2: 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-georev/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 fieldsResponse_2: title: Fields Response type: object properties: data: description: 'Array of metric objects representing the metrics that can be requested from the Fixed Income APIs. ' type: array items: $ref: '#/components/schemas/field_2' example: [] listUserDefinedFieldsResponse: type: object properties: data: type: array items: type: object properties: id: type: string nullable: false example: b1c36b19-1417-4e8c-8d0a-416cf6a92a6a type: type: string enum: - UserDefinedField nullable: false name: type: string nullable: false example: MY_VALUE nullable: false example: [] meta: type: object properties: pagination: type: object properties: next: type: string nullable: true example: YwAAAA== previous: type: string nullable: true example: AAAAAA== nullable: false example: example_value nullable: true field_2: title: Field Object type: object properties: field: description: 'Field identifier to be used as `fields` input in _Terms-and-Conditions_ endpoints. ' type: string example: principalAmt name: description: Plain text name of the field. type: string example: Principal (or Face Value) Amount category: description: Primary Category of field item, such as COUPON_DETAILS or SECURITY_DETAILS. type: string enum: - CONVERTIBLE_FEATURES - COUPON_DETAILS - REDEMPTION_OPTIONS - SECURITY_DETAILS example: SECURITY_DETAILS dataType: description: 'The Data Type of the respective field, including - * date * string * integer * double ' type: string example: integer securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation