---
title: "Get RFQ Batch Quotes"
method: GET
path: "/communications/rfq_batches/{rfq_batch_id}/quotes"
tags: ["communications"]
---

# Get RFQ Batch Quotes

`GET /communications/rfq_batches/{rfq_batch_id}/quotes`

## Request

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

List the batch quotes on an RFQ batch that are visible to you. A maker sees its own batch quote; once the batch is accepted, it lists only the children that maker won. Once the batch is accepted, the batch creator sees each winning maker's batch quote on the children it won. While the batch is open, the creator reads the best quotes across makers with Get RFQ Batch Best Quotes instead.

## Path parameters

- `rfq_batch_id` string, required

## Response `200`

Batch quotes retrieved successfully

- GetRFQBatchQuotesResponse
  - `batch_quotes` RFQBatchQuote[], required: Batch quotes on the RFQ batch visible to you
    - `id` string, required: UUID of the batch quote. Preserve the exact returned string.
    - `rfq_batch_id` string, required: UUID of the RFQ batch this batch quote prices
    - `creator_id` string, required: Public communications ID of the batch quote creator
    - `rfq_creator_id` string, required: Public communications ID of the RFQ batch creator, obscured like Quote.rfq_creator_id
    - `status` 'open' | 'accepted' | 'confirmed' | 'executed' | 'partially_executed' | 'cancelled', required: Status of a batch quote. A partially_executed batch quote executed some children and failed others, which happens only in the rare case that filling one child of the batch cancelled a maker order another child needed.
    - `created_ts` string, date-time, required: Timestamp when the batch quote was created
    - `updated_ts` string, date-time, required: Timestamp when the batch quote was last updated
    - `accepted_side` 'yes' | 'no': The side that was accepted on this maker's children (yes or no)
    - `accepted_ts` string, date-time: Timestamp when the batch quote was accepted
    - `confirmed_ts` string, date-time: Timestamp when the batch quote was confirmed
    - `quotes` Quote[], required: One quote per child RFQ, or once accepted one per child this maker won; match them to children by rfq_id. Each accepted child quote executes as its own trade.
      - `id` string, required: UUID of the quote. Preserve the exact returned string.
      - `rfq_id` string, required: UUID of the RFQ this quote is responding to.
      - `creator_id` string, required: Public communications ID of the quote creator
      - `rfq_creator_id` string, required: Public communications ID of the RFQ creator (pseudonymous). When obscure_creator_id is enabled, other users receive the shared placeholder "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" (SHA-256 of empty input). The creator sees their normal ID. After this quote executes successfully, its counterparty sees the normal public communications ID.
      - `market_ticker` string, required: The ticker of the market this quote is for
      - `contracts_fp` string, required: 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.
      - `yes_bid_dollars` string, required: 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.
      - `no_bid_dollars` string, required: 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.
      - `created_ts` string, date-time, required: Timestamp when the quote was created
      - `updated_ts` string, date-time, required: Timestamp when the quote was last updated
      - `status` 'open' | 'accepted' | 'confirmed' | 'executed' | 'cancelled', required: Current status of the quote
      - `accepted_side` 'yes' | 'no': The side that was accepted (yes or no)
      - `accepted_ts` string, date-time: Timestamp when the quote was accepted
      - `confirmed_ts` string, date-time: Timestamp when the quote was confirmed
      - `executed_ts` string, date-time: Timestamp when the quote was executed
      - `cancelled_ts` string, date-time: Timestamp when the quote was cancelled
      - `rest_remainder` boolean: Whether to rest the remainder of the quote after execution
      - `post_only` boolean: Whether the quote creator's order is post-only (visible when the caller is the quote creator)
      - `cancellation_reason` string: Reason for quote cancellation if cancelled
      - `creator_user_id` string: User ID of the quote creator (private field)
      - `rfq_creator_user_id` string: User ID of the RFQ creator (private field)
      - `rfq_target_cost_dollars` string: 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_fees` boolean: True when the RFQ's target cost is principal-only and the contracts-offered sizes were computed without reserving taker fees (fees are charged on top of the target cost).
      - `rfq_creator_order_id` string: Order ID for the RFQ creator (private field)
      - `creator_order_id` string: Order ID for the quote creator (private field)
      - `creator_subaccount` integer: Subaccount number of the quote creator (visible when the caller is the quote creator)
      - `rfq_creator_subaccount` integer: Subaccount number of the RFQ creator (visible when the caller is the RFQ creator)
      - `yes_contracts_fp` string: 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.
      - `no_contracts_fp` string: 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.
    - `rest_remainder` boolean: Whether to rest the remainder of each child quote after execution (visible to the batch quote creator)
    - `post_only` boolean: Whether the batch quote creator's orders are post-only (visible to the batch quote creator)
    - `creator_user_id` string: User ID of the batch quote creator (private field)
    - `creator_subaccount` integer: Subaccount number of the batch quote creator (visible to the batch quote creator)
    - `rfq_creator_user_id` string: User ID of the RFQ batch creator (private field)
    - `rfq_creator_subaccount` integer: Subaccount number of the RFQ batch creator (visible to the RFQ batch creator)

## Other responses

- `400`: Bad request - invalid input
- `401`: Unauthorized - authentication required
- `404`: Resource not found
- `500`: Internal server error

## Changes

- **2026-10-21** `f060c10fe3ab`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/communications/rfq_batches/:rfq_batch_id/quotes/get.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
