FactSet RBICS API

A Comprehensive structured taxonomy to classify companies by what they primarily do. FactSet Revere Business Industry Classification System (RBICS) delivers a granular view for investors by classifying companies using a bottom-up approach_.

OpenAPI Specification

rbics-openapi-original.yml Raw ↑
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: [email protected]
  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.<p>**ids limit = 2500 per
        request**</p> 
          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.</p>
      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: