openapi: 3.0.3 info: title: Factset Analytics Datastore About Minute 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: Minute paths: /level1/files/minute-bars/create: post: tags: - Minute summary: Factset Requests the Creation of Minute Bars File operationId: requestMinutebarsFiles description: 1-minute bars available from 20120101 to previous day. Per request able to fetch upto 6 months of data. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/minRequest' examples: Single ticker for the given period: $ref: '#/components/examples/minSingleTicker' Multiple tickers for the given period: $ref: '#/components/examples/minMultipleTicker' responses: '202': description: The Request has been Accepted content: application/json: schema: $ref: '#/components/schemas/submittedResponse' examples: default202ResponseExample: $ref: '#/components/examples/sampleFilesResponse' headers: Location: description: Relative location to poll for status schema: type: string X-FactSet-Api-RateLimit-Limit: description: Number of allowed requests for the time window. schema: type: string X-FactSet-Api-RateLimit-Remaining: description: Number of requests left for the time window. schema: type: string X-FactSet-Api-RateLimit-Reset: description: Number of seconds remaining till rate limit resets. schema: type: string '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/400Example' '401': description: Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have successfully generated an API KEY for the IP range you are connecting from. For more help, select the Report Issue in the top right corner of this Developer Portal specification card and choose Connectivity 401 or 403 Responses. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/401Example' '403': description: The USERNAME-SERIAL attempted to request the endpoint is not authorized to access. The request was a legal request, but the server is refusing to respond. Please reach out to FactSet Account Team for assistance with authorization. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/403Example' '429': description: Too many requests. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/429Example' '500': description: Internal Error content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/500Example' x-microcks-operation: delay: 0 dispatcher: FALLBACK /level1/files/minute-bars/status: get: tags: - Minute summary: Factset Returns the Status of the Id operationId: getMinutebarsFileStatus description: Need to plug-in the id get from /create endpoint into /status endpoint parameters: - $ref: '#/components/parameters/requestIdStatus' responses: '201': description: ' The Request has been created and the response has been created. ' content: application/json: schema: $ref: '#/components/schemas/completedResponse' examples: default200ResponseExample: $ref: '#/components/examples/sampleCompletedResponse' headers: Location: description: Relative location to pick up results. schema: type: string example: get?id=2df43e85-ea0f-45c6-bf4a-2baf4d1eaa3c '202': description: 'The Request has not finished and the result has NOT been created. ' content: application/json: schema: $ref: '#/components/schemas/submittedResponse' examples: QueuedExample: $ref: '#/components/examples/sampleFilesResponseQueued' ExecutingExample: $ref: '#/components/examples/sampleFilesResponseExecuting' FailedExample: $ref: '#/components/examples/sampleFilesResponseFailed' CancelledExample: $ref: '#/components/examples/sampleFilesResponseCancelled' headers: Location: description: Relative location to poll for status. schema: type: string '401': description: Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have successfully generated an API KEY for the IP range you are connecting from. For more help, select the Report Issue in the top right corner of this Developer Portal specification card and choose Connectivity 401 or 403 Responses. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/401Example' '403': description: The USERNAME-SERIAL attempted to request the endpoint is not authorized to access. The request was a legal request, but the server is refusing to respond. Please reach out to FactSet Account Team for assistance with authorization. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/403Example' '404': description: id not found content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/404Example' '500': description: Internal Error content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/500Example' x-microcks-operation: delay: 0 dispatcher: FALLBACK /level1/files/minute-bars/get: get: tags: - Minute summary: Factset Returns the Minute Bars Data in Files Requested in the /create Endpoint operationId: getMinutebarsFiles description: Returns the files from tickhistory endpoint parameters: - $ref: '#/components/parameters/requestId' - $ref: '#/components/parameters/_paginationLimit' - $ref: '#/components/parameters/_paginationOffset' responses: '200': description: Success

