openapi: 3.0.0 info: title: Factset Documents Distributor - Documents API version: 1.0.0 description: >- Documents APIs that provide filings such as Global Filings and XML files such as StreetAccount Global Filings API provides the capability to search and download filings documents from various exchanges around the world. This API will provide access to the full history and the ability to search by date and dataset(source). It does not provide real-time updates to the filings documents. Filings providers currently include EDGAR Note: The real-time updates to the filing documents will be available within week to ten days and per request able to query up to 8 days of data StreetAccount XML API provides access to historical StreetAccount (SA) news. SA provides a summary for various corporate and market news written by journalist with background in financial markets. The API delivers SA stories in XML format based on user-specified date input parameters. When the API request is completed, output files will be made available back to the users through a secure URL. This API has three endpoints (1) Request Files (2) Check Status (3) Get Files. This API only supports adhoc requests to retrieve historical files and does not support real-time files and if require real-time push should consider the other three methods (pushed via SFTP, to QNT account, or users Azure Storage) Both historical and real-time Street Account news is also delivered via SFTP, to users QNT account, or users Azure Storage. Files delivered contain both metadata and content body in each file. This eliminates the need to make multiple requests through multiple services to get all the information. News API provides access to historical news. This provides a summary for various corporate and market news written by journalist with background in financial markets. The API delivers stories in different format based on user-specified date input parameters. When the API request is completed, output files will be made available back to the users through a secure URL. This API has three endpoints (1) Request Files (2) Check Status (3) Get Files servers: - url: https://api.factset.com/bulk-documents security: - BasicAuth: [] paths: /global-filings/v1/list-files: get: tags: - Global Filings summary: Retrieve filings within FactSet coverage description: Parameters can be used to get the filings parameters: - name: dataset in: query description: >- This parameter filters the results based on the dataset of the filings documents. required: true schema: type: string enum: - edgar - name: startDate in: query description: >- The earliest date the API should fetch for. Dates can be YYYY-MM-DD format required: true schema: type: string format: date - name: endDate in: query description: >- The date after upto eight days of the earliest date given the API should fetch for. Dates can be YYYY-MM-DD format required: true schema: type: string format: date responses: '200': description: Global Filings data items content: application/json: schema: $ref: '#/components/schemas/filingsResponse' examples: default200ResponseExample: $ref: '#/components/examples/200lfdefaultExample' '400': description: Bad request- invalid or missing parameter content: application/json: schema: $ref: '#/components/schemas/status' examples: 400defaultExample: $ref: '#/components/examples/400lfdefaultExample' /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: securitySchemes: BasicAuth: type: http scheme: basic schemas: filingsResponse: type: array items: $ref: '#/components/schemas/filingsFiles' filingsFiles: type: object properties: filePath: description: path of the filings document. type: string fileUrl: description: Download link for the filings document. type: string 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 checkstatusResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/checkstatus' meta: $ref: '#/components/schemas/metaOne' 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 getfilesResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/getfiles' 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 newscheckstatusResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/checkstatusone' meta: $ref: '#/components/schemas/metaOne' 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 newsgetfilesResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/getfilesone' meta: $ref: '#/components/schemas/metaOne' 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 metaOne: title: Meta description: Array of metadata objects type: object properties: pagination: $ref: '#/components/schemas/paginationOne' partial: $ref: '#/components/schemas/isPartialOne' 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 status: title: Response Status of Global Filings type: object properties: id: type: string error_message: description: Textual error message type: string StreetAccountStatus: title: Response Status of SA type: object properties: id: type: string error_message: description: Textual error message type: string newsStatus: title: Response Status of News type: object properties: id: type: string error_message: description: Textual error message type: string examples: 200lfdefaultExample: summary: Sample Response value: - filePath: edgar/2020/20200715.zip fileUrl: >- https://fdss3-news-content-archive-prod-a.s3.amazonaws.com/edgar/2020/20200715.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA6B6XG7VE24JNFFXZ%2F20220216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220216T111407Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHQaCXVzLWVhc3QtMSJHMEUCIQDDY%2BKy5yyr6zBc%2FwxQYOIUr%2BNicMgpE2gKoBXk3hc9SgIgFRx7ey2FN9BgEEvfwl%2FGVpPpVvrTyNv0H0sIaC7ckXcqqQIIvP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw5NjYyODIxMTY0MjUiDMdI11x8Guqcy7rKtCr9ASKyQmvqLEQyZyTMPH6i1ZsMzUbqCDh2QMlAUz4bhspkuZyB7fMa0D0xqnzMgjYC3A2oN4o0O%2FkklhL6S3A13GC5lUu68leh5ul3150a5A8NwN1YJA0xE2AxCNP1AsU7SgxEPjkKz7%2FvmGMHqWYH0tcx7r%2FNAd3lQFoj6WgjhkL1VJmWWnu2bxmfpAxNnUB5pTgfnw3wS9T47CQNGQJ1hO38kFWcnse82biFm%2Br1FGmDHAJj1eTYqLWjQmCi1U3XnbnTkCTEsOyIGcx9uHAxVRSiDqwkmiFXzRy9Zy%2F240OFyfmP%2BSOgjEqoz6Q%2BtnCyedeJO6ogrKuGt2IxX50w%2FbizkAY6mgGj7tordZZ0GmDYyNicHOKR%2Fll66YgZWl0cW1HXHoduCy21Nv7RsgQTQllK%2BnTeP3tw64enwZzxfzLKE01DV73v5DqXMjSLTiRMZh9AD8CtOpHbW08Hxe2hb8%2Fn3ppU8%2FsWt3u6YiCdKk5dzDPztObwxE7gVLZfoRcMJ7QX2hBE5bVkqIR5HX3a5OwmvCrrEazjwtOeaS%2FngoPq&X-Amz-Signature=ad377632936524e5de4c02066d4412b8fe2f2b8f956f30a1dc164ce9598a05f3 400lfdefaultExample: summary: Sample error Response value: id: 06d89fce-b6fa-43b4-a1a7-4f5e8ceeae44 error_message: parameterError:endDate must be an int or a date 200RequestFilesExample: summary: Sample Response value: jobID: 9ffa3ffb-0ed3-40a0-a98f-8ed7da0a8ad5 status: submitted 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 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 StreetAccountExample: summary: Sample error Response value: id: 0ad3e09c-d8a2-4223-a1a3-0244d1247351 error_message: parameterError:Missing required parameter jobID 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 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 NewsExample: summary: Sample error Response value: id: 0ad3e09c-d8a2-4223-a1a3-0244d1247351 error_message: parameterError:Missing required parameter jobID tags: - name: Asynch - name: Global Filings