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: