openapi: 3.0.0 info: version: 1.0.0 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 contact: name: FactSet Research Systems email: api@factset.com title: Factset Exchange DataFeed Snapshot description: >- FactSet’s Exchange DataFeed Snapshot API provides cost-effective access to real-time and delayed global exchange data. Proprietary technology normalizes over 300 global exchanges and 150+ data fields. Asset types integrated include equities, futures, options, warrants, fixed income, mutual funds, ETFs, indices, commodities, and FX rates.

Cutting-edge technology ensures reliability and provides scalability that allow applications to request multiple items at a time. To simplify client-side development an entire response can be placed in a matrix or table for effortless integration into internal and external applications. Using specified output formats (CSV, XML, JSON) receive all standard fields by default or customize the list based on specific needs.

Below are the current hosts:

Production: api.factset.com

Sandbox: api-sandbox.factset.com

externalDocs: description: OpenFactSet Marketplace Card url: >- https://open.factset.com/products/factset-exchange-datafeed-snapshot-api/en-us servers: - url: https://api-sandbox.factset.com security: - BasicAuth: [] paths: /DFSnapshot: get: summary: Factset Request a snapshot of exchange data for a list of symbols. operationId: get_DFSnapshot tags: - DFSnapshot description: >2 `ids` and `oc` are required parameters, but only one can be used based on request. Use `ids` for regular snapshot requests, and `oc` for requesting an option chain. **Try it Out** feature is available using a pre-recorded sandbox environment. Follow Try it Out inscrutions on each parameter to develop a request and view a sample server response. '*You must be logged into the Developer Portal and obtain an **[API Key](https://developer.factset.com/factset/api-key-listing)** for ''Try it Out'' to receive a successful server response. Select **Authorize** button or visit **[Authentication Support](https://developer.factset.com/authentication)** for more details.*' parameters: - $ref: '#/components/parameters/ids' - $ref: '#/components/parameters/oc' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/sf' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/serv' - $ref: '#/components/parameters/req_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: Error: - 0 - '' FDS-USA: Key: FDS-USA:D Stale: '' Fields: '50': LAST_Price: '291.7' '509': BID: '291.6' '609': ASK: '291.78' Host: FactSet IBM-USA: Key: IBM-USA:D Stale: '' Fields: '50': LAST_Price: '140.84' '509': BID: '140.83' '609': ASK: '140.85' Request ID: '' Requested Fields: ASK,BID,LAST_Price Requested Symbols: FDS-USA,IBM-USA,TSLA-USA Service: '' TSLA-USA: Key: TSLA-USA:D Stale: '' Fields: '50': LAST_Price: '236.45' '509': BID: '236.43' '609': ASK: '236.5' application/xml: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: >- IBM-USA FactSet text/csv: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: >- REQ_SYM,KEY,ASK,BID,LAST_Price FDS-USA,FDS-USA:D,291.12,291.01,291.06 IBM-USA,IBM-USA:D,140.72,140.7,140.7 TSLA-USA,TSLA-USA:D,235.73,235.61,235.69 '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' post: summary: Factset Snap exchange data. Use if URL lengh of 2,048 is exceeded. operationId: post_DFSnapshot tags: - DFSnapshot description: >- Request Snapshot exchange data. Use POST when your URL length exceeds 2,048 characters. parameters: - $ref: '#/components/parameters/ids' - $ref: '#/components/parameters/oc' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/sf' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/serv' - $ref: '#/components/parameters/req_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: Error: - 0 - '' FDS-USA: Key: FDS-USA:D Stale: '' Fields: '50': LAST_Price: '291.7' '509': BID: '291.6' '609': ASK_1: '291.78' Host: FactSet IBM-USA: Key: IBM-USA:D Stale: '' Fields: '50': LAST_Price: '140.84' '509': BID: '140.83' '609': ASK: '140.85' Request ID: '' Requested Fields: ASK_1,BID_1,LAST_1 Requested Symbols: FDS-USA,IBM-USA,TSLA-USA Service: '' TSLA-USA: Key: TSLA-USA:D Stale: '' Fields: '50': LAST_Price: '236.45' '509': BID: '236.43' '609': ASK: '236.5' application/xml: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: >- IBM-USA FactSet text/csv: schema: $ref: '#/components/schemas/DFSnapshot_Response' example: >- REQ_SYM,KEY,ASK,BID,LAST_Price FDS-USA,FDS-USA:D,291.12,291.01,291.06 IBM-USA,IBM-USA:D,140.72,140.7,140.7 TSLA-USA,TSLA-USA:D,235.73,235.61,235.69 '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' components: securitySchemes: BasicAuth: type: http scheme: basic parameters: ids: description: >- Requested symbols or securities. **Required** if not using `oc`. This is a comma-seperated list with a maximum of 500. Each symbol can be a FactSet Exchange Symbol, CUSIP, or SEDOL. This can be used in combination with `chain` parameter to pull in a custom portfolio.

**Try it out** - Choose one or multiple - IBM-USA, BABA-USA, WALMEX-MX, 7203-TKS, VOD-LON, NPN-JSE, MABAX, NZF, SPY-USA, AGG-USA, GLD-USA, AOR-USA, MNA-USA, UUP-USA, SP50-SPX, ESX-STX, XAO-ASX, WD-MSX, NG00-USA, GC00-USA, CC00-USA, C00-USA, FC00-USA, ER00-USA, EURUSD-FX1, USDMXN-FX1, AUDJPY-FX1, EURCZK-FX1, USDILS-FX1, USDZAR-FX1, US10YY-TU1, FDS#190621C00145000-USA, FDS#190621P00145000-USA. *Leave blank if you are trying the `oc` parameter*.

name: ids in: query schema: type: string required: false req_id: name: req_id in: query description: >- Request Identification String. Can be used by the application to keep track of requests. The id is not used by this service, however, it is included in the XML response.

**Try it Out** - any value can be passed through.

required: false schema: type: string format: name: format description: >- The format of the output file.

**Try it Out** - All formats available

in: query schema: type: string default: XML enum: - XML - JSON - CSV fields: description: >- All available fields. This is a comma-seperated list (no spaces). **Required** only when using `oc`. Otherwise, leave blank to return all fields by default. See definitions for details on available field names and Field ID #s. The Data Service Manual has complete reference.

**Try it Out** - All fields available. Use either FID # or name. For `oc`, recommend to use BID_1,ASK_1,STRIKE_PRICE. name: fields in: query schema: type: string oc: description: >- Option Chain, accepts one underlying symbol for which the option chain will be returned. **Required** if not using `ids`.

**Try it Out** - Only available for BABA-USA

name: oc in: query schema: type: string serv: description: > The Data Service that handles the request for the specified symbols. Available live services are - * **FDS1** -Production Data Service * **FDS_FUND** -Fundamental Data Service used for End-of-Day data. **Try it Out** - use FDS1 name: serv in: query schema: type: string enum: - FDS1 - FDS_FUND sf: description: > Symbol Filters, ability to apply filtering to the result of an option chain `oc` request based on available fields and values for the symbols. `sf`=VALUE_[filter],[field],[value] * **VALUE_MINMAX** - Field value will be within specified interval. ex. - VALUE_MINMAX,BID_1,min,max * **VALUE_EQUALS** - Field value will equal specified value. ex. - VALUE_EQUALS,BID_1,value * **VALUE_NOT_EQUALS** - Field value will not equal specified value. ex. - VALUE_NOT_EQUALS,BID_1,value **Try it Out** - depends on fields used. Example - VALUE_MINMAX,STRIKE_PRICE,120,130 name: sf in: query schema: type: string chain: description: >- Ability to retrieve a portfolio (OFDB) stored in FactSet. A chain request makes two sets of requests. The first request retrieves a list of symbols and the second makes the request for that list. The service acts as f it has been passed a large list of symbols in the 'ids' query parameter. Using both 'ids' and 'chain' in the same request will combine the two lists of symbols together. They key follows the following format: [PORTFOLIO NAME]-FCHAIN:P.

