openapi: 3.0.3 info: title: Factset Analytics Datastore About Asynch API description: Allow clients to fetch precalculated Analytics through predeterministic URLs. 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 version: 1.0.0 servers: - url: https://api.factset.com description: Production - url: https://api-sandbox.factset.com description: Sandbox security: - basicAuth: [] tags: - name: Asynch paths: /asynch/streetaccount/v1/request-files: get: tags: - Asynch summary: Factset Returns the jobID description: 'Give the startDate and endDate parameters as request parameters in the /request-files endpoint, it returns the jobID. startDate and endDate should be in YYYY-MM-DDTHH:MM:SSZ format This API only supports adhoc requests to retrieve historical files and does not support real-time files and if you interested in require real-time push should consider the other three methods (pushed via SFTP, to QNT account, or your Azure Storage). Per API request able to query till 2 years of data' parameters: - name: startDate in: query description: Date from which data is required. Should be YYYY-MM-DDTHH:MM:SSZ format required: true schema: type: string format: date - name: endDate in: query description: The date until which the data is to be fetched. Should be YYYY-MM-DDTHH:MM:SSZ format required: true schema: type: string format: date responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/requestfilesResponse' examples: default200ResponseExample: $ref: '#/components/examples/200RequestFilesExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/StreetAccountStatus' examples: default400ResponseExample: $ref: '#/components/examples/StreetAccountExample' /asynch/streetaccount/v1/check-status: get: tags: - Asynch summary: Factset Returns the status and percentDone of the requested jobID description: Need to plug-in the jobID got from /request-files into /check-status endpoint parameters: - name: jobID in: query description: jobID returned by the request-files endpoint to know the status and percentDone required: true schema: type: string - name: _paginationLimit in: query description: Specifies the maximum number of results to return per result required: false schema: type: integer - name: _paginationOffset in: query description: Specifies the starting point for pagination. This parameter is used to identify the beginning of next set of results required: false schema: type: integer responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/checkstatusResponse' examples: default200ResponseExample: $ref: '#/components/examples/200CheckStatusExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/StreetAccountStatus' examples: default400ResponseExample: $ref: '#/components/examples/StreetAccountExample' /asynch/streetaccount/v1/get-files: get: tags: - Asynch summary: Factset Returns the SA XML files for the specified daterange description: Need to plug-in the jobID got from /request-files into /check-status endpoint parameters: - name: jobID in: query description: jobID returned by the request-files endpoint to collect the results of the query required: true schema: type: string - name: _paginationLimit in: query description: Specifies the maximum number of results to return per result required: false schema: type: integer - name: _paginationOffset in: query description: Specifies the starting point for pagination. This parameter is used to identify the beginning of next set of results required: false schema: type: integer responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/getfilesResponse' examples: default200ResponseExample: $ref: '#/components/examples/200GetFilesExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/StreetAccountStatus' examples: default400ResponseExample: $ref: '#/components/examples/StreetAccountExample' /asynch/news/v1/request-files: get: tags: - Asynch summary: Factset Returns the jobID description: 'Give the startDate,endDate and source parameters as request parameters in the /request-files endpoint, it returns the jobID. startDate and endDate should be in YYYY-MM-DDTHH:MM:SSZ format This API only supports adhoc requests to retrieve historical files' parameters: - name: startDate in: query description: Date from which data is required. Should be YYYY-MM-DDTHH:MM:SSZ format required: true schema: type: string format: date - name: endDate in: query description: The date until which the data is to be fetched. Should be YYYY-MM-DDTHH:MM:SSZ format required: true schema: type: string format: date - name: source in: query description: This parameter filters the results based on the source of the filings document required: true schema: type: string enum: - news_ukwd - hkex responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/newsrequestfilesResponse' examples: default200ResponseExample: $ref: '#/components/examples/200newsRequestFilesExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/newsStatus' examples: default400ResponseExample: $ref: '#/components/examples/NewsExample' /asynch/news/v1/check-status: get: tags: - Asynch summary: Factset Returns the status and percentDone of the requested jobID and source description: Need to plug-in the jobID got from /request-files into /check-status endpoint parameters: - name: jobID in: query description: jobID returned by the request-files endpoint to know the status and percentDone required: true schema: type: string - name: source in: query description: This parameter filters the results based on the source of the filings document required: true schema: type: string enum: - news_ukwd - hkex - name: _paginationLimit in: query description: Specifies the maximum number of results to return per result required: false schema: type: integer - name: _paginationOffset in: query description: Specifies the starting point for pagination. This parameter is used to identify the beginning of next set of results required: false schema: type: integer responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/newscheckstatusResponse' examples: default200ResponseExample: $ref: '#/components/examples/news200CheckStatusExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/newsStatus' examples: default400ResponseExample: $ref: '#/components/examples/NewsExample' /asynch/news/v1/get-files: get: tags: - Asynch summary: Factset Returns the news filings for the specified daterange and source description: Need to plug-in the source and jobID got from /request-files into /get-files endpoint parameters: - name: jobID in: query description: jobID returned by the request-files endpoint to collect the results of the query required: true schema: type: string - name: source in: query description: This parameter filters the results based on the source of the filings document required: true schema: type: string enum: - news_ukwd - hkex - name: _paginationLimit in: query description: Specifies the maximum number of results to return per result required: false schema: type: integer - name: _paginationOffset in: query description: Specifies the starting point for pagination. This parameter is used to identify the beginning of next set of results required: false schema: type: integer responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/newsgetfilesResponse' examples: default200ResponseExample: $ref: '#/components/examples/news200GetFilesExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/newsStatus' examples: default400ResponseExample: $ref: '#/components/examples/NewsExample' components: schemas: requestfilesResponse: type: object properties: jobID: description: Unique id to get the xml files for the requested date type: string status: description: Returns the value as submitted. Tells the request has been submitted type: string newscheckstatusResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/checkstatusone' meta: $ref: '#/components/schemas/metaOne' checkstatusResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/checkstatus' meta: $ref: '#/components/schemas/metaOne' getfiles: type: object properties: product: description: Defines the name of the product type: string startDate: description: The startDate from which the data is required in YYYY-MM-DDTHH:MM:SSZ format type: string format: date endDate: description: The endDate until which the data is fetched in YYYY-MM-DDTHH:MM:SSZ format type: string format: date jobID: description: Unique id to get the xml files for the requested date type: string status: description: Defines the status of the request type: string url: description: Link to download the zip file which contains xml files type: string part: description: Returns the part number of the jobID type: integer newsrequestfilesResponse: type: object properties: jobID: description: Unique id to get the xml files for the requested date type: string status: description: Returns the value as submitted. Tells the request has been submitted type: string checkstatus: type: object properties: product: description: Defines the name of the product type: string jobID: description: Unique id to get the xml files for the requested date type: string status: description: Returns any of the 2 results Submitted ->Running->Completed and Failed type: string percentDone: description: Returns how much percentage of task is completed for the requested jobID type: integer startDate: description: The date from which the data is required in YYYY-MM-DDTHH:MM:SSZ format type: string format: date endDate: description: The date until which the data is fetched in YYYY-MM-DDTHH:MM:SSZ format type: string format: date part: description: Returns the part number of the jobID type: integer paginationOne: title: PaginationItems description: List of pagination objects type: object properties: total: description: Total number of files the API returns for a particular query type: integer isEstimatedTotal: description: Boolean value that represents whether the total count of files returned is exact or an estimate. This is defaulted to “False” as the API should always return the exact count type: boolean limit: description: Number of results returned per page type: integer offset: description: The flag indicating the position in the results array if additional results are available beyond the default value or the value in paginationLimit parameter (if used). This value is passed in the _paginationOffset parameter to retreieve subsequent results type: integer isPartialOne: title: IsPartialItems description: If the value is true, it indicates additional results are available. False represents that this is the last set of results for this request. type: object properties: isPartial: type: boolean getfilesone: type: object properties: product: description: Defines the name of the product type: string startDate: description: The startDate from which the data is required in YYYY-MM-DDTHH:MM:SSZ format type: string format: date endDate: description: The endDate until which the data is fetched in YYYY-MM-DDTHH:MM:SSZ format type: string format: date jobID: description: Unique id to get the xml files for the requested date type: string status: description: Defines the status of the request type: string url: description: Link to download the zip file which contains xml files type: string part: description: Returns the part number of the jobID type: integer newsStatus: title: Response Status of News type: object properties: id: type: string error_message: description: Textual error message type: string checkstatusone: type: object properties: product: description: Defines the name of the product type: string jobID: description: Unique id to get the xml files for the requested date type: string status: description: Returns any of the 2 results Submitted ->Running->Completed and Failed type: string percentDone: description: Returns how much percentage of task is completed for the requested jobID type: integer startDate: description: The date from which the data is required in YYYY-MM-DDTHH:MM:SSZ format type: string format: date endDate: description: The date until which the data is fetched in YYYY-MM-DDTHH:MM:SSZ format type: string format: date part: description: Returns the part number of the jobID type: integer getfilesResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/getfiles' meta: $ref: '#/components/schemas/metaOne' metaOne: title: Meta description: Array of metadata objects type: object properties: pagination: $ref: '#/components/schemas/paginationOne' partial: $ref: '#/components/schemas/isPartialOne' StreetAccountStatus: title: Response Status of SA type: object properties: id: type: string error_message: description: Textual error message type: string newsgetfilesResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/getfilesone' meta: $ref: '#/components/schemas/metaOne' examples: NewsExample: summary: Sample error Response value: id: 0ad3e09c-d8a2-4223-a1a3-0244d1247351 error_message: parameterError:Missing required parameter jobID 200CheckStatusExample: summary: Sample Response value: data: - product: SA jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: completed percentDone: '100' startDate: '2021-11-21T00:00:00Z' endDate: '2021-11-28T00:00:00Z' part: '1' meta: pagination: total: 105 isEstimatedTotal: false limit: 200 offset: 105 partial: isPartial: false StreetAccountExample: summary: Sample error Response value: id: 0ad3e09c-d8a2-4223-a1a3-0244d1247351 error_message: parameterError:Missing required parameter jobID news200GetFilesExample: summary: Sample Response value: data: - product: news_ukwd startDate: '2021-11-21T00:00:00Z' endDate: '2021-11-28T00:00:00Z' jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: completed part: '1' url: https://fdss3-unstructured-data-delivery-async-prod.s3.amazonaws.com/content_engineering_user/sa_mustang_history/9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5_1.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA6B6XG7VEUZD7SMXD%2F20220408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220408T133348Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjED4aCXVzLWVhc3QtMSJHMEUCIBzma%2Bsah7KyvIQvfx9lU8Mt1sy5biZKGRhNSZx3ASQKAiEAhRs4TWZzxtvBHPQsBaZdoqdN6kih2BCD4rHwAkRUY0kqqQII1%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw5NjYyODIxMTY0MjUiDLWCnDoKAGnEkMMEUyr9AXDOWoW6CQeGJE6VyNrHwf1uIP5Ut78v2CG5LottatIyDne6UKaNSs%2F1d9s5k9PCXsu1aMFIGcaePX9U3nmaFxXbsLYlrfejcc5%2FDIywMFWGuXj7T023sjqEb4gE9d%2FVG2bx%2FgMs%2Bdj2ZNU4W3OARWFhAMxy3ZGn8DiPdUwytItzxwIi2UTUZhXlyuGr5sfpEX%2Fu8V3ZQRJN44QEMDZg4tsfshu%2F%2BSC8HmisC22Nb9gOjCj6LarLUYZrAfd8Lbfskm1Z4WDm9oKX4zR3NFrMu3VETleuyU%2FDTx66rae%2FZvELaz3%2FBnYcajNniB2iYJK6pu3NOqeoUP%2FdiHqAa1cwt%2FPAkgY6mgEZosJatTVk8gVBZDmWeT9xVxbE6jEVB49S5ujzbk9WG0pCishiaheTZmiKZJ%2FWAxJCq%2BzqrvelVL2QSAreaeKDw4qclCqXd5Fq5Fkt3CKNr%2FqfGUsf7mk7y%2FsK0V532dew%2FM3rsx32TC%2FyPq6n1jLS8Vshn4NbcKeYKI22iI14F36XlfDFZQiP5iTbCzh%2BfbJLLCmeuClsJznx&X-Amz-Signature=e9e0f814b339f6fb40266f5f30c18face40ec648b1e650e810c16973c01ce832 meta: pagination: total: 105 isEstimatedTotal: false limit: 200 offset: 105 partial: isPartial: false 200GetFilesExample: summary: Sample Response value: data: - product: SA startDate: '2021-11-21T00:00:00Z' endDate: '2021-11-28T00:00:00Z' jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: completed part: '1' url: https://fdss3-unstructured-data-delivery-async-prod.s3.amazonaws.com/content_engineering_user/sa_mustang_history/9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5_1.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA6B6XG7VEUZD7SMXD%2F20220408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220408T133348Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjED4aCXVzLWVhc3QtMSJHMEUCIBzma%2Bsah7KyvIQvfx9lU8Mt1sy5biZKGRhNSZx3ASQKAiEAhRs4TWZzxtvBHPQsBaZdoqdN6kih2BCD4rHwAkRUY0kqqQII1%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw5NjYyODIxMTY0MjUiDLWCnDoKAGnEkMMEUyr9AXDOWoW6CQeGJE6VyNrHwf1uIP5Ut78v2CG5LottatIyDne6UKaNSs%2F1d9s5k9PCXsu1aMFIGcaePX9U3nmaFxXbsLYlrfejcc5%2FDIywMFWGuXj7T023sjqEb4gE9d%2FVG2bx%2FgMs%2Bdj2ZNU4W3OARWFhAMxy3ZGn8DiPdUwytItzxwIi2UTUZhXlyuGr5sfpEX%2Fu8V3ZQRJN44QEMDZg4tsfshu%2F%2BSC8HmisC22Nb9gOjCj6LarLUYZrAfd8Lbfskm1Z4WDm9oKX4zR3NFrMu3VETleuyU%2FDTx66rae%2FZvELaz3%2FBnYcajNniB2iYJK6pu3NOqeoUP%2FdiHqAa1cwt%2FPAkgY6mgEZosJatTVk8gVBZDmWeT9xVxbE6jEVB49S5ujzbk9WG0pCishiaheTZmiKZJ%2FWAxJCq%2BzqrvelVL2QSAreaeKDw4qclCqXd5Fq5Fkt3CKNr%2FqfGUsf7mk7y%2FsK0V532dew%2FM3rsx32TC%2FyPq6n1jLS8Vshn4NbcKeYKI22iI14F36XlfDFZQiP5iTbCzh%2BfbJLLCmeuClsJznx&X-Amz-Signature=e9e0f814b339f6fb40266f5f30c18face40ec648b1e650e810c16973c01ce832 meta: pagination: total: 105 isEstimatedTotal: false limit: 200 offset: 105 partial: isPartial: false 200RequestFilesExample: summary: Sample Response value: jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: submitted 200newsRequestFilesExample: summary: Sample Response value: jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: submitted news200CheckStatusExample: summary: Sample Response value: data: - product: news_ukwd jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: completed percentDone: '100' startDate: '2021-11-21T00:00:00Z' endDate: '2021-11-28T00:00:00Z' part: '1' meta: pagination: total: 105 isEstimatedTotal: false limit: 200 offset: 105 partial: isPartial: false securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation