openapi: 3.2.0 info: title: Moment Orders API version: 1.0.0 contact: name: Moment Support email: support@withmoment.com url: https://withmoment.com/support description: 'Operations tagged Orders across 2 of this provider''s published API definitions: moment-account-management-api-openapi.yml, moment-orders-api-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com tags: - name: Orders paths: /v1/account/{account_id}/order/: post: tags: - Orders summary: Place an Order for an Account operationId: placeOrder parameters: - name: account_id in: path required: true schema: type: string description: The ID of the account requestBody: required: true content: application/json: schema: allOf: - $ref: '#/components/schemas/PostOrderRequest' - type: object properties: sleeve_id: type: string description: The ID of the sleeve to place the order in. This only applies to 'buy' orders. responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/PlaceOrderResponse' '400': description: Invalid request parameters content: application/json: schema: $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema' '404': description: Account not found content: application/json: schema: $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/account/{account_id}/order/{order_id}/: parameters: - name: account_id in: path required: true schema: type: string description: The ID of the account - schema: type: string name: order_id in: path required: true description: Order ID delete: tags: - Orders summary: Cancel an Order parameters: [] responses: '204': description: No Content '400': description: Invalid request parameters content: application/json: schema: $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema' operationId: cancelOrder description: Attempts to cancel an open Order. If the order is no longer cancelable, a subsequent cancel reject event will be sent to the client via the Real-Time Orders API. servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/: post: tags: - Orders summary: Create an Order description: Places a request for a new order for the given account. operationId: postOrder parameters: - name: Moment-User in: header required: false schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Order' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/PostOrderResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/APIError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/APIError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/APIError' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/APIError' get: tags: - Orders summary: List all Orders description: Retrieves a list of orders for the account, filtered by the supplied query parameters. operationId: getAllOrders parameters: - name: state in: query description: 'Order state to be queried: ''open'', ''closed'' or ''all''. Defaults to open. An open order has an order status of pending_approval, pending_execution, or partially_filled, while a closed order has an order status of filled, canceled, or rejected. For more information on order statuses, refer to [Order States and Statuses](https://docs.moment.com/reference/understand-orders#order-states-and-statuses).' schema: type: string example: open enum: - open - closed - all - name: account_id in: query description: Unique ID of user account to fetch orders for. schema: type: string - name: client_order_id in: query description: Filter orders by client order ID. schema: $ref: '#/components/schemas/ClientOrderID' - name: annotation in: query description: Filter orders by annotation contents. schema: type: string - name: ib_id in: query schema: $ref: '#/components/schemas/IntroducingBrokerID' responses: '200': description: 'Successful response An array of Order objects' content: application/json: schema: type: array items: $ref: '#/components/schemas/Order' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/APIError' x-internal: false servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/bulk/: post: tags: - Orders summary: Create Multiple Orders description: Creates multiple orders in a single request. operationId: bulkOrderSubmission parameters: - name: Moment-User in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkOrderSubmissionRequest' required: true responses: '201': description: Successful response content: application/json: schema: $ref: '#/components/schemas/BulkOrderSubmissionResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/APIError' '500': description: Internal Server Error servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/{id}/: parameters: - name: id in: path description: Order ID required: true schema: type: string delete: tags: - Orders summary: Cancel an Order description: Attempts to cancel an open Order. If the order is no longer cancelable, a subsequent cancel reject event will be sent to the client via the Real-Time Orders API. operationId: deleteOrderByOrderID parameters: - name: cancel_group_members in: query description: When true, cancel the open quantity of every member of the group parent order along with the parent. Only valid for group parent orders; otherwise the cancel is rejected. required: false schema: type: boolean - name: reason in: query description: Optional free-text reason for the cancellation, supplied by the requesting user. Surfaced on the order activity timeline. required: false schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' get: tags: - Orders summary: Retrieve an Order description: Retrieves a single order for the given id. operationId: getOrderByOrderID parameters: [] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Order' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/APIError' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/APIError' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/{id}/allocate/: post: tags: - Orders summary: Allocate an Order description: Allocates a block order to one or more customer accounts. operationId: allocateOrderByOrderID parameters: - name: id in: path description: Order ID required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PostOrderAllocationRequest' required: true responses: '201': description: Successful response content: application/json: schema: type: object properties: allocation_id: $ref: '#/components/schemas/AllocationID' required: - allocation_id '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/APIError' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/{id}/approve/: post: tags: - Orders summary: Manually Approve an Order description: Approves an order for the given order ID. Applicable only for orders that are pending approval and held for manual review. operationId: approveOrderByOrderID parameters: - name: id in: path required: true schema: $ref: '#/components/schemas/OrderID' requestBody: content: application/json: schema: type: object properties: annotation: description: The annotation to be added to the order. type: - string - 'null' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ManualApproveResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com /v1/trading/order/{id}/reject/: post: tags: - Orders summary: Reject an Order description: Rejects an order for the given order ID. Applicable only for orders that are pending approval and held for manual review. operationId: rejectOrderByOrderID parameters: - name: id in: path required: true schema: $ref: '#/components/schemas/OrderID' requestBody: content: application/json: schema: type: object properties: reason: description: The reason for rejection, if provided. type: - string - 'null' annotation: description: The annotation to be added to the order for the rejection. type: - string - 'null' required: true responses: '201': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ManualRejectResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/APIError' servers: - url: https://live.moment-api.com - url: https://paper.moment-api.com components: schemas: OrderSize: type: object title: Size description: The size of an order, with a specified `type` indicating how the size is represented. Par sizes represent the size of the order in face value; most corporate bonds have a face value of $1000, so an order with par $3000 would represent an order for 3 bonds. Notional sizes represent the size of the order in current dollar value, so an order with notional $3000 would represent an order to buy or sell $3000 worth of the bond at the current market prices. Currently, only par sizes are supported. properties: value: $ref: '#/components/schemas/Decimal' type: type: string enum: - par default: par required: - value - type BookingType: type: string description: The booking type for the account. enum: - cash - margin NullDecimal: type: number format: double x-go-type: decimal.NullDecimal x-go-type-skip-optional-pointer: true x-go-type-import: path: github.com/shopspring/decimal name: decimal OrderSide: type: string enum: - buy - sell example: buy title: OrderSide description: 'Represents which side this order is on: - buy - sell' ClientOrderID: type: string title: Client Order ID description: Client-provided unique ID for the order; for example, to cross-reference with an internal system. Must be unique within the trading day, otherwise duplicate orders will be rejected during pre-trade checks. PlaceOrderResponse: type: object description: Response from placing an order properties: id: type: string title: ID description: Moment-generated ULID identifier for the order example: 01JBFQZXMWZ08XDMTG08P2Z4XT client_order_id: $ref: '#/components/schemas/ClientOrderID' required: - id - client_order_id InstrumentID: type: string title: Instrument ID description: Instrument ISIN example: US594918AD66 Decimal: type: number format: double x-go-type: decimal.Decimal x-go-type-import: path: github.com/shopspring/decimal name: decimal OrderType: type: string enum: - limit - market - rfq_response default: limit example: limit description: 'Represents the types of orders Moment currently supports. - limit - market - rfq_response' OrderRFQ: type: object title: Order Request RFQ description: Required for orders of type `rfq_response`, specifies the RFQ that the order is being placed against. required: - id - contra_quote_id properties: id: type: string description: The ID of the RFQ that led to the order request. contra_quote_id: type: string title: Contra Quote ID description: The ID of the quote that is being traded against. PostOrderRequest: description: Each order has a unique identifier generated by Moment. The ID will be returned when an order is placed and can be used to check the status of the order via the `GET /v1/trading/order/{id}/` endpoint. Updates on open orders at Moment will also be sent over the real-time API, which is the recommended method of maintaining order state. type: object title: Order Request properties: instrument_id: $ref: '#/components/schemas/InstrumentID' client_order_id: $ref: '#/components/schemas/ClientOrderID' amount: $ref: '#/components/schemas/OrderSize' side: $ref: '#/components/schemas/OrderSide' type: $ref: '#/components/schemas/OrderType' limit_price: $ref: '#/components/schemas/NullDecimal' description: The Percentage Price is represented as a percentage of par. For a typical $1,000 par value bond, a percentage price of $90 values the bond at $900. This is a clean price, which does not include accrued interest. example: 90 minimum: 0 x-go-type-skip-optional-pointer: true annotation: type: string title: annotation description: Custom, arbitrary, client-provided metadata. booking_instructions: type: object title: booking_instructions description: Client-provided information to configure trade booking for the order, as a map from string to string. Passing a multi-layer JSON map or something other than "string":"string" key-value pairs will result in an error. The specific contents of this field should be determined in conjunction with the back-office integration. additionalProperties: type: string example: key1: value1 key2: value2 extended_hours: type: boolean default: false description: (default) false. If true, eligible for execution outside regular trading hours. In live mode, trading hours are from 9:30 am to 4:00 pm ET. Extended hours are from 7:30 am to 5:30 pm ET. For paper trading, normal trading hours are from 9:30 am to 4:00 pm ET. Extended hours are from 1:00 am to 11:00 pm ET. rfq: $ref: '#/components/schemas/OrderRFQ' booking_type: $ref: '#/components/schemas/BookingType' metadata: type: object additionalProperties: type: string description: Metadata is an arbitrary key-value store for client-provided data associated with the order. x-go-type-skip-optional-pointer: true review_required: type: boolean default: false description: Flag to indicate if the order requires manual review before execution. x-go-type-skip-optional-pointer: true review_reason: type: string description: Reason for why the order requires review. Only applicable when review_required is true. x-go-type-skip-optional-pointer: true required: - instrument_id - amount - side - type - client_order_id - booking_instructions - extended_hours Protocol: title: Protocol type: string description: The protocol used for the execution order. enum: - limit_order_book - request_for_quote - external - group - custodian x-enumNames: - ProtocolLimitOrderBook - ProtocolRequestForQuote - ProtocolExternal - ProtocolGroup - ProtocolCustodian PriceValueType: title: Price Value Type type: string description: The method used to represent the price value. enum: - percent - discount_yield - spread - money_market_yield - per_share x-enumNames: - PriceValueTypePercent - PriceValueTypeDiscountYield - PriceValueTypeSpread - PriceValueTypeMMYield - PriceValueTypePerShare default: percent FeeType: title: Fee Type type: string description: The type of fee to apply to the order. Valid values are "markup", "commission", and "sales_credit". enum: - markup - commission - sales_credit x-enumNames: - FeeTypeMarkup - FeeTypeCommission - FeeTypeSalesCredit AllOrNone: description: If set to true, the entire order quantity will be filled or none at all. There will be no partial fills. type: boolean default: false title: All or None x-go-type-skip-optional-pointer: true InstrumentID_2: description: Instrument CUSIP or ISIN type: string example: US594918AD66 title: Instrument ID SnapshotQuote: type: object properties: yield_to_maturity: type: number format: double description: 'Deprecated: not mapped to domain model, will be removed. Use post_fee_ytm instead.' deprecated: true yield_to_worst: type: number format: double description: 'Deprecated: not mapped to domain model, will be removed. Use post_fee_ytw instead.' deprecated: true size: type: integer min_size: type: integer venue_mpid: type: string spread_benchmark_isin: type: - string - 'null' spread_to_benchmark_bps: type: - string - 'null' min_balance_remaining: type: - integer - 'null' min_increment: type: - integer - 'null' source: type: string enum: - LOB - RFQ pre_fee_price: type: number format: double post_fee_price: type: number format: double pre_fee_ytw: type: number format: double description: Pre-fee yield to worst (street price, no fees). post_fee_ytw: type: number format: double description: Post-fee yield to worst (inclusive of Moment fees). pre_fee_ytm: type: number format: double description: Pre-fee yield to maturity (street price, no fees). post_fee_ytm: type: number format: double description: Post-fee yield to maturity (inclusive of Moment fees). pre_fee_spread_bps: type: - number - 'null' format: double post_fee_spread_bps: type: - number - 'null' format: double side: type: string enum: - bid - ask disabled: type: boolean rfq_quote_status: type: string rfq_id: type: string venue_quote_id: type: string settlement_date: type: integer format: int64 required: - size - min_size - venue_mpid - source - pre_fee_price - post_fee_price - pre_fee_ytm - pre_fee_ytw - post_fee_ytm - post_fee_ytw - side - disabled - settlement_date Strategy: title: Strategy type: string description: The strategy used for the execution order. enum: - smart_order_routing - manual - report - auto_ex x-enumNames: - StrategySmartOrderRouting - StrategyManual - StrategyReport - StrategyAutoEx ErrorType: type: string description: High-level error category for programmatic error handling. enum: - invalid_request - not_found - server_error - unauthorized - rate_limited - forbidden - closed - not_implemented - resource_conflict x-enum-varnames: - ErrorTypeInvalidRequest - ErrorTypeNotFound - ErrorTypeServerError - ErrorTypeUnauthorized - ErrorTypeRateLimited - ErrorTypeForbidden - ErrorTypeNeedsMarketState - ErrorTypeNotImplemented - ErrorTypeResourceConflict GroupMember: title: Group Member type: object description: A group member for an order required: - moment_order_id properties: moment_order_id: type: string description: The ID of the order in the group x-go-name: MomentOrderID RiskGroupID: description: The risk group ID to use for this order. If not specified, the default risk group for the organization will be used. The risk group must belong to the organization specified by ib_id. Orders for which the risk group does not belong to the specified organization will be rejected with "invalid risk group id." type: string LimitPrice: title: Limit Price description: The Percentage Price is represented as a percentage of par. For a typical $1,000 par value bond, a percentage price of $90 values the bond at $900. This is a clean price, which does not include accrued interest. Accepts a JSON number or a decimal string. example: 90 x-go-type: PriceValue oneOf: - type: - number - 'null' minimum: 0 - type: string ManualApproveResponse: type: object properties: id: $ref: '#/components/schemas/ManualApprovalID' required: - id ExternalTradeReport: type: object properties: amount: $ref: '#/components/schemas/OrderSize_2' annotation: description: Optional annotation for the trade. type: - string - 'null' bypass_street_side_leg: description: Flag to bypass street side leg. If true, we will not send the street side to the custodian. type: boolean example: false default: false x-go-type-skip-optional-pointer: true bypass_trade_booking: description: Flag to bypass trade booking. If true, the trade will not be booked in the system. type: boolean example: true client_external_trade_report_id: description: The client-provided idempotency key. type: string counterparty_clearing_firm_id: description: DTC ID of the counterparty's clearing firm. type: string example: '0123' x-go-type-skip-optional-pointer: true counterparty_id: description: MPID of the counterparty involved in the street trade. type: string example: MMNT x-go-type-skip-optional-pointer: true execution_id: description: Trade ID. Often times this will be the ID of the execution made at an external venue. type: string example: 01JBFQZXMWZ08XDMTG08P2Z4XT external_trade_report_id: description: 'Optional external trade report ID. If provided, this ID will be used instead of auto-generating one. Must start with ''etr_'' followed by a valid ULID. If not provided, the system will generate a unique ID automatically. ' type: string example: etr_01JBFQZXMWZ08XDMTG08P2Z4XT price: description: The trade price. For mutual funds, if not provided, the backend will use the parent order's estimated price (NAV). type: - number - 'null' format: double settle_date: description: The settlement date for the trade. type: string format: date-time snapshot_id: description: Optional quote snapshot ID. If provided, this snapshot ID will be used instead of creating a new one. type: string trade_time: description: The timestamp when the trade occurred. type: string format: date-time required: - client_external_trade_report_id - amount - trade_time - settle_date - bypass_trade_booking title: External Trade Report OrderSize_2: type: object title: Amount description: 'The Amount of an order with a specified `type` indicating how the amount is represented. - **Par:** Represents the order size in face value (e.g., a corporate bond with a $1,000 face value). - **Notional:** Represents the order size in notional dollar value. - **Shares:** Represents the order size in number of shares (for equities).' properties: value: type: number example: 10000 x-go-type: float64 type: type: string enum: - par - notional - shares default: par x-enumNames: - SizeTypePar - SizeTypeNotional - SizeTypeShares required: - value - type ManualRejectResponse: type: object properties: id: $ref: '#/components/schemas/ManualRejectID' required: - id TwapParameters: title: TWAP Parameters type: object description: 'Parameters for a time-weighted average price (TWAP) algo. The algo slices the order into smaller pieces and works them evenly over the specified time window, aiming to match the time-weighted average price of the instrument over that window.' properties: start_time: type: string format: date-time description: Start of the absolute window to work the order. end_time: type: string format: date-time description: End of the absolute window to work the order. would: $ref: '#/components/schemas/WouldParameters' participate_opening_auction: type: boolean description: Whether the algo should participate in the opening auction. default: false x-go-type-skip-optional-pointer: true participate_closing_auction: type: boolean description: Whether the algo should participate in the closing auction. default: false x-go-type-skip-optional-pointer: true aggressiveness: $ref: '#/components/schemas/AggressivenessLevel' max_participation_percent: type: - integer - 'null' format: int64 description: Hard ceiling on participation of market volume, as a percent (e.g. 20 = 20%). BulkOrderSubmissionResponse: description: A response to a bulk order submission - list of order IDs and allocation IDs created from the bulk submission type: array items: $ref: '#/components/schemas/IDs' TimeInForce: title: Time In Force type: string description: Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. enum: - day - good_till_date - at_the_opening - at_the_close x-enumNames: - Day - GoodTillDate - AtTheOpening - AtTheClose Price: title: Price type: object description: Price value with type specification for different pricing methods. required: - value - type properties: value: $ref: '#/components/schemas/Decimal_2' type: $ref: '#/components/schemas/PriceValueType' benchmark_isin: type: - string - 'null' description: The ISIN of the benchmark security, required when type is 'spread'. VwapParameters: title: VWAP Parameters type: object description: 'Parameters for a volume-weighted average price (VWAP) algo. The algo works the order in proportion to the expected market volume profile over the specified time window, aiming to match the volume-weighted average price of the instrument over that window.' properties: start_time: type: string format: date-time description: Start of the absolute window to work the order. end_time: type: string format: date-time description: End of the absolute window to work the order. would: $ref: '#/components/schemas/WouldParameters' participate_opening_auction: type: boolean description: Whether the algo should participate in the opening auction. default: false x-go-type-skip-optional-pointer: true participate_closing_auction: type: boolean description: Whether the algo should participate in the closing auction. default: false x-go-type-skip-optional-pointer: true aggressiveness: $ref: '#/components/schemas/AggressivenessLevel' max_participation_percent: type: - integer - 'null' format: int64 description: Hard ceiling on participation of market volume, as a percent (e.g. 20 = 20%). FeeAmountType: title: Fee Amount Type type: string description: "The method used to calculate the fee amount. Supported types include:\n\n- `percentage_of_par`: Fee as a percentage of par value.\n Example: `0.10` = 10 basis points of par value.\n\n- `percentage_of_market_value`: Fee as a percentage of the quote price (market value).\n Example: `1` = 1% of market value.\n\n- `yield_bps`: Fee expressed in yield terms, in basis points.\n Example: `100` = 100 basis points of yield.\n\n- `percentage_of_concession`: Fee applies to concession based quoting mechanism, especially for new issue CDs.\n Example: `50` = 50 percent of all concession from the dealer.\n" enum: - percentage_of_par - percentage_of_market_value - yield_bps - percentage_of_concession x-enumNames: - FeeAmountTypePercentageOfPar - FeeAmountTypePercentageOfMarketValue - FeeAmountTypeYieldBps - FeeAmountTypePercentageOfConcession BulkOrderSubmissionRequest: description: A request to create multiple orders in a single request type: object properties: ib_id: $ref: '#/components/schemas/IntroducingBrokerID' orders: description: A list of individual orders used in a bulk submission type: array items: $ref: '#/components/schemas/Order' risk_group_id: $ref: '#/components/schemas/RiskGroupID' required: - orders InvestmentAdvisorRepresentative: title: Investment Advisor Representative type: object description: 'The representative credited with this account''s participation in the order. Accounts in one block order can name different representatives. A Moment user is sent as moment_user_id; name and email resolve from the user directory when read. A person with no Moment login is sent by name, with email when known. When both are set, moment_user_id is always preferred. ' properties: moment_user_id: description: The Moment user who is the representative. type: string x-go-type-skip-optional-pointer: true x-go-name: MomentUserID name: description: The representative's display name. type: string x-go-type-skip-optional-pointer: true email: description: The representative's email. type: string x-go-type-skip-optional-pointer: true ExitCriteria: type: object title: Exit Criteria required: - timeout properties: timeout: type: string format: duration description: Timeout for the execution order. Decimal_2: title: Decimal oneOf: - type: number - type: string description: Decimal number. x-go-type: decimal.Decimal x-go-type-import: path: github.com/shopspring/decimal ExecutionCriteria: type: object title: Execution Criteria required: - min_wait_time - min_number_quotes properties: min_wait_time: type: string format: duration description: Minimum wait time for the execution order. min_number_quotes: type: integer description: Minimum number of quotes required on the side of the order, before execution can proceed. If the protocol is `request_for_quote`, this is the minimum number of RFQ quotes required. If the protocol is `limit_order_book`, this is the minimum number of LOB quotes required. max_transaction_cost_dollar: type: string description: Maximum transaction cost in dollars. Max buy price = estimated price * par value + maxDollar, Min sell price = estimated price * par value - maxDollar. Ex. a value of `5` would mean the transaction cost must be within $5 of the instrument's estimated price in dollars, meaning when buying a bond with a estimated price of $100 and a par value of $1000, the transaction cost must be below $1005. example: '5' max_transaction_cost_percent: type: string description: Maximum transaction cost in percent. Max buy price = estimated price * (1 + maxPct / 100), Min sell price = estimated price * (1 - maxPct / 100). Ex. a value of `5` would mean the transaction cost must be within 5% of the instrument's estimated price in percent, meaning when buying a bond with a estimated price of $100, the transaction cost must be below $105. example: '5' max_transaction_cost_yield: type: string description: Maximum transaction cost in yield. Max buy yield = estimated ytw - maxYTW, Max sell yield = estimated ytw + maxYTW. Ex. a value of `0.5` would mean the transaction cost must be within 50 bps of the instrument's estimated yield, meaning when buying a bond with an estimated yield to worst of 1.5%, the transaction cost must be above 1.0%. example: '0.5' AllocationAccountRequest: title: Allocation Account Request type: object description: 'The account allocation request specifies the amount of the order to allocate to a specific account. Note that requested_amount values must be a multiple of the par size of the bond.' required: - client_account_allocation_id - account_id - requested_amount properties: client_account_allocation_id: type: string description: Client-provided unique ID for the account allocation; for example, to cross-reference with an internal system. Values must be unique within the trading day. x-go-name: ClientAccountAllocationID account_id: type: string description: Unique ID of user account example: 5f7b9c9f-7b9c-9f7b-9c9f-7b9c9f7b9c9f x-go-name: AccountID requested_amount: $ref: '#/components/schemas/OrderSize_2' account_configuration: $ref: '#/components/schemas/AccountConfiguration' moment_sleeve_id: type: string description: The Moment internal ID of the sleeve to allocate the order to. x-go-name: MomentSleeveID order_received_at: type: string format: date-time description: When the end client confirmed the order for this account. order_received_by: description: Who took that confirmation, by Moment user reference or by name. allOf: - $ref: '#/components/schemas/InvestmentAdvisorRepresentative' OrderType_2: type: string enum: - limit - rfq_response - market - advisor_bw - quote_wanted - ioi x-enumNames: - OrderTypeLimit - OrderTypeRFQResponse - OrderTypeMarket - OrderTypeAdvisorBW - OrderTypeQuoteWanted - OrderTypeIOI default: limit example: limit description: 'Represents the types of orders Moment currently supports. - limit - rfq_response - market - advisor_bw - quote_wanted - ioi' title: OrderType AccountConfiguration: title: Account Configuration type: object description: Account configuration for the allocation properties: prime_brokerage_enabled: type: boolean description: Whether the prime brokerage is enabled for the account. x-go-type-skip-optional-pointer: true household_id: type: string description: The ID of the household for the account. x-go-type-skip-optional-pointer: true x-go-name: HouseholdID manager_id: type: string description: 'The accounts-service platform advisor for the account: an account group, not a person. The person credited with the trade is iar. ' x-go-type-skip-optional-pointer: true x-go-name: ManagerID custodian_advisor_id: description: 'The custodian''s own identifier for the manager_id account group at this custodian: the rep code. Stored as sent. ' type: string x-go-type-skip-optional-pointer: true x-go-name: CustodianAdvisorID custodian_id: $ref: '#/components/schemas/CustodianID' booking_type: allOf: - $ref: '#/components/schemas/BookingType_2' x-go-type-skip-optional-pointer: true custodian_tax_lot_id: description: The tax lot ID assigned by the custodian. Deprecated, use lot_instruction.custodian_tax_lot_id instead. type: string deprecated: true is_discretionary: description: Whether the introducing broker exercised discretion on behalf of the end client on this particular order. type: boolean is_solicited: description: Whether the order was solicited. Must be unset if the order is discretionary. type: boolean is_natural_person: description: 'Whether the account is held by a natural person rather than a legal entity. Omit when the holder cannot be classified, as a trust or an estate may not be. An attestation control can be limited to the accounts this is true of. ' type: boolean lot_instruction: $ref: '#/components/schemas/LotInstruction' iar: allOf: - $ref: '#/components/schemas/InvestmentAdvisorRepresentative' x-go-name: IAR Fee: title: Fee type: object description: The fee to apply to the order. properties: fee_type: $ref: '#/components/schemas/FeeType' fee_amount_type: $ref: '#/components/schemas/FeeAmountType' recipient_id: type: string description: Unique ID of the recipient of the fee. x-go-name: RecipientID x-go-type-skip-optional-pointer: true recipient_type: $ref: '#/components/schemas/RecipientType' fee_amount: description: Fee amount to apply to the order. $ref: '#/components/schemas/Decimal_2' max_fee_amount: description: Maximum fee amount to apply to the order. $ref: '#/components/schemas/NullableDecimal' max_fee_amount_type: $ref: '#/components/schemas/FeeAmountType' fee_name: type: string description: Optional name for the fee, for easier identification. required: - fee_type - fee_amount_type - fee_amount AggressivenessLevel: title: Aggressiveness Level type: string description: 'Execution aggressiveness for a custodian algo. Required by some custodians (e.g. Fidelity); ignored by custodians without an equivalent concept (e.g. Schwab).' enum: - passive - neutral - aggressive x-enumNames: - AggressivenessLevelPassive - AggressivenessLevelNeutral - AggressivenessLevelAggressive ExecutionInstruction: title: Execution Instruction type: object description: Instructions for the EMS on how to execute the order. required: - client_execution_order_id - protocol - strategy - quantity properties: client_execution_order_id: type: string description: The client-provided ID for the execution order. example: 01JBFQZXMWZ08XDMTG08P2Z4XT protocol: $ref: '#/components/schemas/Protocol' strategy: $ref: '#/components/schemas/Strategy' quantity: $ref: '#/components/schemas/OrderSize_2' limit_price: $ref: '#/components/schemas/LimitPrice' rfq_metadata: $ref: '#/components/schemas/RFQMetadata' suppress_pmp_check: type: boolean description: Flag to toggle if the Prevailing Market Price (PMP) check should be suppressed for the execution order. default: false x-go-type-skip-optional-pointer: true venue_trader_info: type: array description: A list of venue trader info for the execution order. items: $ref: '#/components/schemas/VenueTraderInfo' x-go-type-skip-optional-pointer: true rfq_protocol_parameters: type: array description: A list of RFQ protocol parameters for the execution order. items: $ref: '#/components/schemas/RFQProtocolParameters' x-go-type-skip-optional-pointer: true execution_criteria: $ref: '#/components/schemas/ExecutionCriteria' exit_criteria: $ref: '#/components/schemas/ExitCriteria' venue_mpid: type: string description: MPID of the venue to trade on. skip_lob_quotes: type: boolean description: Only for auto-RFQ orders, flag to determine whether to skip matching against the limit order book quotes and only match against RFQ quotes. Must be set if the protocol is `request_for_quote` and the strategy is `auto_ex`. default: false x-go-type-skip-optional-pointer: true all_or_none: type: boolean description: Flag to indicate whether the order should be executed as an all-or-none order. If set to true, the order will only be executed if the entire quantity can be filled. x-go-type-skip-optional-pointer: true trader_profile: $ref: '#/components/schemas/TraderIDs' description: The trader assigned to this execution instruction. ruleset_metadata: $ref: '#/components/schemas/RulesetMetadata' description: Metadata about the ruleset that auto generated the order. is_counter: type: boolean description: Flag to indicate if the order is a counter default: false x-go-type-skip-optional-pointer: true counter_expires_after: type: - string - 'null' description: Duration in seconds until which the counter is valid external_trade_report: $ref: '#/components/schemas/ExternalTradeReport' quotes_snapshot: $ref: '#/components/schemas/QuotesSnapshot' algo_parameters: $ref: '#/components/schemas/AlgoParameters' time_in_force: description: Time in force for the execution instruction. Acceptable values are `day`, `good_till_date`, `at_the_opening`, and `at_the_close`. Absence is interpreted as `day`. allOf: - $ref: '#/components/schemas/TimeInForce' x-go-type-skip-optional-pointer: true CustodianID: type: string description: The Moment-provided ID of the custodian for the order. Custodians must be enabled per risk group. example: 01JBFPWZQV2D0D7M2P851G6AGM title: Custodian ID x-go-type-skip-optional-pointer: true x-go-name: CustodianID LotInstruction: title: Lot Instruction type: object description: 'Identifies a specific tax lot so the booking gateway can emit lot-level VSP instructions to custodians. Buy-side flows leave it unset; when set, all three fields are populated from the same lot record. ' properties: custodian_tax_lot_id: description: The tax lot ID assigned by the custodian. type: string x-go-type-skip-optional-pointer: true lot_trade_date: description: Trade date of the tax lot, YYYYMMDD. type: integer format: int32 x-go-type-skip-optional-pointer: true lot_purchase_price: description: Per-unit purchase price of the tax lot, decimal string. type: string x-go-type-skip-optional-pointer: true RFQProtocolParameters: type: object title: RFQ Protocol Parameters required: - venue_mpid - type - disclosure properties: venue_mpid: type: string description: The MPID of the venue. type: type: string description: The type of the RFQ. enum: - bin - asap disclosure: type: string description: The disclosure for the RFQ. Currently, only `disclosed` is supported. enum: - disclosed - anonymous due_after: type: string format: duration description: Specifies how duration following RFQ creation, after which the RFQ becomes due. example: 20m subject_after: type: string format: duration description: Specifies the duration following the due time (or submission time if no due time is defined) during which quotes are considered subject. expire_after: type: string format: duration description: Specifies the duration following the latest of due time, subject time, or submission time, after which the RFQ expires. RFQMetadata: type: object title: RFQ Metadata description: Metadata related to the RFQ. properties: moment_rfq_id: type: string description: The ID of the RFQ. x-go-type-skip-optional-pointer: true contra_quote_id: type: string description: The ID of the contra quote for the RFQ. x-go-type-skip-optional-pointer: true RecipientType: title: Recipient Type type: string description: The type of recipient for the fee. enum: - executing_broker - introducing_broker - advisor - customer x-enumNames: - RecipientTypeExecutingBroker - RecipientTypeIntroducingBroker - RecipientTypeAdvisor - RecipientTypeCustomer ExtendedHours: description: 'Deprecated. The value provided here is ignored — acceptance hours are determined by the instrument''s asset class: fixed income orders are accepted from 7:30 am to 5:30 pm ET, orders for other asset classes from 7:30 am to 4:00 pm ET. The field is kept for backwards compatibility and will be removed in a future release. ' type: boolean default: false deprecated: true x-go-type-skip-optional-pointer: true OfferingID: description: The ID of the new-issue offering this order is placed against. Required for `ioi` orders; ignored for all other order types. type: string example: 01JBFQZXMWZ08XDMTG08P2Z4XT title: Offering ID VenueTraderInfo: title: Venue Trader Info type: object required: - venue_mpid - custodian_id - venue_trader_id - custodian_account_at_venue properties: venue_mpid: type: string description: The MPID of the venue. x-go-name: VenueMPID custodian_id: type: string description: The ID of the custodian for the venue trader info. x-go-name: CustodianID venue_trader_id: type: string description: The ID of the venue trader. x-go-name: VenueTraderID custodian_account_at_venue: type: string description: The ID of the custodian account for the venue trader. PovParameters: title: POV Parameters type: object description: 'Parameters for a percentage-of-volume (POV) algo. The algo participates in the market at a target percentage of the traded volume, speeding up or slowing down as market volume changes rather than working to a fixed time schedule.' required: - target_participation_percent properties: target_participation_percent: type: integer format: int64 description: Target participation rate of market volume, as a percent (e.g. 20 = 20%). max_participation_percent: type: - integer - 'null' format: int64 description: Hard ceiling on participation, distinct from the target percent. start_time: type: string format: date-time description: Start of the absolute window to work the order. end_time: type: string format: date-time description: End of the absolute window to work the order. would: $ref: '#/components/schemas/WouldParameters' participate_opening_auction: type: boolean description: Whether the algo should participate in the opening auction. default: false x-go-type-skip-optional-pointer: true participate_closing_auction: type: boolean description: Whether the algo should participate in the closing auction. default: false x-go-type-skip-optional-pointer: true aggressiveness: $ref: '#/components/schemas/AggressivenessLevel' ManualRejectID: description: The ID of the manual rejection request. The API user will subsequently receive either a `system_update` event (if the rejection fails) or an `order_update` event (if rejected), both including this ID. type: string example: 01JBFQZXMWZ08XDMTG08P2Z4XT title: Manual Reject ID APIError: type: object description: Standard error response format returned by all API endpoints. properties: error: type: string description: Human-readable error message describing what went wrong. error_details: description: Additional structured information about the error. x-go-type: any x-go-type-skip-optional-pointer: true x-oapi-codegen-extra-tags: exhaustruct: optional error_type: $ref: '#/components/schemas/ErrorType' required: - error - error_type RulesetMetadata: type: object title: Ruleset Metadata description: Metadata about the ruleset that auto generated the order. required: - proposal_id - tree_version_id properties: proposal_id: type: string description: The ID of the proposal. tree_version_id: type: string description: The version ID of the ruleset that auto generated the order. IsParameters: title: IS Parameters type: object description: 'Parameters for an implementation-shortfall (arrival price) algo. The algo balances market impact against timing risk to minimize slippage versus the arrival price, working more or less aggressively based on the aggressiveness level. Order type and limit price are carried on the order itself, not in these parameters.' properties: start_time: type: string format: date-time description: Start of the absolute window to work the order. end_time: type: string format: date-time description: End of the absolute window to work the order. would: $ref: '#/components/schemas/WouldParameters' participate_opening_auction: type: boolean description: Whether the algo should participate in the opening auction. default: false x-go-type-skip-optional-pointer: true participate_closing_auction: type: boolean description: Whether the algo should participate in the closing auction. default: false x-go-type-skip-optional-pointer: true aggressiveness: $ref: '#/components/schemas/AggressivenessLevel' max_participation_percent: type: - integer - 'null' format: int64 description: Hard ceiling on participation of market volume, as a percent (e.g. 20 = 20%). NullableDecimal: title: Nullable Decimal oneOf: - type: number - type: string description: Nullable Decimal number. x-go-type: decimal.Decimal x-go-type-import: path: github.com/shopspring/decimal Annotation: description: Client-provided custom metadata for the order. type: string maxLength: 1024 title: annotation IDs: description: A list of order ID and allocation ID pairs created from the bulk submission type: object properties: allocation_id: description: The ID of the allocation type: string client_order_id: description: Client-provided unique ID for the order type: string order_id: description: The ID of the order type: string required: - order_id - client_order_id BookingType_2: type: string title: BookingType description: The booking type for the account. enum: - cash - margin x-enumNames: - BookingTypeCash - BookingTypeMargin IntroducingBrokerID: description: The ID of the introducing broker placing the order. If not specified, the organization associated with the API key will be used. type: string AllocationRequest: title: Allocation Request type: object required: - strategy - client_allocation_id - account_allocations properties: strategy: type: string enum: - fifo_without_averaging - fifo_with_averaging - pro_rata_with_averaging description: 'Strategy for allocation. Determines how the block''s filled quantity is distributed across requested accounts. - `fifo_without_averaging`: allocates on a first-in, first-out basis without averaging; preserves individual trade prices per allocation. - `fifo_with_averaging`: allocates first-in, first-out and applies the block''s average fill price to each allocation. - `pro_rata_with_averaging`: allocates pro-rata across requested accounts and applies the block''s average fill price. Typically used for equity and ETF block orders. **RIA accounts must use `fifo_without_averaging`.** The averaging strategies (`fifo_with_averaging`, `pro_rata_with_averaging`) require a principal/averaging trading account to average executions before they are booked to client accounts. RIAs trade in an agency capacity and must report the actual street-execution prices and quantities to their custodian (e.g. Schwab), so each allocation has to match a real executed trade. Because there is no averaging account to absorb the difference, averaged allocation is not available to RIAs — only the non-averaging FIFO strategy, which preserves the true per-trade execution prices, is supported. ' client_allocation_id: type: string description: Client-provided ID for the allocation x-go-name: ClientAllocationID account_allocations: type: array description: Account allocations for an individual order items: $ref: '#/components/schemas/AllocationAccountRequest' AlgoParameters: title: Algo Parameters type: object description: 'Execution parameters for custodian algos. Exactly one of `twap`, `vwap`, `pov`, or `is` must be set. Only supported on the custodian protocol with the manual strategy. Fields or values not accepted by a given custodian are rejected downstream.' properties: twap: $ref: '#/components/schemas/TwapParameters' vwap: $ref: '#/components/schemas/VwapParameters' pov: $ref: '#/components/schemas/PovParameters' is: $ref: '#/components/schemas/IsParameters' PostOrderAllocationRequest: type: object properties: allocations: $ref: '#/components/schemas/AllocationRequest' client_order_id: $ref: '#/components/schemas/ClientOrderID' isin: description: ISIN of the instrument being allocated. Its asset class is resolved from refdata and selects the booking configuration. type: string title: ISIN risk_group_id: $ref: '#/components/schemas/RiskGroupID' required: - client_order_id - risk_group_id - allocations - isin title: PostOrderAllocationRequest ManualApprovalID: description: The ID of the manual approval request. The API user will subsequently receive either a `system_update` event (if the approval fails) or an `order_update` event (if approved), both including this ID. type: string example: 01JBFQZXMWZ08XDMTG08P2Z4XT title: Manual Approve ID PostOrderResponse: type: object properties: allocation_id: description: Unique, Moment-generated ID for the allocation. type: string example: 01JBFQQB1Z00Q4KWR7MY4V6M4W title: Allocation ID id: $ref: '#/components/schemas/OrderID' required: - id title: PostOrderResponse QuotesSnapshot: type: object required: - isin - bids - asks - organization_id properties: isin: type: string organization_id: type: string bids: type: array items: $ref: '#/components/schemas/SnapshotQuote' asks: type: array items: $ref: '#/components/schemas/SnapshotQuote' TraderIDs: title: Trader IDs type: object description: the IDs of a trader required: - user_id properties: user_id: type: string description: the Moment ID for this user x-go-name: UserID bloomberg_id: type: string description: the registered Bloomberg ID for this user x-go-name: BloombergID x-go-type-skip-optional-pointer: true WouldParameters: title: Would Parameters type: object description: 'Models the "I-Would" trigger: a price at which the algo becomes aggressive / completes.' properties: price: $ref: '#/components/schemas/Price' trigger_quantity: $ref: '#/components/schemas/OrderSize_2' trigger_percent: type: - integer - 'null' format: int64 description: Percentage of the order quantity to complete when the trigger price is reached. CounterExpiryTime: description: The time until which the counter is valid. type: string format: date-time Order: description: Each order has a unique identifier generated by Moment. The ID will be returned when an order is placed and can be used to check the status of the order via the `GET /v1/trading/order/{id}/` endpoint. Updates on open orders at Moment will also be sent over the real-time API, which is the recommended method of maintaining order state. type: object properties: account_booking_type: description: Deprecated, will be removed soon. Use account_configuration.booking_type instead. allOf: - $ref: '#/components/schemas/BookingType_2' deprecated: true x-go-type-skip-optional-pointer: true account_configuration: $ref: '#/components/schemas/AccountConfiguration' account_id: description: Unique ID of user account type: - string - 'null' example: 5f7b9c9f-7b9c-9f7b-9c9f-7b9c9f7b9c9f x-go-type-skip-optional-pointer: true all_or_none: $ref: '#/components/schemas/AllOrNone' allocations: description: Allocations for the order $ref: '#/components/schemas/AllocationRequest' amount: $ref: '#/components/schemas/OrderSize_2' annotation: $ref: '#/components/schemas/Annotation' booking_instructions: description: Client-provided information to configure trade booking for the order, as a map from string to string. Passing a multi-layer JSON map or something other than "string":"string" key-value pairs will result in an error. The specific contents of this field should be determined in conjunction with the back-office integration. type: object example: booking_counterparty_id: some_counterparty_id booking_capacity: some_booking_capacity additionalProperties: type: string title: booking_instructions x-go-type-skip-optional-pointer: true bypass_auto_execution: description: Flag to indicate if auto execution rules should be bypassed type: boolean default: false x-go-type-skip-optional-pointer: true client_order_id: $ref: '#/components/schemas/ClientOrderID' counter_expiry_time: description: The time until which the counter is valid $ref: '#/components/schemas/CounterExpiryTime' custodian_id: description: 'The Moment-provided custodian ID that the corresponding account belongs to. For organizations with CTM enabled, this field should be left empty for both single and block fixed-income orders. For brokerages firms, `custodian_id` and `account_id` are both required to identify the inventory account. For RIAs, this field is optional as each account allocation has its own custodian_id field. When available, it is recommended to populate this field.' type: string title: Custodian ID x-go-name: CustodianID x-go-type-skip-optional-pointer: true execution_instructions: description: A list of execution instructions for the order type: array items: $ref: '#/components/schemas/ExecutionInstruction' x-go-type-skip-optional-pointer: true expire_date: description: Date of order expiration (last day the order can trade), always expressed in terms of the local market date. The maximum expire_date is 90 calendar days out. If the expire_date does not fall on a trading day, the next trading day is automatically selected. type: - integer - 'null' format: int64 explicit_cancelation_required: description: 'Deprecated. The value provided here is ignored — orders are always treated as if explicit cancellation is required. The field is kept for backwards compatibility and will be removed in a future release. ' type: boolean default: false deprecated: true x-go-type-skip-optional-pointer: true extended_hours: $ref: '#/components/schemas/ExtendedHours' fees: description: "Custom fees to be applied to the order. If provided, this list overrides the default fees defined in the system.\n\nFor each fee recipient based on the trade structure, a separate fee object should be included.\nFor example, in a trade flow like:\n\n Street <-> Executing Broker <-> Introducing Broker <-> Customer\n\nwhere both brokers are charging fees, you would specify:\n\n \"fees\": [\n {\n \"fee_type\": \"markup\",\n \"fee_amount_type\": \"percentage_of_par\",\n \"fee_amount\": 0.01,\n \"recipient\": \"\"\n },\n {\n \"fee_type\": \"markup\",\n \"fee_amount_type\": \"percentage_of_par\",\n \"fee_amount\": 0.05,\n \"recipient\": \"\"\n }\n ]\n" type: array items: $ref: '#/components/schemas/Fee' x-go-type-skip-optional-pointer: true for_block_trade: description: Flag to indicate if the order is for a block trade, used for post order allocation type: - boolean - 'null' group_members: description: List of group members for the order type: array items: $ref: '#/components/schemas/GroupMember' x-go-type-skip-optional-pointer: true ib_id: description: The introducing broker ID to use for this specific order. If not specified, will use the introducing broker ID from the bulk request. $ref: '#/components/schemas/IntroducingBrokerID' instrument_id: $ref: '#/components/schemas/InstrumentID_2' is_counter: description: Flag to indicate if the order is a counter type: boolean default: false x-go-type-skip-optional-pointer: true is_group_order: description: Flag to indicate if the order is a group order type: boolean default: false x-go-type-skip-optional-pointer: true limit_price: $ref: '#/components/schemas/LimitPrice' liquidate_fund_position: description: Flag to instruct the custodian to sell the entire position rather than just the quantity on the order. Fund sells only and notional. The notional dollar value should be the current notional value of the position. type: boolean default: false x-go-type-skip-optional-pointer: true metadata: description: Custom metadata for the order. This can be used to store additional information about the order that is not covered by the other fields. The keys and values are both strings. type: - object - 'null' example: trader_assignment: John Doe trader_email: john.doe@trading.com additionalProperties: type: string x-go-type-skip-optional-pointer: true offering_id: $ref: '#/components/schemas/OfferingID' order_rfq_ids: description: A list of existing RFQ IDs to associate with this order. type: array items: type: string review_reason: description: Reason for why the order requires review. Only applicable when review_required is true. type: string default: '' x-go-type-skip-optional-pointer: true review_required: description: Flag to indicate if the order requires manual review before execution. type: boolean default: false x-go-type-skip-optional-pointer: true risk_group_id: description: The risk group ID to use for this specific order. If not specified, will use the risk group ID from the bulk request. $ref: '#/components/schemas/RiskGroupID' settlement_date: description: The targeted settlement date for the order in the format of YYYYMMDD, like 20090101 type: - integer - 'null' format: int64 side: $ref: '#/components/schemas/OrderSide' time_in_force: description: Time in force for the order. Acceptable values are `day` and `good_till_date`. Absence is interpreted as `day`. allOf: - $ref: '#/components/schemas/TimeInForce' x-go-type-skip-optional-pointer: true type: $ref: '#/components/schemas/OrderType_2' required: - instrument_id - amount - side - type - client_order_id title: Order Request AllocationID: description: Unique, Moment-generated ID for the allocation. type: string example: 01JBFQQB1Z00Q4KWR7MY4V6M4W title: Allocation ID OrderID: description: Unique, Moment-generated ID for the order. type: string example: 01JBFQZXMWZ08XDMTG08P2Z4XT title: Order ID x-refined-from: - moment-account-management-api-openapi.yml - moment-orders-api-openapi.yml x-provenance: method: searched source: https://docs.moment.com/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://docs.moment.com/reference/addfixipallowlist.md - https://docs.moment.com/reference/getfixipallowlist.md - https://docs.moment.com/reference/removefixipallowlist.md - https://docs.moment.com/reference/updateorganizationipallowlist.md merge: pages: 4 deduped: 7 conflicts_kept_first: 0