**To download the output file copy the response url in a browser** content: application/json: schema: $ref: '#/components/schemas/Get-FilesMinuteResponse' examples: default200ResponseExample: $ref: '#/components/examples/sampleMinGet-FilesResponse' '202': description: 'The Request has not finished and the result has NOT been created. ' content: application/json: schema: $ref: '#/components/schemas/submittedResponse' examples: QueuedExample: $ref: '#/components/examples/sampleFilesResponseQueued' ExecutingExample: $ref: '#/components/examples/sampleFilesResponseExecuting' headers: Location: description: Relative location to poll for status. schema: type: string '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/400Example' '401': description: Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have successfully generated an API KEY for the IP range you are connecting from. For more help, select the Report Issue in the top right corner of this Developer Portal specification card and choose Connectivity 401 or 403 Responses. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/401Example' '403': description: The USERNAME-SERIAL attempted to request the endpoint is not authorized to access. The request was a legal request, but the server is refusing to respond. Please reach out to FactSet Account Team for assistance with authorization. content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/403Example' '404': description: id not found content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/404Example' '500': description: Internal Error content: application/json: schema: $ref: '#/components/schemas/status' examples: default400ResponseExample: $ref: '#/components/examples/500Example' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: examples: sampleFilesResponseQueued: summary: Status Queued value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: queued error: null sampleMinGet-FilesResponse: summary: sample Response data for Minute bars Trades value: data: requestTimestamp: '2020-10-23T03:38:02Z' updateTimestamp: '2020-10-23T03:41:39Z' listOfFiles: - fileName: data_0_0_0.csv.gz url: https://fdss3-structured-data-delivery-tickhistory-prod.s3.amazonaws.com/1908ba22c3d50cf0eb29d4941a15d754/1064084624/data_0_0_0.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA6B6XG7VERPYTDXEC%2F20210407%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210407T173818Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEPL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQDvzcjGyFCVYyQANp8yuwa3Wn3pD0qWWxLx4ay4oHW61QIgXf3ULeWuRB2jidoA%2BiY83uRbUT8PvB8enoeKgisQUIYq2AEISxAAGgw5NjYyODIxMTY0MjUiDLuCDb9G45Fsn6HtLCq1AYQPGk8GpzGiRXMiASd%2FayNLEOTkXRvTkjg00DAMPt4GM9%2BmVJyXStFairI5Ru1ZO6%2B4DAHT8H1u2Z2g%2FZfIR8Wozv8NYq992v8PapfgUXfuVeJI%2BLnGFyUstgbIB1BgO18I0JscQWbGIy6FTiGfBgPuxvpN57TAcmHgc1XNbKDGFqgeVwcLIkY62a8zYjbOPP09gzFW2%2FNPCIyKl074r0dAHwmGw21XEoxKyJgNaybEXli4lGAwh9y3gwY64AFxwpKMsSGOx4teikNbdzo8dCDU0rjtxUgCupkqrqOtetRTLrjaxp4%2BfDa5IweJcdTREupEfkEZR8aaHgcWSzd5%2BKk1nUEUe1RoG%2FqzrQ0%2BANY3nX2a%2BKhgI6PLX%2FVEGJtaxtx0fMHO9PU1Szg9Rr%2FRY%2BphK19fHFGGAJc1r%2Fby00MrJFahqIRkwVud8h63dSoOJ%2Fbc0vd3oPzl%2F6GGyRTaAyCsjPTr6lPBXLdrmBkP8TuDyW%2BnTGhX8wJtSp2BxCOxLy7%2BVwGGAPl%2FtBtQdNK7q4tkb2COlYL%2BD9m6w2uNFg%3D%3D&X-Amz-Signature=3d54bc7804a710dbea470007eb9a7b231a9f60544fe44582bab3ae60ab67ca65 meta: pagination: total: 256 isEstimatedTotal: false 429Example: summary: sample error response value: errors: - code: Too Many Requests title: quantityLimitsExceeded id: 7af3d86ca5954503b9244f2620fcf5eb sampleFilesResponseExecuting: summary: Status Executing value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: executing error: null sampleFilesResponse: summary: Status Accepted value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: queued error: null 401Example: summary: sample error response value: errors: - code: Not Authenticated title: USERNAME-SERIAL does not have permission id: 7af3d86ca5954503b9244f2620fcf5eb 403Example: summary: sample error response value: errors: - code: Forbidden title: USERNAME-SERIAL does not have permission id: 7af3d86ca5954503b9244f2620fcf5eb sampleFilesResponseFailed: summary: Status Failed value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: failed error: id: 2df43e85-ea0f-45c6-bf4a-2baf4d1eaa3c code: Geeneric Error title: 'Not a valid request ' sampleFilesResponseCancelled: summary: Status Cancelled value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: cancelled error: id: 2df43e85-ea0f-45c6-bf4a-2baf4d1eaa3c code: Error title: Request taking long time 400Example: summary: Sample error Response value: errors: - code: Bad Request title: parameterError:['_id'] is not a valid parameter(s) id: 7af3d86ca5954503b9244f2620fcf5eb minMultipleTicker: summary: Multiple tickers for the given period description: Post body request example to fetch details of the IBM and GOOGL tick data for the period 2023-01-01T00:00:00Z to 2023-01-05T23:59:59Z value: data: tickers: - IBM - GOOGL factsetExchangeCode: USA dateTimeRange: start: '2023-01-01T00:00:00Z' end: '2023-01-05T23:59:59Z' granularity: 1m type: trades minSingleTicker: summary: Single ticker for the given period description: Post body request example to fetch details of the IBM tick data for the period 2023-01-01T00:00:00Z to 2023-01-05T23:59:59Z. value: data: tickers: - IBM factsetExchangeCode: USA dateTimeRange: start: '2023-01-01T00:00:00Z' end: '2023-01-05T23:59:59Z' granularity: 1m type: trades sampleCompletedResponse: summary: Status Done value: data: id: 27b4923f-86dd-4b8b-89ac-dfc3a26fa786 status: created error: null 404Example: summary: sample error response value: errors: - code: Not Found title: id not found id: 7af3d86ca5954503b9244f2620fcf5eb 500Example: summary: sample error response value: errors: - code: Internal server error title: An unexpected error happened id: 7af3d86ca5954503b9244f2620fcf5eb schemas: type: title: type description: '

''type=trades'' gives minute bars data calculated from trade data (price and volume)

' type: string enum: - trades submittedResponse: type: object title: Status Response description: Returns Status of the id. properties: data: $ref: '#/components/schemas/StatusOne' tickers: type: array items: type: string minItems: 1 maxItems: 500 description: "The requested list of one or more tickers.

NOTE: Maximum 500 tickers per request.

.\n \n" example: - FDS completedResponse: type: object title: status description: Returns status. properties: data: $ref: '#/components/schemas/checkFiles' checkFiles: type: object description: check-files properties: id: description: a unique identification for the query requested type: string example: abc123 status: description: The status of the query type: string enum: - queued - executing - created - failed - cancelled example: queued error: $ref: '#/components/schemas/ErrorObject' ErrorObject: type: object nullable: true description: error properties: id: description: A UUID for this particular occurrence of the problem. type: string example: adb01824-252f-4420-b0c6-35a1e3507ef5 code: description: status type: string example: GenericError title: description: The plain text error message type: string example: Validation Error meta: title: Meta description: Array of metadata objects type: object properties: pagination: $ref: '#/components/schemas/pagination' errorExample: type: object description: Specifies the fields in the error message properties: code: description: It specifies the unique code type: string example: example_value title: description: ' Specifies the error message' type: string example: Example Title id: description: Specifies the id type: string example: abc123 minRequest: title: Level1 Minute bars Request Body description: Level1 Minute bars request body elements type: object properties: data: $ref: '#/components/schemas/minutesbarRequestBody' required: - data status: type: object description: specifies the error message fields in the response properties: errors: type: array description: An array containing errors items: $ref: '#/components/schemas/errorExample' example: [] MinTickData: type: object title: Tick History Object description: ' Returns Tick History Response.' properties: requestTimestamp: description: Timestamp of when request was made type: string format: date-time example: '2026-01-15T10:30:00Z' updateTimestamp: description: Timestamp when the file was last updated type: string format: date-time example: '2026-01-15T10:30:00Z' listOfFiles: type: array description: Contains list of Files items: $ref: '#/components/schemas/filesOne' example: [] dateTimePeriodMin: type: object description: 'Date-Time ' required: - start - end properties: start: description: 'The date for (or from which) the data is required. Supports in YYYY-MM-DDTHH:MM:SSZ format. ' type: string format: date-time example: '2012-01-01T11:00:00Z' end: type: string format: date-time description: 'The date to which data is required. Supports in YYYY-MM-DDTHH:MM:SSZ format. ' example: '2012-01-30T11:20:30Z' StatusOne: type: object description: request-files properties: id: description: a unique identification for the query requested type: string example: abc123 status: description: The status of the query type: string enum: - queued - executing - created - failed - cancelled example: queued error: $ref: '#/components/schemas/ErrorObject' filesOne: title: Files description: Array of data objects type: object properties: fileName: description: Name of the file(s) generated for the query requested type: string example: example_value url: description: "Download link for the TickHistory minute bars file with requested parameters. \n\n

The downloaded file contains isoCode, ticker, date, time, tradeOpen, tradeHigh, tradeLow, tradeClose, tradeVolume, tradeNumber, and tradeVWAP

\n \n

This download link will expire after 12 hours.

\n" type: string example: https://www.example.com minutesbarRequestBody: title: Level1 Minute bars Request Body description: Level1 Minute bars request body elements type: object properties: tickers: $ref: '#/components/schemas/tickers' factsetExchangeCode: $ref: '#/components/schemas/factsetExchangeCode' dateTimeRange: $ref: '#/components/schemas/dateTimePeriodMin' granularity: $ref: '#/components/schemas/granularity' type: $ref: '#/components/schemas/type' required: - tickers - factsetExchangeCode - dateTimeRange - granularity - type factsetExchangeCode: title: factsetExchangeCode description: 'FactSet specific regional or composite exchange code and last exchange code.

NOTE:Does not support multiple factsetExchangeCodes

. ' type: string minItems: 1 maxItems: 1 example: USA Get-FilesMinuteResponse: type: object description: Returns Tick History Files properties: data: $ref: '#/components/schemas/MinTickData' meta: $ref: '#/components/schemas/meta' granularity: title: granularity description: 'This is the grantualrity in which minute bars data is shown. Possible values are 1 Minute (1m) ' type: string enum: - 1m pagination: title: Pagination description: List of pagination objects type: object properties: total: description: Total number of files the API returns for a particular query type: integer example: 10 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 example: true parameters: _paginationLimit: name: _paginationLimit in: query description: Specifies the maximum number of results to return per response page required: false schema: type: integer default: 20 _paginationOffset: 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 default: 0 requestIdStatus: name: id in: query description: id returned by files create endpoint to poll and collect status of the query required: true schema: type: string requestId: name: id in: query description: id returned by files create endpoint to poll and collect results of the query required: true schema: type: string securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation