---
title: "Create Quote"
method: POST
path: "/communications/quotes"
tags: ["communications"]
---

# Create Quote

`POST /communications/quotes`

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/communications/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`

Endpoint for creating a quote in response to an RFQ

## Request body

- CreateQuoteRequest
  - `rfq_id` string, required: The UUID of the RFQ to quote on. Pass the RFQ ID unchanged; malformed IDs return HTTP 400.
  - `yes_bid` 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` 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.
  - `rest_remainder` boolean, required: Whether to rest the remainder of the quote after execution
  - `post_only` boolean: If true, the quote creator's resting order will be cancelled rather than crossed if it would take liquidity. Defaults to false.
  - `subaccount` integer: Optional subaccount number to place the quote under (0 for primary, 1-63 for subaccounts)

## Response `201`

Quote created successfully

- CreateQuoteResponse
  - `id` string, required: UUID of the newly created quote. Pass it unchanged in subsequent requests.

## Other responses

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

## Changes

- **2026-07-31** `a07481be8bf9`: 3 warning
  - removed the optional property `service` from the response with the `400` status
  - removed the optional property `service` from the response with the `401` status
  - removed the optional property `service` from the response with the `500` status
- **2026-05-18** `7e31fc4590e0`: 1 info
  - added the new optional request property `post_only`
- **2026-01-30** `c2d717743574`: 1 warning
  - removed the request property `subtrader_id`
- **2026-01-26** `ea5437268cb9`: 2 info
  - added the new optional request property `subaccount`
  - added the new optional request property `subtrader_id`
- **2025-11-06** `6ad7527f54aa`: 4 breaking, 5 info
  - the request property `no_bid` became required
  - the request property `rest_remainder` became required
  - the request property `rfq_id` became required
  - the request property `yes_bid` became required
  - …5 more

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