openapi: 3.0.3 info: title: Factset Analytics Datastore About Structure 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: Structure paths: /structure: get: tags: - Structure operationId: getEntityStructureStructure summary: Factset Entity structure description: Returns full entity tree for table and tree display parameters: - $ref: '#/components/parameters/idParameter' - $ref: '#/components/parameters/schemaParameter' responses: '200': $ref: '#/components/responses/200OK' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' '503': $ref: '#/components/responses/503ServiceUnavailable' /factset-rbics/v1/structure: get: summary: Factset Get the Full Rbics Taxonomy Structure Ids, Names, and Effective Periods. description: 'Understand the full RBICS Taxonomy Structure through time to help organize your analysis or facilitate the use of RBICS in application development. Designed to overcome disparate and non-standardized company disclosures, the RBICS taxonomy is a normalized global industry classification consisting of a fourteen-by-six matrix. There are twelve economies with two specialty sectors, each with six incremental detailed layers, resulting in over 1,600 sector groups. The top-levels'' market-defined approach groups companies based on their behavioral similarities and stock price co-movement, while the patented product-based approach used in the lower levels enables the necessary precision to capture the specialty sectors of global markets. ' tags: - Structure operationId: getRbicsStructure parameters: - $ref: '#/components/parameters/rbicsIds' - $ref: '#/components/parameters/levelStructure' - $ref: '#/components/parameters/includeNames' - $ref: '#/components/parameters/date' responses: '200': description: Successful Response producing an array of Entity Focus Objects content: application/json: schema: $ref: '#/components/schemas/structureResponse' examples: RBICS Classifications for Single Level with Names: $ref: '#/components/examples/rbicsStructureLevel' '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: summary: Factset Get the Full Rbics Taxonomy Structure Ids, Names, and Effective Periods. description: 'Get the full RBICS Taxonomy Structure Ids, Names, and effective periods. POST method is optimal for requesting large lists of `rbicsIds`. ' tags: - Structure operationId: getRbicsStructureForList requestBody: required: true description: Request Body to request a list of RBICS Structure objects. content: application/json: schema: $ref: '#/components/schemas/structureRequest' responses: '200': description: Successful Response producing an array of RBICS Structure Objects content: application/json: schema: $ref: '#/components/schemas/structureResponse' examples: RBICS Classifications for Single Level with Names: $ref: '#/components/examples/rbicsStructureLevel' '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: schemas: Meta: type: object additionalProperties: type: string nullable: true levelStructure: type: integer minimum: 1 maximum: 6 description: "RBICS industry levels to include in the response. All levels from 1-N will be returned. For example, '3' returns all levels 1,2 and 3. To request all levels, request level=6. Level 1 is returned by default.\n |Level|Description|Number of Groups|\n ||||\n |1|Economomy|14|\n |2|Sector|37\n |3|Sub-Sector|109|\n |4|Industry Group|366|\n |5|Inudstry|901|\n |6|Sub-Industry|1629|\n" example: 3 ErrorResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/ErrorObject' meta: $ref: '#/components/schemas/Meta' structure: title: Structure type: object properties: rbicsId: description: RBICS Code for the classification. type: string example: '101010101010' nullable: true firstDate: description: First date of the classification. type: string format: datetime example: '1945-01-01T00:00:00.000' nullable: true lastDate: description: Date when the classification became no longer valid. If `null`, the classification is still valid. type: string format: datetime example: null nullable: true additionalProperties: true Response: type: object properties: data: title: STACH description: Returns a STACH 2.0 row organized package meta: $ref: '#/components/schemas/Meta' ErrorObject: type: object properties: id: type: string code: type: string title: type: string links: type: object properties: about: type: string detail: type: string source: type: object properties: parameter: type: string includeNames: type: boolean description: 'Option to include or exclude industry Names and the L6 Description. True = Include Names; False = Exclude Names. ' example: true default: true structureRequest: title: Structure Request description: Structure Request Body type: object properties: rbicsIds: $ref: '#/components/schemas/rbicsIds' level: $ref: '#/components/schemas/levelStructure' includeNames: $ref: '#/components/schemas/includeNames' date: $ref: '#/components/schemas/date' structureResponse: title: Structure Response type: object description: Structure Response Array properties: data: description: Array of Structure Objects type: array items: $ref: '#/components/schemas/structure' 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-rbics/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 rbicsIds: title: ids description: 'RBICS Taxonomy Id Filter. Use to lookup the structure details for the Id requested. ' type: array maxItems: 2500 example: - '101010000000' - '55' items: type: string maxLength: 12 minLength: 2 date: type: string description: 'Effective date for data expressed in YYYY-MM-DD format. If no date is requested, the default behavior is to return the full history for the requested entity. ' example: '2020-09-30' examples: 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-rbics/v1/{endpoint} message: 'Invalid Parameter (s): fakeParameter. 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-rbics/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-rbics/v1/{endpoint} message: Error writing JSON output subErrors: null notAuthorized: summary: not authorized value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: notAuthorized title: User is forbidden access with current credentials. For access, contact your FactSet sales representative 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-rbics/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: '2020-07-02 10:36:01.944' path: /factset-rbics/v1/{endpoint} message: Unexpected error subErrors: null groupLevelResponse: summary: (sample table group level response) description: Subset of rows and columns for an example STACH 2.0 row organized package format table group level response value: data: version: '2.0' tables: main: definition: columns: - id: entityID type: string isDimension: true - id: name type: string - id: country type: string - id: entityType type: string headersDefinition: columns: - id: entityTableHeader type: string isDimension: true data: rows: - rowType: Header cells: - ID - Name - Country - Entity Type headerCellDetails: '0': source: HEADERS columnIndex: 0 '1': source: HEADERS columnIndex: 0 '2': source: HEADERS columnIndex: 0 '3': source: HEADERS columnIndex: 0 - cells: - 0016YD-E - FactSet Research Systems, Inc. - United States - PUB - cells: - 003S32-E - P.A.N. Securities LP - United States - SUB cellDetails: '0': groupLevel: '1' - cells: - 007F37-E - Portware LLC - United States - SUB cellDetails: '0': groupLevel: '1' - cells: - 0CK25T-E - Aritas Group, Inc. /Technology & Analytical Business/ - United States - COR cellDetails: '0': groupLevel: '2' - cells: - 0DV5KG-E - Long Ridge Portware Holdings, Inc. - United States - EXT cellDetails: '0': groupLevel: '2' - cells: - 0GV04X-E - Portware India Pvt Ltd. - India - SUB cellDetails: '0': groupLevel: '2' - cells: - 0GV04Y-E - Portware International LLC - United States - SUB cellDetails: '0': groupLevel: '2' - cells: - 0G910J-E - Portware International LLC (United Kingdom) - United Kingdom - SUB cellDetails: '0': groupLevel: '3' meta: requestId: FDS-US fsymId: SQFMK3-R schema: table_group_level 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-rbics/v1/{endpoint} message: The request took too long. Try again with a smaller request. subErrors: null idInvalidParameterError: summary: invalid id parameter value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: parameterError title: 'Invalid parameter(s): ''id''' forbidden: summary: Forbidden description: The USERNAME-SERIAL attempted to request the endpoint/ID which 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-rbics/v1/{endpoint} message: User is not authorized for the id requested, please reach out to FactSet for support subErrors: null parentChildColumnsResponse: summary: (sample table parent child columns response) description: Subset of rows and columns for an example STACH 2.0 row organized package format table parent child columns response value: data: version: '2.0' tables: main: definition: columns: - id: entityLevel0 type: string isDimension: true - id: entityLevel1 type: string isDimension: true parentId: entityLevel0 - id: entityLevel2 type: string isDimension: true parentId: entityLevel1 - id: entityLevel3 type: string isDimension: true parentId: entityLevel2 - id: name type: string - id: country type: string - id: entityType type: string headersDefinition: columns: - id: entityTableHeader type: string isDimension: true data: rows: - rowType: Header cells: - null - null - null - null - Name - Country - Entity Type headerCellDetails: '0': source: HEADERS columnIndex: 0 '1': source: HEADERS columnIndex: 0 '2': source: HEADERS columnIndex: 0 '3': source: HEADERS columnIndex: 0 '4': source: HEADERS columnIndex: 0 '5': source: HEADERS columnIndex: 0 '6': source: HEADERS columnIndex: 0 - cells: - 0016YD-E - null - null - null - FactSet Research Systems, Inc. - United States - PUB - cells: - 0016YD-E - 003S32-E - null - null - P.A.N. Securities LP - United States - SUB - cells: - 0016YD-E - 007F37-E - null - null - Portware LLC - United States - SUB - cells: - 0016YD-E - 007F37-E - 0CK25T-E - null - Aritas Group, Inc. /Technology & Analytical Business/ - United States - COR - cells: - 0016YD-E - 007F37-E - 0DV5KG-E - null - Long Ridge Portware Holdings, Inc. - United States - EXT - cells: - 0016YD-E - 007F37-E - 0GV04X-E - null - Portware India Pvt Ltd. - India - SUB - cells: - 0016YD-E - 007F37-E - 0GV04Y-E - null - Portware International LLC - United States - SUB - cells: - 0016YD-E - 007F37-E - 0GV04Y-E - 0G910J-E - Portware International LLC (United Kingdom) - United Kingdom - SUB meta: requestId: FDS-US fsymId: SQFMK3-R schema: table_parent_child_columns 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-rbics/v1/{endpoint} message: User Authentication Failed. subErrors: null endpointNotFound: summary: endpoint not found value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: endpointNotFound title: The requested endpoint does not exist. 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-rbics/v1/{endpoint} message: Malformed JSON Request subErrors: null genericServerError: summary: generic server error value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: genericServerError title: Unexpected error processing request treeResponse: summary: (sample tree response) description: Subset of rows and columns for an example response value: data: root: 0016YD-E 0016YD-E: name: FactSet Research Systems, Inc. country: United States entityType: PUB parent: null children: - 003S32-E - 007F37-E - 007FCX-E 003S32-E: name: P.A.N. Securities LP country: United States entityType: SUB parent: 0016YD-E 007F37-E: name: Portware LLC country: United States entityType: SUB parent: 0016YD-E children: - 0CK25T-E - 0DV5KG-E - 0GV04X-E - 0GV04Y-E - 0MLMTB-E 0CK25T-E: name: Aritas Group, Inc. /Technology & Analytical Business/ country: United States entityType: COR parent: 007F37-E 0DV5KG-E: name: Long Ridge Portware Holdings, Inc. country: United States entityType: EXT parent: 007F37-E 0GV04X-E: name: Portware India Pvt Ltd. country: India entityType: SUB parent: 007F37-E 0GV04Y-E: name: Portware International LLC country: United States entityType: SUB parent: 007F37-E children: - 0G910J-E - 0GV051-E 0G910J-E: name: Portware International LLC (United Kingdom) country: United Kingdom entityType: SUB parent: 0GV04Y-E 0GV051-E: name: Portware International LLC (Hong Kong Branch) country: Hong Kong entityType: SUB parent: 0GV04Y-E 0MLMTB-E: name: Portware Singapore country: Singapore entityType: SUB parent: 007F37-E 007FCX-E: name: Code Red, Inc. country: United States entityType: SUB parent: 0016YD-E meta: requestId: FDS-US fsymId: SQFMK3-R schema: tree 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-rbics/v1/{endpoint} message: The parameter 'ids' is required and may not be empty. subErrors: null rbicsStructureLevel: summary: The Full RBICS Taxonomy description: Fetch the Full RBICS Taxonomy Structure based on the levels requested. Names and description optionally included in the response. value: data: - startDate: '1945-01-01T14:00:00.0000000+00:00' endDate: null rbicsId: '10' name: Business Services idRequiredParameterError: summary: missing id parameter value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: parameterError title: 'Missing required parameter(s): ''id''' schemaInvalidParameterError: summary: invalid schema parameter value: errors: - id: 39314614-e607-465a-ba95-5bb79c362e23 code: parameterError title: 'Invalid parameter: ''schema''' 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' 401Unauthorized: description: Missing or invalid authentication. Ensure you are logged in and have successfully generated an API KEY for the IP range you are connecting from. For further assistance, file an issue under "Connectivty - 401 or 403 Responses" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID '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' 429TooManyRequests: description: Too many requests - this API is rate-limited to 20 requests per second. For further assistance, file an issue under "Workflow & Throttling - 400 or 429 Response" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID '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' 404NotFound: description: Not found. For further assistance, file an issue under "Performance - 404 and 500 Responses" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: endpointNotFound: $ref: '#/components/examples/endpointNotFound' '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' 403Forbidden: description: User is forbidden access with current credentials. Reach out to your local FactSet Account Manager for assistance, or file an issue under "Connectivty - 401 or 403 Responses" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: notAuthorized: $ref: '#/components/examples/notAuthorized' 200OK: description: Expected response headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID Api-Supported-Versions: schema: type: string description: Supported API major versions Api-Version: schema: type: string description: API version (semantic versioning) content: application/json: schema: $ref: '#/components/schemas/Response' examples: groupLevelResponse: $ref: '#/components/examples/groupLevelResponse' parentChildColumnsResponse: $ref: '#/components/examples/parentChildColumnsResponse' treeResponse: $ref: '#/components/examples/treeResponse' 503ServiceUnavailable: description: Service unavailable. Typically a timeout, or result of a rejected request to prevent service overload. For further assistance, file an issue under "Performance - 404 and 500 Responses" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID '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' 400BadRequest: description: Bad Request. For further assistance, file an issue under "Workflow & Throttling - 400 or 429 Response" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID Api-Supported-Versions: schema: type: string description: Supported API versions (semantic versioning) Api-Version: schema: type: string description: API version (semantic versioning) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: idRequiredParameterError: $ref: '#/components/examples/idRequiredParameterError' idInvalidParameterError: $ref: '#/components/examples/idInvalidParameterError' schemaInvalidParameterError: $ref: '#/components/examples/schemaInvalidParameterError' 500InternalServerError: description: Server error. For further assistance, file an issue under "Performance - 404 and 500 Responses" using `Report Issue` at the top of this page, including the X-DataDirect-Request-Key from the header to assist in troubleshooting. headers: X-DataDirect-Request-Key: schema: type: string description: FactSet request ID content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: genericServerError: $ref: '#/components/examples/genericServerError' parameters: levelStructure: name: level description: "RBICS industry levels to include in the response. All levels from 1-N will be returned. For example, '3' returns all levels 1,2 and 3. To request all levels, request level=6. Level 1 is returned by default.\n |Level|Description|Number of Groups|\n ||||\n |1|Economomy|14|\n |2|Sector|37\n |3|Sub-Sector|109|\n |4|Industry Group|366|\n |5|Inudstry|901|\n |6|Sub-Industry|1629|\n" in: query explode: false schema: type: integer minimum: 1 maximum: 6 example: 1 rbicsIds: name: rbicsIds description: 'RBICS Taxonomy Id Filter. Use to lookup the structure details for the Id requested. ' in: query required: false schema: type: array items: type: string minLength: 2 maxLength: 12 maxItems: 2500 explode: false example: - '101010000000' - '55' date: name: date description: Effective date for data expressed in YYYY-MM-DD format. If no date is requested, the default behavior is to return the full history for the requested entity. in: query example: '2017-07-24' schema: type: string schemaParameter: name: schema in: query description: 'The schema that the data is returned as. The following are descriptions for the accepted values: - table_group_level - STACH 2.0 row organized package format with parent-child relationships represented using STACH group level cell metadata - table_parent_child_columns - STACH 2.0 row organized package format with parent-child relationships represented using STACH parent-child columns - tree - Entities are represented as tree nodes returned in a flat structure, where each parent node contains a children attribute pointing to its child nodes ' required: false schema: type: string enum: - table_group_level - table_parent_child_columns - tree default: table_parent_child_columns includeNames: name: includeNames in: query description: Option to include or exclude industry Names and the L6 Description. true = Include Names; false = Exclude Names. schema: type: boolean default: true idParameter: name: id in: query description: Company ticker required: true schema: type: string example: FDS securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation