openapi: 3.0.3 info: title: Factset Analytics Datastore About Child Orders 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: Child Orders paths: /child-orders/create: post: tags: - Child Orders summary: Factset Create Child Orders description: This endpoint is used to create child orders. operationId: createChildOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/EMSChildOrdersRoot' responses: '200': description: Expected response. content: application/json: schema: $ref: '#/components/schemas/EMSCreateChildOrdersResponseRoot' example: data: accepted: '3280015': basketId: FACTSET_OMS-100823_12345 ticketId: RKPW.3280015 symbol: FDS-USA rejected: '3280015': message: 'Ticket does not exist for ticketid: null' basketId: FACTSET_OMS-100823_12345 ticketId: RKPW.3280015 symbol: FDS-USA '400': description: Invalid parameters provided. content: application/json: schema: $ref: '#/components/schemas/ClientErrorResponse' '401': description: Missing or invalid authentication. '403': description: User is forbidden with current credentials. '415': description: Missing/Invalid Content-Type header. Header needs to be set to application/json. '429': description: Rate limit reached. Wait before sending further requests. '500': description: Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. '503': description: Request timed out. Retry the request in sometime. /child-orders/replace: post: tags: - Child Orders summary: Factset Replace the Child Orders on EMS system. description: This endpoint takes the child order to be replaced on the EMS system. operationId: replaceChildOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/EMSReplaceChildOrdersRoot' responses: '200': description: Expected response. content: application/json: schema: $ref: '#/components/schemas/EMSChildOrdersResponseRoot' example: data: accepted: '3280015': ticketId: RKPW.3280015 symbol: FDS-USA rejected: '3280015': message: 'Ticket does not exist for ticketid: null' ticketId: RKPW.3280015 symbol: FDS-USA '400': description: Invalid parameters provided. content: application/json: schema: $ref: '#/components/schemas/ClientErrorResponse' '401': description: Missing or invalid authentication. '403': description: User is forbidden with current credentials. '415': description: Missing/Invalid Content-Type header. Header needs to be set to application/json. '429': description: Rate limit reached. Wait before sending further requests. '500': description: Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. '503': description: Request timed out. Retry the request in sometime. /child-orders/cancel: post: tags: - Child Orders summary: Factset Cancel Child Orders description: This endpoint is to cancel a specific child order. operationId: cancelChildOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/EMSCancelChildOrdersRoot' responses: '200': description: Expected response. content: application/json: schema: $ref: '#/components/schemas/EMSChildOrdersResponseRoot' example: data: accepted: '3280015': ticketId: RKPW.3280015 symbol: FDS-USA rejected: '3280015': message: 'Ticket does not exist for ticketid: null' ticketId: RKPW.3280015 symbol: FDS-USA '400': description: Invalid parameters provided. content: application/json: schema: $ref: '#/components/schemas/ClientErrorResponse' '401': description: Missing or invalid authentication. '403': description: User is forbidden with current credentials. '415': description: Missing/Invalid Content-Type header. Header needs to be set to application/json. '429': description: Rate limit reached. Wait before sending further requests. '500': description: Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. '503': description: Request timed out. Retry the request in sometime. components: schemas: EMSCreateChildOrderRejectedInfo: type: object properties: message: type: string description: Reason for rejection nullable: true example: 'Ticket does not exist for ticketid: null' basketId: type: string description: Unique identifier assigned to basket order nullable: true example: FACTSET_OMS-100823_12345 ticketId: type: string description: Ticket Id for the child order nullable: true example: RKPW.3280015 symbol: type: string description: Ticker symbol nullable: true example: FDS-USA ParentId: required: - basketId - symbol type: object properties: symbol: type: string description: Ticker symbol example: FDS-USA basketId: type: string description: Unique identifier assigned to basket order. Can be fetched from the WebSocket Order Update API. example: FACTSET_OMS-100823_12345 description: Unique identifier to identify the parent order. EMSReplaceChildOrders: required: - childOrders type: object properties: childOrders: maxItems: 1 minItems: 1 type: array items: $ref: '#/components/schemas/ReplaceChildOrder' EMSChildOrderInfo: type: object properties: ticketId: type: string description: Ticket Id for the child order nullable: true example: RKPW.3280015 symbol: type: string description: Ticker symbol nullable: true example: FDS-USA description: EMS Child Order Info EMSChildOrderRejectedInfo: type: object properties: message: type: string description: Reason for rejection nullable: true example: 'Ticket does not exist for ticketid: null' ticketId: type: string description: Ticket Id for the child order nullable: true example: RKPW.3280015 symbol: type: string description: Ticker symbol nullable: true example: FDS-USA description: EMS Child Order Rejected Info EMSChildOrdersRoot: type: object properties: data: $ref: '#/components/schemas/EMSChildOrders' EMSCreateChildOrdersResponse: type: object properties: accepted: type: object additionalProperties: $ref: '#/components/schemas/EMSCreateChildOrderInfo' description: Accepted Orders. Key is the clientOrderId of the request. nullable: true rejected: type: object additionalProperties: $ref: '#/components/schemas/EMSCreateChildOrderRejectedInfo' description: Rejected Orders. Key is the clientOrderId of the request. nullable: true EMSChildOrdersResponse: type: object properties: accepted: type: object additionalProperties: $ref: '#/components/schemas/EMSChildOrderInfo' description: Accepted Orders. Key is the clientOrderId of the request. nullable: true rejected: type: object additionalProperties: $ref: '#/components/schemas/EMSChildOrderRejectedInfo' description: Rejected Orders. Key is the clientOrderId of the request. nullable: true description: EMS Child Orders Response EMSChildOrder: required: - destination - orderQuantity - orderType - parentId type: object properties: parentId: $ref: '#/components/schemas/ParentId' side: enum: - buy - sell - buyMinus - sellPlus - sellShort - sellShortExempt type: string description: Side of the order.If the parent order side is 'buy', valid values are 'buy' or 'buyMinus'. If the parent order side is 'sell', valid values are 'sell' or 'sellPlus' nullable: true example: buy orderType: enum: - market - limit - stop - stopLimit - marketOnClose - limitOrBetter type: string description: Type of the order example: market orderQuantity: minimum: 0 type: number description: Number of shares/Quantity to be routed. Must be less than or equal to the orderQuantity of the parent order. format: double example: 250 price: type: number description: Order price per share. format: double nullable: true example: 450 timeInForce: $ref: '#/components/schemas/TimeInForce' handlingInstructions: enum: - autoOrderPrivate - autoOrderPublic - bestExecution type: string description: Instructions for order handling on Broker trading floor. nullable: true example: autoOrderPublic exDestination: type: string description: Execution destination as defined by institution when order is entered. default: America Stock Exchange nullable: true example: America Stock Exchange destination: type: string description: Represents the designated venue or location to which an order is intended to be routed. example: PAPER stopPrice: type: number description: Stop-loss price to buy/sell stock at market. format: double nullable: true example: 250 maxFloor: type: number description: Maximum number of shares within an order to be shown on the exchange floor at any given time. format: double nullable: true example: 100 minQuantity: type: number description: Minimum quantity of an order to be executed. format: double nullable: true example: 120 settlementType: enum: - regular - cash - nextDay - tPlus2 - tPlus3 - tPlus4 - future - whenIssued - sellersOption - tPlus5 type: string description: Order settlement period nullable: true example: regular settlementDate: type: string description: Specific date of trade settlement in YYYYMMDD format. nullable: true example: '20230823' executionInstructions: enum: - notHeld - work - goAlong - overTheDay - held - participateDoNotInitiate - strictScale - tryToScale - stayOnBidSide - stayOnOfferSide - noCross - okToCross - callFirst - percentOfVolume - doNotIncrease - doNotReduce - allOrNone - reinstateOnSystemFailure - institutionsOnly - reinstateOnTradingHalt - cancelOnTradingHalt - lastPeg - midPricePeg - nonNegotiable - openingPeg - marketPeg - cancelOnSystemFailure - primaryPeg - suspend - fixedPegToLocalBestBid - customerDisplayInstruction - netting - pegToVWAP - tradeAlong - tryToStop - cancelIfNotBest - trailingStopPeg - strictLimit - ignorePriceValidityChecks - pegToLimitPrice - workToTargetStrategy - intermarketSweep - externalRoutingAllowed - externalRoutingNotAllowed - imbalanceOnly - singleExecutionRequestedForBlockTrade - bestExecution type: string description: Instructions for order handling on exchange trading floor. nullable: true example: notHeld locateRequired: type: boolean description: Indicates whether the broker is to locate the stock in conjunction with a short sell order. nullable: true example: false text: maxLength: 250 type: string description: Free format text string. nullable: true example: routing 10 orders to PAPER destination profile: type: string description: A name given to broker algo nullable: true userDefinedFields: type: object additionalProperties: type: string description: User defined fields nullable: true description: EMS Child Orders EMSCancelChildOrder: required: - ticketId type: object properties: ticketId: type: string description: Ticket Id for the child order to be cancelled example: RKPW.3280015 reason: type: string description: Reason for cancelling the child order nullable: true example: mistyped order quantity to be routed description: EMS Cancel Child Order Error: type: object properties: id: type: string description: Identifier for the error nullable: true code: type: string description: Code nullable: true title: type: string description: Title nullable: true detail: type: string description: Explanation specific to the occurrence of the error nullable: true source: $ref: '#/components/schemas/ErrorSource' description: Error ReplaceChildOrder: required: - ticketId type: object properties: ticketId: type: string description: Ticket Id for the child order to be replaced example: RKPW.3280015 orderType: enum: - market - limit - stop - stopLimit - marketOnClose - limitOrBetter type: string description: Type of the order nullable: true example: market orderQuantity: minimum: 0 type: number description: Number of shares/Quantity to be routed. Must be less than or equal to the orderQuantity of the parent order. format: double nullable: true example: 100 price: type: number description: Order price per share. format: double nullable: true example: 450 timeInForce: $ref: '#/components/schemas/TimeInForce' handlingInstructions: enum: - autoOrderPrivate - autoOrderPublic - bestExecution type: string description: Instructions for order handling on Broker trading floor. nullable: true example: autoOrderPublic stopPrice: type: number description: Stop-loss price to buy/sell stock at market. format: double nullable: true example: 120 maxFloor: type: number description: Maximum number of shares within an order to be shown on the exchange floor at any given time. format: double nullable: true example: 200 minQuantity: type: number description: Minimum quantity of an order to be executed. format: double nullable: true example: 120 settlementType: enum: - regular - cash - nextDay - tPlus2 - tPlus3 - tPlus4 - future - whenIssued - sellersOption - tPlus5 type: string description: Order settlement period nullable: true example: regular settlementDate: type: string description: Specific date of trade settlement in YYYYMMDD format. nullable: true example: '20230823' executionInstructions: enum: - notHeld - work - goAlong - overTheDay - held - participateDoNotInitiate - strictScale - tryToScale - stayOnBidSide - stayOnOfferSide - noCross - okToCross - callFirst - percentOfVolume - doNotIncrease - doNotReduce - allOrNone - reinstateOnSystemFailure - institutionsOnly - reinstateOnTradingHalt - cancelOnTradingHalt - lastPeg - midPricePeg - nonNegotiable - openingPeg - marketPeg - cancelOnSystemFailure - primaryPeg - suspend - fixedPegToLocalBestBid - customerDisplayInstruction - netting - pegToVWAP - tradeAlong - tryToStop - cancelIfNotBest - trailingStopPeg - strictLimit - ignorePriceValidityChecks - pegToLimitPrice - workToTargetStrategy - intermarketSweep - externalRoutingAllowed - externalRoutingNotAllowed - imbalanceOnly - singleExecutionRequestedForBlockTrade - bestExecution type: string description: Instructions for order handling on exchange trading floor. nullable: true example: notHeld locateRequired: type: boolean description: Indicates whether the broker is to locate the stock in conjunction with a short sell order. nullable: true example: false text: maxLength: 250 type: string description: Free format text string. nullable: true example: Replacing price to 300 for 50 orders userDefinedFields: type: object additionalProperties: type: string description: User defined fields nullable: true description: EMS Replace Child Orders EMSChildOrders: required: - childOrders type: object properties: childOrders: maxItems: 1 minItems: 1 type: array items: $ref: '#/components/schemas/EMSChildOrder' EMSReplaceChildOrdersRoot: type: object properties: data: $ref: '#/components/schemas/EMSReplaceChildOrders' ClientErrorResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' description: List of errors nullable: true description: Client Error Response EMSCancelChildOrders: required: - childOrders type: object properties: childOrders: maxItems: 1 minItems: 1 type: array items: $ref: '#/components/schemas/EMSCancelChildOrder' description: EMS Cancel Child Orders EMSCreateChildOrdersResponseRoot: required: - data type: object properties: data: $ref: '#/components/schemas/EMSCreateChildOrdersResponse' description: EMS Response ErrorSource: type: object properties: pointer: type: string description: Pointer to the associated entity in the request body nullable: true parameter: type: string description: Indicates which path or URI query parameter caused the error nullable: true description: Error Source EMSCreateChildOrderInfo: type: object properties: basketId: type: string description: Unique identifier assigned to basket order nullable: true example: FACTSET_OMS-100823_12345 ticketId: type: string description: Ticket Id for the child order nullable: true example: RKPW.3280015 symbol: type: string description: Ticker symbol nullable: true example: FDS-USA EMSChildOrdersResponseRoot: required: - data type: object properties: data: $ref: '#/components/schemas/EMSChildOrdersResponse' description: EMS Response TimeInForce: type: object properties: tif: enum: - day - goodTillCancel - atTheOpening - immediateOrCancel - fillOrKill - goodTillCrossing - goodTillDate - atc type: string description: 'Time in force: if goodTillDate, then Expire Time or Expire Date is a required field' expireDate: type: string description: Expire date in YYYYMMDD format expressed in UTC nullable: true example: '20230823' expireTime: type: string description: Expire time in YYYYMMDD-HH:MM:SS format expressed in UTC nullable: true example: 20230823-12:20:25 description: Time in Force EMSCancelChildOrdersRoot: type: object properties: data: $ref: '#/components/schemas/EMSCancelChildOrders' securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation