openapi: 3.0.3 info: title: Factset Investment Banking Office Refresh API description: >- Service for refreshing models with refreshable FactSet objects (e.g., =FDS codes) version: 1.0.0 contact: name: FactSet Research Systems email: api@factset.com url: https://developer.factset.com/contact license: name: Apache License, Version 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 externalDocs: description: API Documentation url: https://developer.factset.com/api-catalog/ servers: - url: https://api.factset.com/office-refresh/v1 paths: /refresh/calculate: post: summary: Factset Upload a spreadsheet file description: >- Upload a spreadsheet file (in the Open Office XML format) for FactSet to refresh. tags: - Refresh operationId: postWorkbook parameters: - name: nowHandlingEnabled description: >- Return \#VALUE for =FDS codes dependent on NOW(). Default is true. For more information on volatile code handling, see Online Assistant https://my.apps.factset.com/oa/pages/16118. in: query schema: type: boolean - name: refreshAutoFilters description: >- Option to refresh =FDS codes within autofilters. Codes that are filtered out will not be refreshed, unless this option is set to true. Default is false. For more information, see Online Assistant https://my.apps.factset.com/oa/pages/21084#fds in: query schema: type: boolean - name: resizeArrays description: >- Option to allow automatic array-resizing, which allows you to return a time series of data without manually setting an array. Default is true. For more information, see Online Assistant https://my.apps.factset.com/oa/pages/21084#fds in: query schema: type: boolean requestBody: content: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: schema: $ref: '#/components/schemas/SpreadsheetFile' required: true responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/JobStatus' headers: Location: description: Relative URL to check status of the request. schema: type: string '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Errors' '403': description: Forbidden. The user's subscription is missing required CACCESS. content: application/json: schema: $ref: '#/components/schemas/Errors' '413': description: File Too Large. Currently only accepting files up to 50MB. content: application/json: schema: $ref: '#/components/schemas/Errors' '429': $ref: '#/components/responses/429' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/Errors' /refresh/{id}/status: get: summary: Factset Get the status of the refresh job with the given resource ID description: Check the status of the given job by the resource ID operationId: getStatusById tags: - Refresh parameters: - $ref: '#/components/parameters/ResourceId' responses: '201': description: Created (the calculated workbook is ready to be retrieved) content: application/json: schema: $ref: '#/components/schemas/JobStatus' headers: Location: description: Relative URL to the calculated file schema: type: string '202': description: Accepted (resource not ready yet) content: application/json: schema: $ref: '#/components/schemas/JobStatus' headers: Location: description: Relative URL to check status of the request. schema: type: string '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Errors' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Errors' '422': description: Failed to refresh file content: application/json: schema: $ref: '#/components/schemas/Errors' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/Errors' /refresh/{id}: get: summary: Factset Retrieve a calculated file by resource ID. description: If the requested job is complete, the calculated file will be returned. tags: - Refresh operationId: getFileById parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': description: Expected response; body will contain calculated file content: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: schema: $ref: '#/components/schemas/SpreadsheetFile' headers: Content-Disposition: description: >- Standard HTTP header. Content is expected to be displayed as an attachment. schema: type: string Content-Type: description: Standard HTTP header. The file format type. schema: type: string Transfer-Encoding: description: >- Standard HTTP header. Header value will be set to Chunked if Accept-Encoding header is specified. schema: type: string '202': description: Accepted (resource not ready yet) content: application/json: schema: $ref: '#/components/schemas/JobStatus' headers: Location: description: Relative URL to check status of the request. schema: type: string '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Errors' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Errors' '422': description: Failed to refresh file content: application/json: schema: $ref: '#/components/schemas/Errors' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/Errors' components: parameters: ResourceId: name: id in: path description: Unique identifier for the job (resource ID returned from FactSet). required: true schema: type: string format: uuid schemas: SpreadsheetFile: description: An Open Office XML spreadsheet file. type: string format: binary ErrorCode: description: Factset API specific error codes enum: - notAuthenticated - notAuthorized - notFound - parameterError - requestBodyInvalid - endpointNotFound - genericServerError - quantityLimitsExceeded type: string Error: type: object description: The response returned for an unsuccessful request. properties: id: description: >- A unique ID for the occurrence of the error. It is advised to log this code and include it if you contact FactSet support desk. type: string code: $ref: '#/components/schemas/ErrorCode' title: description: a description of the error type: string Errors: type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' JobStatus: type: object properties: data: type: object properties: id: type: string description: >- Unique identifier for the job (resource ID returned from FactSet). status: type: string description: the status of the job enum: - queued - executing - created - failed - cancelled error: $ref: '#/components/schemas/Error' responses: '429': description: Limit Exceeded headers: X-FactSet-Api-RateLimit-Limit: description: Number of allowed requests for the time window. schema: type: string X-FactSet-Api-RateLimit-Limit-Remaining: description: Number of requests left for the time window. schema: type: string X-FactSet-Api-RateLimit-Limit-Reset: description: Number of seconds remaining till rate limit resets. schema: type: string securitySchemes: FactSetOAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.factset.com/as/token.oauth2 scopes: {} FactSetApiKey: type: http scheme: basic security: - FactSetApiKey: [] - FactSetOAuth2: [] tags: - name: Refresh