openapi: 3.0.0 info: version: 1.1.0 title: FactSet RIBCS description: > FactSet Revere Business Industry Classification System (RBICS) is a comprehensive structured taxonomy to classify companies by what they primarily do. It delivers a granular view for investors by classifying companies using a bottom-up approach according to the products and services they provide. By combining this approach with a top-level grouping based on companies' behavior similarities and stock co-movement, FactSet RBICS delivers unprecedented precision for 1,400+ sector groups. RBICS Focus is a six level classification which highlights the companys main business. It is based on the company business line/s that stand for majority of a the revenue that the company generates. Updated monthly. For more details, visit [Online Assitant Page #20710](https://oa.apps.factset.com/pages/20710). contact: name: FactSet Research Systems email: api@factset.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html security: - UserSecurity: [] tags: - name: Factset Rbics paths: /factset-rbics/v1/entity-focus: get: summary: Factset Get RBICS classification for the Focus industry description: > Gets RBICS classifications for the Focus industry for a short list of companies. Full history is included if _date_ parameter is not specified. RBICS Focus offers a single-sector mapping of about 48,000 of the most liquid and publicly-traded companies based on their primary lines of business; it uses revenues as the key factor in determining a company’s primary line of business, by mapping a company to the lowest-level sector from which it derives 50% or more of its revenues. The RBICS Extended Universe – Industry Group is not currently supported through the RBICS API. tags: - Factset Rbics operationId: getRbicsEntityFocus parameters: - $ref: '#/components/parameters/ids' - $ref: '#/components/parameters/date' - $ref: '#/components/parameters/levels' - $ref: '#/components/parameters/includeNames' responses: '200': description: Successful Response producing an array of Entity Focus Objects content: application/json: schema: $ref: '#/components/schemas/entityFocusResponse' examples: RBICS Classifications for Single Id with Names: $ref: '#/components/examples/rbicsAllLevels' '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' post: summary: Factset Get RBICS classification for the Focus industry description: > Gets RBICS classifications for the Focus industry for a long list of companies. Full history is included if _date_ parameter is not specified. RBICS Focus offers a single-sector mapping of about 48,000 of the most liquid and publicly-traded companies based on their primary lines of business; it uses revenues as the key factor in determining a company’s primary line of business, by mapping a company to the lowest-level sector from which it derives 50% or more of its revenues. The RBICS Extended Universe – Industry Group is not currently supported through the RBICS API. tags: - Factset Rbics operationId: getRbicsEntityFocusForList requestBody: required: true description: Request Body to request a list of RBICS Entity Focus objects. content: application/json: schema: $ref: '#/components/schemas/entityFocusRequest' responses: '200': description: Successful Response producing an array of Entity Focus Objects content: application/json: schema: $ref: '#/components/schemas/entityFocusResponse' examples: RBICS Classifications for Single Id with Names: $ref: '#/components/examples/rbicsAllLevels' /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: - Factset Rbics 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' 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: - Factset Rbics 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' servers: - url: https://api.factset.com/content components: securitySchemes: UserSecurity: type: http description: Basic Authentication scheme: basic parameters: ids: name: ids description: > List of Company identifiers. Accepted identifiers include Ticker-Exchange, Ticker-Regions, CUSIPs, ISINs, SEDOLs, or FactSet Permanent Ids, such as -R, -L, or -E.
**ids limit = 2500 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. in: query required: true schema: type: array items: type: string example: IBM-US minItems: 1 maxItems: 2500 explode: false example: - AAPL-US - 0FPWZZ-E - TSLA-US 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 levels: name: levels description: >- List of RBICS industry levels to include in the response. **By default if left blank, all levels are returned.** in: query explode: false schema: type: array items: type: integer minimum: 1 maximum: 6 maxItems: 6 uniqueItems: true example: - 1 - 3 - 6 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 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. |Level|Description|Number of Groups| |||| |1|Economomy|14| |2|Sector|37 |3|Sub-Sector|109| |4|Industry Group|366| |5|Inudstry|901| |6|Sub-Industry|1629| in: query explode: false schema: type: integer minimum: 1 maximum: 6 example: 1 schemas: entityFocusRequest: title: Entity Focus Request description: Entity Focus Request Body type: object properties: ids: $ref: '#/components/schemas/ids' date: $ref: '#/components/schemas/date' levels: $ref: '#/components/schemas/levels' includeNames: $ref: '#/components/schemas/includeNames' entityFocusResponse: title: Entity Focus Response type: object description: Entity Focus Response properties: data: description: Array of Entity Focus Objects type: array items: $ref: '#/components/schemas/entityFocus' entityFocus: title: Entity Focus type: object properties: requestId: description: Company identifier used in request. type: string example: AAPL fsymId: description: FactSet Company identifier being classified. type: string example: 000C7F-E nullable: true firstDate: description: First date of the classification. type: string format: datetime example: '2008-08-26T00:00:00.000' nullable: true lastDate: description: Date when the classification became no longer valid. type: string format: datetime example: '2016-09-07T14:00:00.000' nullable: true additionalProperties: true required: - requestId - fsymId - firstDate - lastDate 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' 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: nullable: true additionalProperties: true ids: title: ids description: > Security or Entity identifiers. FactSet Identifiers, tickers, CUSIP and SEDOL are accepted input. Max Ids of 2500. type: array items: type: string minItems: 1 maxItems: 2500 example: - FDS-US - 0FPWZZ-E - TSLA-US 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' levels: type: array items: type: integer minItems: 0 maxItems: 6 minimum: 1 maximum: 6 uniqueItems: true description: > List of RBICS industry levels to include in the response. **By default if left blank, all levels are returned.** example: - 1 - 3 - 6 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. |Level|Description|Number of Groups| |||| |1|Economomy|14| |2|Sector|37 |3|Sub-Sector|109| |4|Industry Group|366| |5|Inudstry|901| |6|Sub-Industry|1629| example: 3 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 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 responses: '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' '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' '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' '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' '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' examples: rbicsAllLevels: summary: All Levels and Name for Single Id description: >- Fetch the full historical RBICS Classifications Ids for Apple, with Names and Description. value: data: - requestId: AAPL fsymId: 000C7F-E firstDate: '2003-04-03T00:00:00.0000000+00:00' lastDate: '2004-10-23T00:00:00.0000000+00:00' l1Id: '55' l1Name: Technology l2Id: '5515' l2Name: Hardware l3Id: '551520' l3Name: Computer Hardware and Storage l4Id: '55152015' l4Name: Computer Systems l5Id: '5515201520' l5Name: Other Computer Systems l6Id: '551520152010' l6Name: Other Computer Systems l6Description: >- The Systems subsector consists of very small to large-scale computer systems. These systems include a CPU and utilize either, or both, internal and/or external input and output peripherals. - requestId: AAPL fsymId: 000C7F-E firstDate: '2004-10-23T00:00:00.0000000+00:00' lastDate: '2008-08-26T00:00:00.0000000+00:00' l1Id: '55' l1Name: Technology l2Id: '5515' l2Name: Hardware l3Id: '551520' l3Name: Computer Hardware and Storage l4Id: '55152015' l4Name: Computer Systems l5Id: '5515201515' l5Name: Multi-Type Business and Personal Systems l6Id: '551520151510' l6Name: Multi-Type Business and Personal Systems l6Description: >- Computer systems designed for personal, home and office use. This sector is comprised of the complete spectrum of common computing systems, from desktop systems, notebooks and handhelds, to workstations and servers. - requestId: AAPL fsymId: 000C7F-E firstDate: '2008-08-26T00:00:00.0000000+00:00' lastDate: '2016-09-07T14:00:00.0000000+00:00' l1Id: '55' l1Name: Technology l2Id: '5515' l2Name: Hardware l3Id: '551520' l3Name: Computer Hardware and Storage l4Id: '55152025' l4Name: General Computer Hardware l5Id: '5515202515' l5Name: Diversified Technology Hardware l6Id: '551520251510' l6Name: Diversified Technology Hardware l6Description: >- The Hardware sector is comprised of all electronic system products. In general - requestId: AAPL fsymId: 000C7F-E firstDate: '2016-09-07T14:00:00.0000000+00:00' lastDate: l1Id: '55' l1Name: Technology l2Id: '5515' l2Name: Hardware l3Id: '551515' l3Name: Communications Equipment l4Id: '55151545' l4Name: Wireless Mobile Equipment l5Id: '5515154530' l5Name: Smart Phone Manufacturing l6Id: '551515453010' l6Name: Smart Phone Manufacturing l6Description: >- Integrated cellular communications devices with features such as advanced messaging, built-in camera and/or video recorder, web browsing, multimedia playback. 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: rbicsId: '10' name: Business Services 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: