> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create RFQ

>  Endpoint for creating a new RFQ. You can have a maximum of 100 open RFQs at a time.



## OpenAPI

````yaml /openapi.yaml post /communications/rfqs
openapi: 3.0.0
info:
  title: Kalshi Trade API Manual Endpoints
  version: 3.34.0
  description: >-
    Manually defined OpenAPI spec for endpoints being migrated to spec-first
    approach
servers:
  - url: https://external-api.kalshi.com/trade-api/v2
    description: Production Trade API server
  - url: https://api.elections.kalshi.com/trade-api/v2
    description: Production shared API server, also supported
  - url: https://external-api.demo.kalshi.co/trade-api/v2
    description: Demo Trade API server
  - url: https://demo-api.kalshi.co/trade-api/v2
    description: Demo shared API server, also supported
security: []
tags:
  - name: api-keys
    description: API key management endpoints
  - name: orders
    description: Order management endpoints
  - name: order-groups
    description: Order group management endpoints
  - name: portfolio
    description: Portfolio and balance information endpoints
  - name: communications
    description: Request-for-quote (RFQ) endpoints
  - name: multivariate
    description: Multivariate event collection endpoints
  - name: exchange
    description: Exchange status and information endpoints
  - name: live-data
    description: Live data endpoints
  - name: markets
    description: Market data endpoints
  - name: milestone
    description: Milestone endpoints
  - name: search
    description: Search and filtering endpoints
  - name: incentive-programs
    description: Incentive program endpoints
  - name: fcm
    description: FCM member specific endpoints
  - name: events
    description: Event endpoints
  - name: structured-targets
    description: Structured targets endpoints
paths:
  /communications/rfqs:
    post:
      tags:
        - communications
      summary: Create RFQ
      description: ' Endpoint for creating a new RFQ. You can have a maximum of 100 open RFQs at a time.'
      operationId: CreateRFQ
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRFQRequest'
      responses:
        '201':
          description: RFQ created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRFQResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - kalshiAccessKey: []
          kalshiAccessSignature: []
          kalshiAccessTimestamp: []
components:
  schemas:
    CreateRFQRequest:
      type: object
      required:
        - market_ticker
        - rest_remainder
      properties:
        market_ticker:
          type: string
          description: The ticker of the market for which to create an RFQ
        contracts:
          type: integer
          description: >-
            Whole-contract count for the RFQ. Use contracts_fp for partial
            contract values; if both are provided, they must match.
          x-go-type-skip-optional-pointer: true
        contracts_fp:
          $ref: '#/components/schemas/FixedPointCount'
          nullable: true
          description: >-
            Fixed-point number of contracts for the RFQ. Supports partial
            contracts in 0.01-contract increments; if contracts is also
            provided, both values must match.
        target_cost_centi_cents:
          type: integer
          format: int64
          description: >-
            DEPRECATED: The target cost for the RFQ in centi-cents. Use
            target_cost_dollars instead.
          deprecated: true
          x-go-type-skip-optional-pointer: true
        target_cost_dollars:
          $ref: '#/components/schemas/FixedPointDollars'
          description: The target cost for the RFQ in dollars
          x-go-type-skip-optional-pointer: true
        target_cost_excludes_fees:
          type: boolean
          description: >-
            Sizes quotes against the target cost as principal only (contracts =
            target cost / price), with your taker fees charged on top of the
            target cost. By default (false) the target cost caps principal plus
            Kalshi fees, and quote sizes are reduced to make room for the fees.
            Only valid together with a target cost.
          x-go-type-skip-optional-pointer: true
        obscure_creator_id:
          type: boolean
          description: >-
            Replace the RFQ creator's public communications ID with a shared
            empty-input SHA-256 hash for other users. Applies to RFQ responses
            and broadcasts, and to quotes before successful execution.
            Successful execution reveals the normal ID in subsequent RFQ
            responses and in the executed quote. Accepting or confirming a quote
            does not reveal the ID. The creator always sees their normal ID. See
            the RFQ guide for the placeholder and visibility rules.
          default: false
          x-go-type-skip-optional-pointer: true
        rest_remainder:
          type: boolean
          description: Whether to rest the remainder of the RFQ after execution
        replace_existing:
          type: boolean
          description: Whether to delete existing RFQs as part of this RFQ's creation
          default: false
          x-go-type-skip-optional-pointer: true
        subtrader_id:
          type: string
          description: The subtrader to create the RFQ for (FCM members only)
          x-go-type-skip-optional-pointer: true
        subaccount:
          type: integer
          description: >-
            The subaccount number to create the RFQ for (direct members only; 0
            for primary, 1-63 for subaccounts)
    CreateRFQResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: >-
            UUID of the newly created RFQ. Pass it unchanged in subsequent
            requests.
    FixedPointCount:
      type: string
      description: >-
        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.
      example: '10.00'
    FixedPointDollars:
      type: string
      description: >-
        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.
      example: '0.5600'
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: string
          description: Additional details about the error, if available
  responses:
    BadRequestError:
      description: Bad request - invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnauthorizedError:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ConflictError:
      description: Conflict - resource already exists or cannot be modified
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    kalshiAccessKey:
      type: apiKey
      in: header
      name: KALSHI-ACCESS-KEY
      description: Your API key ID
    kalshiAccessSignature:
      type: apiKey
      in: header
      name: KALSHI-ACCESS-SIGNATURE
      description: >-
        Base64 signature of the pre-sign text (timestamp + method + path) made
        with the API key's algorithm - RSA-PSS with SHA-256 for RSA keys,
        Ed25519 for Ed25519 keys
    kalshiAccessTimestamp:
      type: apiKey
      in: header
      name: KALSHI-ACCESS-TIMESTAMP
      description: Request timestamp in milliseconds

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.