**Try it Out** - Not available for try it out. name: chain in: query schema: type: string schemas: fields: type: object description: All available fields in service. FID = Field ID Number. properties: Exchange: description: >- Field ID # 20. Exchange ISO-Code. Enumeration in Data Service Manual. type: string product: description: >- Field ID # 4. Product identifier. Enumeration in Data Service Manual. type: string Bid: description: 'Field ID # 509. Current bid price' type: number Bid_Date: description: 'Field ID # 386. Current bid date' type: string Bid_Time: description: 'Field ID # 385. Current bid time' type: integer Bid_Vol: description: 'Field ID # 505. Current bid size' type: integer Bid_Tick: description: >- Field ID # 518. Current bid tick direction. Enumeration in Data Service Manual. type: string Bid_Close: description: 'Field ID # 648. Official Closing Bid' type: number Bid_Close_Date: description: 'Field ID # 1062. Official Closing Bid Date' type: string Bid_Close_Vol: description: 'Field ID # 296. Official Closing Bid Volume' type: integer Bid_Exch: description: >- Field ID # 506. Exchange of the current bid price. Enumeration in Data Service Manual. type: string Ask: description: 'Field ID # 609. Current ask price' type: number Ask_Date: description: 'Field ID # 388. Current ask date' type: string Ask_Time: description: 'Field ID # 387. Current ask time' type: integer Ask_Vol: description: 'Field ID # 605. Current ask size' type: integer Ask_Close: description: 'Field ID # 649. Official Closing ask' type: number Ask_Close_Date: description: 'Field ID # 1064. Official Closing ask Date' type: string Ask_Close_Vol: description: 'Field ID # 297. Official Closing ask Volume' type: integer Ask_Exch: description: >- Field ID # 606. Exchange of the current ask price. Enumeration in Data Service Manual. type: string Short_Sale_Indicator: description: >- Field ID # 277. Flag to indicate if a security is restricted from being sold short type: integer Quote_Condition: description: >- Field ID # 38. Current Quote Condition. Enumeration in Data Service Manual. type: string Last_Price: description: 'Field ID # 50. Official last trade price' type: number Last_Date: description: 'Field ID # 384. Last Date' type: string Last_Time: description: 'Field ID # 383. Official last traded time' type: integer Last_Vol: description: 'Field ID # 31. Official last traded volume' type: integer Last_Tick: description: >- Field ID # 25. Official last tick. Enumeration in Data Service Manual. type: string Official_Close: description: 'Field ID # 526. Official Close/Close Range 1 Price' type: number Official_Close_Time: description: 'Field ID # 1065. Official Close/Close Range 1 Time' type: integer Last_Exch: description: >- Field ID # 33. Official last traded exchange. Enumeration in Data Service Manual. type: string Settlement: description: 'Field ID # 815. Settle Price' type: number Traded_Price: description: 'Field ID # 912. Last traded Price' type: number Traded_Date: description: 'Field ID # 868. Last traded Date' type: string Traded_Time: description: 'Field ID # 916. Last traded Time' type: integer Traded_Vol: description: 'Field ID # 918. Last traded Volume' type: integer Traded_Condition: description: 'Field ID # 1098. Last traded trade condition' type: string Net_Change: description: 'Field ID # 662. Official last change' type: number Percent_Change: description: 'Field ID # 816. Official last percentage change' type: number Premkt_Price: description: 'Field ID # 1019. Unofficial last premarket trade price' type: number Premkt_Time: description: 'Field ID # 1075. Unofficial last premarket traded time' type: integer Premkt_Vol: description: 'Field ID # 1832. Unofficial last premarket traded volume' type: integer Premkt_CVol: description: 'Field ID # 1836. Unofficial last premarket cumulative volume' type: integer Postmkt_Price: description: 'Field ID # 2029. Unofficial last post market trade price' type: number Postmkt_Time: description: 'Field ID # 1076. Unofficial last post market traded time' type: integer Postmkt_Vol: description: 'Field ID # 1860. Unofficial last post market traded volume' type: integer Postmkt_Cvol: description: 'Field ID # 1864. Unofficial last post market cumulative volume' type: integer Offbook_Cum_Vol: description: 'Field ID # 528. Off Book Cumulative Volume' type: integer Official_Bid_Close: description: 'Field ID # 448. The bid close price of today' type: number Official_Ask_Close: description: 'Field ID # 476. The ask close price of today' type: number Mid_Date: description: 'Field ID # 136. Current mid date' type: string Mid_Time: description: 'Field ID # 135. Current mid price time' type: integer Cvol: description: 'Field ID # 132. Cumulative volume' type: integer Turnover: description: 'Field ID # 341. Turnover' type: number Vwap: description: 'Field ID # 780. Volume Weighted Average Price' type: number Trade_Count: description: 'Field ID # 267. Cumulative trade count' type: integer Block_Trade_Count: description: 'Field ID # 269. Cumulative block count' type: integer Block_Cvol: description: 'Field ID # 271. Cumulative block volume' type: integer Prev_Close: description: 'Field ID # 208. Previous trading days Close' type: number Close_Date: description: 'Field ID # 1051. Previous trading days Closing Date' type: string Prev_Close_Unadj: description: 'Field ID # 892. Unadjusted Previous trading days Close' type: number Prev_Close_2: description: 'Field ID # 1172. Previous trading days Close late rollover[1]' type: number Prev_Close_Unadj_2: description: >- Field ID # 1176. Unadjusted Previous trading days Close late rollover type: number Lower_Trading_Band: description: 'Field ID # 1093. Lower trading band' type: number Upper_Trading_Band: description: 'Field ID # 1087. Upper trading band' type: number Buy_Imbalance: description: 'Field ID # 495. NYSE buy imbalance' type: integer Sell_Imbalance: description: 'Field ID # 496. NYSE sell imbalance' type: integer Nas_Buy_Imbalance: description: 'Field ID # 948. NAS buy imbalance' type: integer Nas_Sell_Imbalance: description: 'Field ID # 949. NAS sell imbalance' type: integer Open: description: 'Field ID # 158. The Open Range 1 or Open Price' type: number High: description: 'Field ID # 107. Current high for the day' type: number Low: description: 'Field ID # 307. Current low for the day' type: number Venue: description: 'Field ID # 530. Venue' type: string Buy_Id: description: 'Field ID # 1820. Buy Id' type: string Sell_Id: description: 'Field ID # 1824. Sell Id' type: string Auto_Trade_Vwap: description: 'Field ID # 637. VWAP including only order book (automatic) trades' type: number Auto_Trade_Cvol: description: >- Field ID # 635. Cumulative Volume calculated on all automated trading volumes for order-based segments type: integer Auto_Trade_Count: description: >- Field ID # 636. Trade Quantity including only order book (automatic) trades type: integer Ex_Date_Status: description: 'Field ID # 531. Ex-Date Status' type: string Premkt_Net_Change: description: 'Field ID # 896. Net change in pre-market session(US stocks only)' type: number Premkt_Percent_Change: description: 'Field ID # 897. Percent change in pre-market session(US stocks only)' type: number Closing_Vol: description: 'Field ID # 1345. Volume of the closing trade' type: integer Primary_Market: description: >- Field ID # 1517. FactSet Exchange Code of primary market for instrument. Determined by highest trading volume over a 3-day calendar period type: string Iso_Country_Exchange: description: 'Field ID # 1621. Three Letter Country Code from ISO-3166' type: string Premkt_Exch: description: >- Field ID # 1743. Premarket Exchange. Enumeration in Data Service Manual. type: string Postmkt_Exch: description: >- Field ID # 1744. Post Market Exchange. Enumeration in Data Service Manual. type: string Fref_Security_type: description: 'Field ID # 1751. The Security type returned by FREF_SECURITY_type' type: string Security_Sub_type: description: >- Field ID # 1762. Sub type of the security populated for funds right now type: string Postmkt_Net_Change: description: 'Field ID # 1881. Post Market Net Change' type: number Postmkt_Percent_Change: description: 'Field ID # 1882. Post Market Percent Change. ' type: number Isin: description: 'Field ID # 12. ISIN' type: string Cusip: description: 'Field ID # 14. CUSIP' type: string Sedol: description: 'Field ID # 15. SEDOL' type: string description: description: 'Field ID # 8. Security Description' type: string Shares_Outstanding: description: 'Field ID # 29. Total number of shares outstanding' type: number Price_Currency: description: 'Field ID # 62. Price currency code' type: string Security_Status: description: >- Field ID # 2800. Security Status or Halt Indicator. Enumeration in Data manual type: string Gmt_Offset: description: 'Field ID # 389. GMT Offset in Minutes' type: integer Market_Segment: description: 'Field ID # 650. Market segment' type: string Market_Sector: description: 'Field ID # 651. Market sector' type: string Period: description: 'Field ID # 633. Period' type: string Country_Code: description: 'Field ID # 652. ISO Country code' type: string Financial_Status: description: 'Field ID # 1896. Financial Status Enumeration Table' type: integer Factset_Industry: description: 'Field ID # 722. FactSet Industry Classification' type: string Factset_Sector: description: 'Field ID # 723. FactSet Sector Classification' type: string Halt_Info: description: 'Field ID # 1414. Halt Status' type: integer Homepage: description: 'Field ID # 724. Company Homepage' type: string Halt_description: description: 'Field ID # 1184. Halt description' type: string Feed_Currency: description: >- Field ID # 1182. Currency the Exchange sends the prices to FactSet in type: string Country_Name: description: 'Field ID # 1190. Name of Country' type: string Order_Lot_Size: description: 'Field ID # 427. Number of securities in a lot' type: integer Trade_Lot_Size: description: 'Field ID # 1335. The minimum number of lots required to trade' type: integer Tick_Size: description: 'Field ID # 1499. Tick Size' type: number Tick_Group: description: 'Field ID # 1507. Tick Group' type: string Tick_Pilot_Eff_Date: description: 'Field ID # 1508. Tick Pilot effective day' type: string Avg_30Day_Vol: description: 'Field ID # 709. Average cumulative volume for last 30 days' type: number Avg_5Day_Vol: description: 'Field ID # 719. Average cumulative volume over last 5 trading days' type: number High_52Week: description: 'Field ID # 767. 52 Week High Price' type: number Low_52Week: description: 'Field ID # 768. 52 Week Low Price' type: number High_52Week_Date: description: 'Field ID # 1220. 52 Week High Price Date' type: string Low_52Week_Date: description: 'Field ID # 1295. 52 Week Low Price Date' type: string Trade_Condition: description: 'Field ID # 174. Trade Condition' type: string Total_Return_3M: description: 'Field ID # 746. 3 Month return for US mutual funds' type: number Total_Return_52W: description: 'Field ID # 747. 52-Week Total Return for US mutual funds' type: number DFSnapshot_Response: type: object description: sample response properties: Error: description: error value example: 0 type: array items: $ref: '#/components/schemas/errorResponse' symbol1: description: first symbol from `ids` or `chain` type: array items: $ref: '#/components/schemas/fields' Host: description: host name example: FactSet type: string symbol2: description: second symbol from `ids` or `chain` list type: string specialfield: title: special field values type: object properties: NF: description: >- **#NF#** - Not found. The requested symbol could not be found by the service. type: string NA: description: >- **#NA#** - Not Applicable. The requested field could not be found for the requested symbol. This usually means that the field is not applicable for this type of record. type: string NE: description: >- **#NE#** - Not Entitled. The supplied username and password are not entitled to the data requested. errorResponse: type: object title: Error Response properties: status: description: status type: string example: Bad Request timestamp: description: timestamp in YYYY-MM-DD HH:MM:SS.SSS type: string example: '2019-11-01 11:09:41.918' format: date-time path: description: The Endpoint path {endpoint} type: string example: /dfsnapshot message: description: The plain text error message type: string example: Validation Error subErrors: description: subErrors related to the error message. Null if not applicable. type: object properties: field: description: Parameter Field Name type: string message: description: Error message type: string tags: - name: DFSnapshot