openapi: 3.0.1 info: title: Factset DSOTM API description: Allow clients to send transactions data to FactSet. 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.3.0 servers: - url: https://api.factset.com/analytics/dsotm/v1 paths: /transactions: post: tags: - Transactions summary: Push transactions data into FactSet. description: This endpoint takes the transactions data and pushes them into FactSet. operationId: sendTransactions requestBody: content: application/json: schema: $ref: '#/components/schemas/Transactions' responses: '202': description: Expected response. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '400': description: Invalid POST body. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. content: application/json: schema: $ref: '#/components/schemas/ClientErrorResponse' '401': description: Missing or invalid authentication. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '403': description: User is forbidden with current credentials headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '415': description: >- Missing/Invalid Content-Type header. Header needs to be set to application/json. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '429': description: >- Rate limit reached. Retry the requests after waiting the time specified in the retry-after header. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '500': description: >- Server error. Log the X-DataDirectRequest-Key header to assist in troubleshooting. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. '503': description: Request timed out. Retry the request in sometime. headers: X-DataDirect-Request-Key: description: FactSet’s request key header. schema: type: string description: FactSet’s request key header. X-FactSet-Api-Request-Key: description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. schema: type: string description: >- Key to uniquely identify an Analytics API request. Only available after successful authentication. components: schemas: ExecutionParameters: required: - amount - currencyiso - description - gross - net - portfolio - settlementcurrencyiso - settlementdate - settlementvalue - status - symbol - tradedate - tradetype - transactionid type: object properties: parentid: maxLength: 32 minLength: 0 type: string description: Unique ID of the placement which spawned this execution nullable: true net: type: number description: Cash value of the transaction, net of brokerage costs. format: double gross: type: number description: Cash value of the transaction, including brokerage costs format: double settlementvalue: type: number description: >- Cash value of the transaction, a value that has been multiplied by an applicable FX rates to convert the a transacti format: double settlementdate: type: string description: Settlement date in YYYYMMDD format settlementcurrencyiso: maxLength: 32 minLength: 0 type: string description: Currency code for Settlement Value orderid: maxLength: 32 minLength: 0 type: string description: Unique ID of the order which originated the record nullable: true portfolio: type: string description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)' transactionid: maxLength: 252 minLength: 0 type: string description: Unique id for the transaction symbol: maxLength: 32 minLength: 0 type: string description: Symbol corresponding to the traded instrument. description: maxLength: 32 minLength: 0 type: string description: Description tradetype: maxLength: 8 minLength: 0 type: string description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively." status: maxLength: 32 minLength: 0 type: string description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively." tradedate: type: string description: Transaction date which is in the format YYYYMMDD transactionleaves: type: number description: Shares that have been ordered and not executed format: double amount: type: number description: Quantity of the instrument traded. format: double currencyiso: maxLength: 8 minLength: 0 type: string description: >- The currency code of cash valued fields, Net Amount and Gross Amount. foreignexchangerate: type: number description: >- FX rate that can be picked up by PA, multiplied with the cash valued fields, Net, Gross, to allow PA to show transactions in reporting currency. format: float PlacementParameters: required: - amount - currencyiso - description - portfolio - settlementcurrencyiso - status - symbol - tradedate - tradetype - transactionid type: object properties: settlementcurrencyiso: maxLength: 32 minLength: 0 type: string description: Currency code for Settlement Value parentid: maxLength: 32 minLength: 0 type: string description: Unique ID of the order which spawned this placement nullable: true orderid: maxLength: 32 minLength: 0 type: string description: Unique ID of the order which originated the record nullable: true portfolio: type: string description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)' transactionid: maxLength: 252 minLength: 0 type: string description: Unique id for the transaction symbol: maxLength: 32 minLength: 0 type: string description: Symbol corresponding to the traded instrument. description: maxLength: 32 minLength: 0 type: string description: Description tradetype: maxLength: 8 minLength: 0 type: string description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively." status: maxLength: 32 minLength: 0 type: string description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively." tradedate: type: string description: Transaction date which is in the format YYYYMMDD transactionleaves: type: number description: Shares that have been ordered and not executed format: double amount: type: number description: Quantity of the instrument traded. format: double currencyiso: maxLength: 8 minLength: 0 type: string description: >- The currency code of cash valued fields, Net Amount and Gross Amount. foreignexchangerate: type: number description: >- FX rate that can be picked up by PA, multiplied with the cash valued fields, Net, Gross, to allow PA to show transactions in reporting currency. format: float OrderParameters: required: - amount - currencyiso - description - portfolio - status - symbol - tradedate - tradetype - transactionid type: object properties: orderid: maxLength: 32 minLength: 0 type: string description: Unique ID of the order which originated the record nullable: true portfolio: type: string description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)' transactionid: maxLength: 252 minLength: 0 type: string description: Unique id for the transaction symbol: maxLength: 32 minLength: 0 type: string description: Symbol corresponding to the traded instrument. description: maxLength: 32 minLength: 0 type: string description: Description tradetype: maxLength: 8 minLength: 0 type: string description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively." status: maxLength: 32 minLength: 0 type: string description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively." tradedate: type: string description: Transaction date which is in the format YYYYMMDD transactionleaves: type: number description: Shares that have been ordered and not executed format: double amount: type: number description: Quantity of the instrument traded. format: double currencyiso: maxLength: 8 minLength: 0 type: string description: >- The currency code of cash valued fields, Net Amount and Gross Amount. foreignexchangerate: type: number description: >- FX rate that can be picked up by PA, multiplied with the cash valued fields, Net, Gross, to allow PA to show transactions in reporting currency. format: float Transactions: type: object properties: executions: type: array items: $ref: '#/components/schemas/ExecutionParameters' description: List of executions nullable: true placements: type: array items: $ref: '#/components/schemas/PlacementParameters' description: List of placements nullable: true orders: type: array items: $ref: '#/components/schemas/OrderParameters' description: List of orders nullable: true ErrorSource: type: object properties: pointer: type: string nullable: true parameter: type: string nullable: true Error: type: object properties: id: type: string nullable: true code: type: string nullable: true title: type: string nullable: true detail: type: string nullable: true source: $ref: '#/components/schemas/ErrorSource' ClientErrorResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' nullable: true securitySchemes: FactSetApiKey: type: http scheme: basic FactSetOAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.factset.com/as/token.oauth2 scopes: {} security: - FactSetApiKey: [] - FactSetOAuth2: [] externalDocs: description: API Documentation url: >- https://developer.factset.com/api-catalog/direct-streaming-transaction-messages-api tags: - name: Transactions