communications

Create RFQ Batch

Changed on

Request quotes on several combos at once, for example every parlay of a round robin. Each child is an ordinary RFQ on one combo market. Makers quote the whole batch, but each child is accepted from whichever maker quotes it best on your side, so the batch may fill from several makers. Accepting takes every child or none, and the children then execute together as one fill-or-kill: nothing trades unless every child can fill in full. In the rare case that filling one child cancels a maker order another child needed, the batch closes partially executed. Name each child's combo by its market ticker, or by its legs to look up or create the combo in mve_collection_ticker. Size each child with its own contracts_fp or target_cost_dollars, or set one on the batch for every child that has none; every child must be sized the same way, by contracts or by target cost. rest_remainder must be false, and FCM members cannot create RFQ batches yet (403 rfq_batch_unavailable). Makers also see each child as an ordinary RFQ, with rfq_batch_id set, and can quote it as a single RFQ; its best quote counts toward the batch's.

post/communications/rfq_batches

Request

  • Base URL
    https://external-api.kalshi.com/trade-api/v2
  • URL
    https://external-api.kalshi.com/trade-api/v2/communications/rfq_batches
  • Auth
    API key in header KALSHI-ACCESS-KEY and API key in header KALSHI-ACCESS-SIGNATURE and API key in header KALSHI-ACCESS-TIMESTAMP

Request body

mve_collection_tickerstring

Collection in which children given by selected_markets are looked up or created. Required when any child uses selected_markets.

contracts_fpstring

Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.

target_cost_dollarsstring

Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.

target_cost_excludes_feesboolean

Same as on Create RFQ, applied to every child. Only valid when the children are sized by target cost.

rest_remainderboolean

Must be false. A batch executes as one fill-or-kill, so no child rests a remainder.

replace_existingboolean

Close your oldest open RFQ batches as needed so this one can be created. Single RFQs are never replaced.

obscure_creator_idboolean

Same as on Create RFQ, applied to the batch and every child.

client_batch_idstring

Optional key for this batch, unique among your RFQ batches, including those closed within the last seven days. Reusing one returns HTTP 409.

subtrader_idstring

The subtrader to create the RFQ batch for (FCM members only; FCM members cannot create RFQ batches yet)

subaccountinteger

The subaccount number to create the RFQ batch for (direct members only; 0 for primary, 1-63 for subaccounts)

Example request

{
  "children": [
    {
      "contracts_fp": "10.00",
      "target_cost_dollars": "0.5600"
    }
  ],
  "contracts_fp": "10.00",
  "target_cost_dollars": "0.5600"
}

Response

RFQ batch created successfully

Example response

{
  "rfq_batch": {
    "rfqs": [
      {
        "contracts_fp": "10.00",
        "target_cost_dollars": "0.5600",
        "mve_selected_legs": [
          {
            "yes_settlement_value_dollars": "0.5600"
          }
        ]
      }
    ]
  }
}

Changes

    • info

      added the optional property /// to the response with the status

    • info

      added the new optional request property //

    • info

      added the new optional request property //