openapi: 3.0.0 info: description: OFDB API version: 2.1.0 title: Factset OFDB API termsOfService: TOS 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 tags: - name: Database servers: - url: https://api.factset.com/analytics/ofdb/v2 security: - FactSetApiKey: [] - FactSetOAuth2: [] paths: /database/jobs/{id}/status: get: operationId: getStatus tags: - Database description: >- Returns the current status of a long running request. The full URL is normally provided for you in the Location header of a long running response. parameters: - $ref: '#/components/parameters/idPathParam' responses: '201': $ref: '#/components/responses/201LongRunningResponse' '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/audit: get: operationId: getAudit tags: - Database description: >- Returns a list of the most recent "modificationTimes" in long datetime format parameters: - $ref: '#/components/parameters/databaseLocationPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/audit/jobs/{id}: get: operationId: getResourceAudit tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetAudit' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/stats: get: operationId: getStats tags: - Database description: Returns a summary of OFDB metadata and data points parameters: - $ref: '#/components/parameters/databaseLocationPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/stats/jobs/{id}: get: operationId: getResourceStats tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetStats' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/fields: get: operationId: getFields tags: - Database description: Returns all the fields in the database(OFDB, OMS_OFDB, ECONOFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' post: operationId: addFields tags: - Database description: Allows users to add fields to existing OFDBs parameters: - $ref: '#/components/parameters/databaseLocationPathParam' requestBody: description: Data for creating fields in the database. required: true content: application/json: schema: $ref: '#/components/schemas/AddFields' examples: OFDB: description: The field schemas to be added value: data: - description: string iteration: 2D name: string size: 0 splitDirection: NONE type: INT codePageFlag: ASCII responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/fields/jobs/{id}: get: operationId: getResourceFields tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetFields' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/delete: post: operationId: deleteBulkItems tags: - Database description: >- Allows users to delete various combinations of symbols, dates, and fields from the desired OFDB requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkDelete' parameters: - $ref: '#/components/parameters/databaseLocationPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/delete/jobs/{id}: get: operationId: getResourceBulkDelete tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200BulkDelete' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/symbols: get: operationId: getSymbols tags: - Database description: Returns all the symbols in the database(OFDB, OMS_OFDB, ECONOFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - name: startsWith in: query description: Returns list of symbols which starts with mentioned string schema: type: string - name: endsWith in: query description: Returns list of symbols which ends with mentioned string schema: type: string - name: contains in: query description: Returns list of symbols which contains mentioned string schema: type: string - name: equals in: query description: Returns symbol which matches mentioned string schema: type: string - name: orderBy in: query description: >- Returns symbols in the mentioned sorted order, should provide asc or desc schema: type: string enum: - asc - desc responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' post: operationId: addSymbols tags: - Database description: >- Creates a new symbol with single/multiple dates for 3d database(OFDB). Creates a symbol for 2d database(OFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' requestBody: description: Data for creating symbol in the database required: true content: application/json: schema: $ref: '#/components/schemas/AddSymbols' examples: 3dOFDB: description: >- Object in content is mandatory and must contain date with atleast one iterative field value: data: - symbol: FDS content: - date: 20220106 price: '333' 2dOFDB: description: >- Object in content is optional and should contain fields of the OFDB value: data: - symbol: FDS content: - description: Your desired information price: '200' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' put: operationId: updateSymbols tags: - Database description: >- Updates existing symbols for single/multiple dates or adds a new symbol/date within a symbol if not present in 3d database(OFDB). Updates an existing symbol field value or adds a new symbol if not present in the 2d database(OFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' requestBody: description: Data for updating symbol in the database required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSymbols' examples: 3dOFDB: description: >- Object in content is mandatory and must contain the field date and at least one iterative field value: data: - symbol: FDS content: - date: 20200202 price: '999' 2dOFDB: description: >- Object in content is OPTIONAL and should contain fields already existing within your OFDB value: data: - symbol: FDS content: - country: USA responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/symbols/jobs/{id}: get: operationId: getResourceSymbols tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetSymbols' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/symbols/{symbol}: put: operationId: updateSymbol tags: - Database description: >- Updates an existing symbol field value for single/multiple dates or adds a new symbol/date within a symbol if not present in 3d database(OFDB). Updates an existing symbol field value or adds a new symbol if not present in the 2d database(OFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/symbolPathParam' requestBody: description: Data for updating symbol in the database required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSymbol' examples: 3dOFDB: description: >- Object in content is mandatory and must contain the field date and at least one iterative field value: data: - content: - date: 20200202 price: '999' 2dOFDB: description: >- Object in content is OPTIONAL and should contain fields already existing within your OFDB value: data: - content: - country: USA responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' delete: operationId: deleteSymbol tags: - Database description: >- Deletes all data specific to the symbol in both 2d and 3d database(OFDB). This includes all the dates related to that symbols in 3d database(OFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/symbolPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '204': $ref: '#/components/responses/204Response' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/symbols/{symbol}/jobs/{id}: get: operationId: getResourceSymbol tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/symbolPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/PostRequestsSuccessCompleteResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates: get: operationId: getDates tags: - Database description: Returns all the dates in the database(OFDB, OMS_OFDB, ECONOFDB) parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - name: between in: query description: >- Returns list of dates which are between [start,end], dates should be in the respective order of start and end style: form explode: false schema: type: string - name: equals in: query description: Returns the date which matches given date schema: type: string - name: before in: query description: Returns list of dates which are before mentioned date schema: type: string - name: after in: query description: Returns list of dates which are after mentioned date schema: type: string - name: orderBy in: query description: >- Returns dates in the mentioned sorted order, should provide asc or desc schema: type: string enum: - asc - desc responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' post: operationId: addDates tags: - Database description: Creates a new date with single/multiple symbols for a 3d database(OFDB). parameters: - $ref: '#/components/parameters/databaseLocationPathParam' requestBody: description: >- Required data for creating date in the database. At least one iterative field is required otherwise it will throw 400. required: true content: application/json: schema: $ref: '#/components/schemas/AddDates' example: data: - date: 20220107 content: - symbol: FDS price: 444 responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' put: operationId: updateDates tags: - Database description: >- Updates existing dates for single/multiple symbols or adds a new date/symbol within a date if not present in 3d database(OFDB). parameters: - $ref: '#/components/parameters/databaseLocationPathParam' requestBody: description: Required data for updating date in the database required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDates' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates/jobs/{id}: get: operationId: getResourceDates tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetDates' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates/{date}: put: operationId: updateDate tags: - Database description: >- Updates an existing date field value for single/multiple symbols or adds a new date/symbol within a date if not present in 3d database(OFDB). parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/datePathParam' requestBody: description: Required data for updating date in the database required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDate' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '413': $ref: '#/components/responses/413Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' delete: operationId: deleteDate tags: - Database description: >- Deletes all data specific to the date in 3d database(OFDB). This includes all the symbols related to that date parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/datePathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '204': $ref: '#/components/responses/204Response' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates/{date}/jobs/{id}: get: operationId: getResourceDate tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/datePathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/PostRequestsSuccessCompleteResponse' '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates/{date}/symbols/{symbol}: delete: operationId: deleteDateFromSymbol tags: - Database description: Deletes data specific to the symbol and date from a 3d database(OFDB). parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/datePathParam' - $ref: '#/components/parameters/symbolPathParam' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '204': $ref: '#/components/responses/204Response' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/dates/{date}/symbols/{symbol}/jobs/{id}: delete: operationId: getResourceDateFromSymbol tags: - Database description: Deletes data specific to the symbol and date from a 3d database(OFDB). parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/datePathParam' - $ref: '#/components/parameters/symbolPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/202LongRunningResponse' '204': $ref: '#/components/responses/204Response' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}: get: operationId: getData tags: - Database description: >- Returns the data in the database(OFDB, OMS_OFDB, ECONOFDB) for the mentioned Symbol or Date. Atleast one parameter(Symbol/Date) is required. For a range of dates symbol parameter is mandatory. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - name: symbol in: query description: Returns data for the symbol mentioned. e.g:sym1 schema: type: string - name: date in: query description: >- Return data for the specific date or range of dates mentioned.e.g:[date1,date2] style: form explode: false schema: type: string - name: filterFields in: query description: > Can specify the fields on which you want to perform field filter operations e.g: ["PRICE","SECTOR"] Note: The request will respond with 400 1. If fields which are not present on OFDB are given. 2. If filterOps or filterValues query parameters are missing when filterFields is present. 3. If number of values given for filterOps, filterFields, filterValues are different 4. If exactly one of symbol or date query parameter is not provided. style: form explode: false schema: type: string - name: filterOps in: query description: > Can specify the field filter operations which you want to perform e.g: ["LT", "GTEQ", "CT"] in respective order of values in filterFields query parameter. The available field filter operations are : For CHAR type fields: "CT" : contains "SW" : starts-with "EW" : ends-with "EQ" : equals For NUMERIC type fields: "GT" : greater than "GTEQ" : greater than or equals "LT" : lesser than "LTEQ" : lesser than or equals "EQ" : equals Note: The request will respond with 400 1. If operations other than the above mentioned are provided. 2. If numeric operations are given to char type fields instead of char operations. 3. If char operations are given to numeric type fields instead of numeric operations. 4. If filterFields or filterValues query parameters are missing when filterOps is present. 5. If number of values given for filterOps, filterFields, filterValues are different 6. If exactly one of symbol or date query parameter is not provided. style: form explode: false schema: type: string - name: filterValues in: query description: > Can specify the field filter values of the field filter operations e.g: [100, 20, "AB"] in respective order of values in filterFields and filterOps query parameters . Note: The request will respond with 400 1. If char values are given to numeric type fields. 2. If filterFields or filterOps query parameters are missing when filterValues is present. 3. If number of values given for filterOps, filterFields, filterValues are different 4. If exactly one of symbol or date query parameter is not provided. style: form explode: false schema: type: string - name: filterDatesOps in: query description: > Can specify the date filter operations which you want to perform e.g: ["LT", "GTEQ"]. The available date filter operations are : "GT" : after "GTEQ" : after or equals "LT" : before "LTEQ" : before or equals "EQ" : equals" Note: The request will respond with 400 1. If operations other than the above mentioned are given. 2. If filterDatesValues query parameter is missing when filterDatesOps is present. 3. If number of values given for filterDatesOps and filterDatesValues differ. 4. If symbol query parameter is not provided. style: form explode: false schema: type: string - name: filterDatesValues in: query description: > Can specify the date filter values of the date filter operations e.g: [20200505, 20200303] in respective order of values in filterDatesOps query parameter. Note: The request will respond with 400 1. If invalid date values are given 2. If filterDatesOps query parameter is missing when filterDatesValues is present. 3. If number of values given for filterDatesOps and filterDatesValues differ. 4. If symbol query parameter is not provided. style: form explode: false schema: type: string - name: filterSymbolsOps in: query description: > Can specify the symbol filter operations which you want to perform e.g: ["CT", "SW"]. The available symbol filter operations are: "SW" : starts-with "EW" : ends-with "CT" : contains "EQ" : equals Note: The request will respond with 400 1. If operations other than the above mentioned are given. 2. If filterSymbolsValues query parameter is missing when filterSymbolsOps is present. 3. If number of values given for filterSymbolsOps and filterSymbolsValues differ. 4. If date query parameter is not provided. style: form explode: false schema: type: string - name: filterSymbolsValues in: query description: > Can specify the symbol filter values of the date filter operations e.g: ["ab", "xy"] in respective order of values in filterSymbolsOps query parameter. Note: The request will respond with 400 1. If filterSymbolsOps query parameter is missing when filterSymbolsValues is present. 2. If number of values given for filterSymbolsOps and filterSymbolsValues differ. 3. If date query parameter is not provided. style: form explode: false schema: type: string - name: sortFieldName in: query description: >- Can specify the name of field with respect to which user wants to sort data Note: The request will respond with 400, If a field which doesn't exist in the OFDB is requested style: form explode: false schema: type: string - name: sortFieldOrder in: query description: >- Can specify the order in which user wants to sort data with respect to sortFieldName query parameter Note: The request will respond with 400, If value other than asc or desc is requested schema: type: string enum: - ASC - DESC responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/{path}/jobs/{id}: get: operationId: getResourceData tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/databaseLocationPathParam' - $ref: '#/components/parameters/idPathParam' responses: '200': $ref: '#/components/responses/200GetData' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database: post: operationId: createDatabase tags: - Database description: >- Creates a 2d or 3d database(OFDB). Users will note that not every field requires all the parameters listed in the schema. Please review FactSet data types on the OA for further guidance. requestBody: content: application/json: schema: $ref: '#/components/schemas/DatabaseSchema' responses: '202': $ref: '#/components/responses/202LongRunningResponse' '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' /database/jobs/{id}: get: operationId: getResourceDatabase tags: - Database description: >- Returns the end results of a long running request. The full URL is normally provided for you in the Location header of a finished long running response. parameters: - $ref: '#/components/parameters/idPathParam' responses: '200': description: Creates and responds with ofdb path headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/CreateDatabase' links: GetDataByPath: operationId: GetData parameters: path: $response.body#/path description: > The `path` value returned in the response can be used as the `path` parameter in `GET /v1/database/{path}/data`. '400': $ref: '#/components/responses/400Response' '403': $ref: '#/components/responses/403Response' '404': $ref: '#/components/responses/404Response' '406': $ref: '#/components/responses/406Response' '429': $ref: '#/components/responses/429Response' '500': $ref: '#/components/responses/500Response' '503': $ref: '#/components/responses/503Response' components: securitySchemes: FactSetOAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.factset.com/as/token.oauth2 scopes: {} FactSetApiKey: type: http scheme: basic schemas: AddSymbols: type: object properties: data: type: array items: type: object properties: symbol: type: string description: Names of the symbol and unique to this database content: type: array items: type: object properties: date: type: integer field: type: string description: >- date must be provided in the case of a 3d ofdb with atleast one iterative field CreateDatabase: type: object properties: data: type: object properties: path: type: string description: path of the newly created database. AddDates: type: object properties: data: type: array items: type: object properties: date: type: integer description: Date unique to the database. example: 20220202 content: type: array items: type: object properties: symbol: type: string field: type: integer AddFields: type: object properties: data: $ref: '#/components/schemas/Fields' UpdateDate: type: object description: Set of fields along with symbol is mandatory to update the date. properties: data: type: array items: type: object properties: content: type: array items: type: object properties: symbol: type: string field: type: integer description: >- date has to be provide in case 3d OFDB with date and atleast one iterative field example: - content: - symbol: FDS price: 100 UpdateDates: type: object description: Set of fields along with symbol is mandatory to update the date. properties: data: type: array items: type: object properties: date: type: integer content: type: array items: type: object properties: symbol: type: string field: type: integer description: >- date has to be provide in case 3d OFDB with date and atleast one iterative field example: - date: 20220202 content: - symbol: FDS price: 100 UpdateSymbol: type: object description: >- Any arbitary set of fields that are provided while creating the ofdb and their values. properties: data: type: array items: type: object properties: content: type: array items: type: object properties: date: type: integer field1: type: integer field2: type: string description: >- date must be provided in the case of a 3d ofdb with at least one iterative field UpdateSymbols: type: object description: >- Any arbitrary set of fields that are provided while creating the ofdb and their values. properties: data: type: array items: type: object properties: symbol: type: string content: type: array items: type: object properties: date: type: integer field1: type: integer field2: type: string description: >- date must be provided in the case of a 3d ofdb with at least one iterative field BulkDelete: type: object properties: data: type: array items: description: >- Users may provide any combination of a symbol, date, and/or field to perform a bulk delete operation. For example, if a user provides both a symbol and a date within the same data point {} then the endpoint will delete the symbol for just that date. If they provide a symbol, date, and field then the endpoint will delete just that singular field entry point for that date for the given symbol. Providing singular entities within a {} will delete the complete data for that given value. type: object properties: symbol: type: string date: type: integer field: type: string example: - symbol: FDS - date: 20220202 - field: PRICE - symbol: AAPL date: 20230303 - symbol: TSLA date: 20240404 field: SHARES Symbols: type: array items: type: string example: FDS Dates: type: array items: type: integer example: 20220202 Fields: type: array items: type: object properties: description: type: string iteration: type: string enum: - 2D - 3D name: type: string size: type: integer splitDirection: type: string enum: - NONE - NORMAL - REVERSE type: type: string enum: - INT - FLOAT - DOUBLE - CHAR - LONG_CHAR - STRING - DATE codePageFlag: type: string enum: - ASCII DatabaseSchema: type: object properties: data: type: object properties: path: type: string example: CLIENT:this_is_a_test_.OFDB description: type: string example: A user would fill this with relevant information fields: $ref: '#/components/schemas/Fields' SuccessPostResponse: type: object description: Response format of any kind of post response properties: data: type: object properties: id: type: string description: id of the newly created resource BulkDeleteArray: type: array description: >- A list of the various backend responses needed for the bulk delete. These typically contain data points that failed to be deleted, and are in the order of:
Delete values by symbol, date, and field + delete values by symbol and field
Delete dates by field + delete dates
Delete dates by symbol
Delete fields
Delete symbols items: $ref: '#/components/schemas/BulkDeleteArrayItem' BulkDeleteArrayItem: anyOf: - type: object additionalProperties: $ref: '#/components/schemas/BulkDeleteArrayItemNested' - type: array items: type: string BulkDeleteArrayItemNested: oneOf: - type: object additionalProperties: type: array items: type: integer - type: array items: type: integer parameters: databaseLocationPathParam: name: path in: path description: Encode database path required: true schema: type: string datePathParam: name: date in: path description: Date in YYYYMMDD format required: true schema: type: integer symbolPathParam: name: symbol in: path description: Symbol with in the ofdb required: true schema: type: string idPathParam: name: id in: path description: A unique pickup ID returned by the original request required: true schema: type: string headers: ResponseLocationHeader: description: url of the newly created resource schema: type: string Long-Running-Location: description: location to poll for the status of the job. schema: type: string X-DataDirect-Request-Key: description: FactSet's request key header. schema: type: string X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string X-RateLimit-Limit: description: Number of allowed requests for the time window. schema: type: string X-RateLimit-Remaining: description: Number of requests left for the time window. schema: type: string X-RateLimit-Reset: description: Number of seconds remaining till rate limit resets. schema: type: string Retry-After: description: >- Time to wait in seconds before making a new request as the rate limit has reached. schema: type: string responses: PostRequestsSuccessCompleteResponse: description: Status message of creation headers: Location: $ref: '#/components/headers/ResponseLocationHeader' X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/SuccessPostResponse' 400Response: description: Invalid query parameter or value provided headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: parameterError default: parameterError source: type: object properties: location: type: string param: type: string 200GetStats: description: Returns an object with key OFDB stats headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: type: object properties: symbols: type: integer example: 1 iteratedFields: type: integer example: 2 nonIteratedFields: type: integer example: 1 totalFields: type: integer example: 3 dates: type: integer example: 1 200GetAudit: description: >- Returns a list of the most recent "modificationTimes" in long datetime format headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: type: object properties: modificationTimes: type: array items: type: string example: 20-Oct-2022 14:25:33 (EDT) 200GetFields: description: List of fields within the database headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/Fields' 200GetSymbols: description: Successful symbols array within OFDB headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/Symbols' 200GetDates: description: Successful output headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/Dates' 200GetData: description: successful output headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: type: array items: type: object properties: symbol: type: string example: FDS field: type: integer example: 1 200BulkDelete: description: successful output headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BulkDeleteArray' examples: NoFailures: value: data: - {} - {} - {} - [] - [] AllFailures: value: data: - {} - PRICE: - 20200101 - AAPL: WEIGHT: - 20200202 - - SHARES - - FDS 201LongRunningResponse: description: >- Returns when the long running request is completed. The next pickup URL is provided by the Location header. headers: Location: $ref: '#/components/headers/Long-Running-Location' X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: type: object properties: id: type: string status: type: string description: Current Status of the job enum: - executing - created 202LongRunningResponse: description: >- Returns when the request is moved to long running mode. The next pickup URL is provided by the Location header. headers: Location: $ref: '#/components/headers/Long-Running-Location' X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: data: type: object properties: id: type: string status: type: string description: Current Status of the job 204Response: description: Resource is deleted successfully 403Response: description: User is forbidden with current credentials headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: notAuthorized default: notAuthorized 404Response: description: Path not found headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: endPointNotFound default: endPointNotFound 406Response: description: Unsupported Accept header. Header needs to be set to application/json headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: notAcceptable default: notAcceptable 413Response: description: Post body too large headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: payloadTooLarge default: payloadTooLarge 429Response: description: >- Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' Retry-After: $ref: '#/components/headers/Retry-After' content: application/json: schema: type: object properties: errors: type: array description: An array containing errors items: type: object properties: id: type: string title: type: string code: type: string example: rateLimitExceeded default: rateLimitExceeded 500Response: description: >- Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' 503Response: description: Request timed out. Retry the request in some time headers: X-DataDirect-Request-Key: $ref: '#/components/headers/X-DataDirect-Request-Key' X-FactSet-Api-Request-Key: $ref: '#/components/headers/X-FactSet-Api-Request-Key' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' externalDocs: description: API Documentation url: https://developer.factset.com/api-catalog/ofdb-api