---
title: "Get RFQs"
method: GET
path: "/communications/rfqs"
tags: ["communications"]
---

# Get RFQs

`GET /communications/rfqs`

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/communications/rfqs`
- 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 RFQs. Pass pagination cursors back unchanged. A malformed cursor or invalid creator_user_id UUID returns HTTP 400. Use user_filter=self to filter by the authenticated user.

## Query parameters

- `cursor` string
- `event_ticker` string
- `market_ticker` string
- `subaccount` integer
- `limit` integer
- `status` string
- `creator_user_id` string
- `user_filter` 'self': Omit or leave empty to return all results. Use `self` to filter by the authenticated user.

## Response `200`

RFQs retrieved successfully

- GetRFQsResponse
  - `rfqs` RFQ[], required: List of RFQs matching the query criteria
    - `id` string, required: UUID of the RFQ. Preserve the exact returned string.
    - `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 successful quote execution, subsequent RFQ responses show the normal public communications ID to all viewers.
    - `market_ticker` string, required: The ticker of the market this RFQ 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.
    - `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 target cost is principal-only and quote sizes are computed without reserving taker fees (fees are charged on top).
    - `status` 'open' | 'closed', required: Current status of the RFQ (open, closed)
    - `created_ts` string, date-time, required: Timestamp when the RFQ was created
    - `mve_collection_ticker` string: Ticker of the MVE collection this market belongs to
    - `mve_selected_legs` MveSelectedLeg[]: Selected legs for the MVE collection
      - `event_ticker` string: Unique identifier for the selected event
      - `market_ticker` string: Unique identifier for the selected market
      - `side` string: The side of the selected market
      - `yes_settlement_value_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.
    - `rest_remainder` boolean: Whether to rest the remainder of the RFQ after execution
    - `cancellation_reason` string: Reason for RFQ cancellation if cancelled
    - `creator_user_id` string: User ID of the RFQ creator (private field)
    - `creator_subaccount` integer: Subaccount number of the RFQ creator (visible when the caller is the RFQ creator)
    - `cancelled_ts` string, date-time: Timestamp when the RFQ was cancelled
    - `updated_ts` string, date-time: Timestamp when the RFQ was last updated
    - `rfq_batch_id` string: Identifier of the RFQ batch this RFQ is a child of. Omitted for an RFQ outside a batch. A child can be quoted like a single RFQ, with the differences described in [Request for Quote](/getting_started/rfqs#rfq-batch-children).
  - `cursor` string: Cursor for pagination to get the next page of results

## Other responses

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

## Changes

- **2026-10-26** `c3b2035a5d57`: 1 info
  - added the optional property `rfqs/items/rfq_batch_id` to the response with the `200` status
- **2026-10-16** `bd0c218a65b7`: 1 warning
  - for the `query` request parameter `subaccount`, the min was set to `0.00`
- **2026-09-15** `75098a17c536`: 1 info
  - added the non-success response with the status `400`
- **2026-09-08** `c68a2add4c0a`: 1 info
  - added the optional property `rfqs/items/target_cost_excludes_fees` to the response with the `200` status
- **2026-07-31** `a07481be8bf9`: 2 warning
  - removed the optional property `service` from the response with the `401` status
  - removed the optional property `service` from the response with the `500` status

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/communications/rfqs/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)
