---
title: RFQs
description: Understand how a request for quote solicits pricing from makers, how a quote is accepted, and how last look decides whether the trade completes.
---

A request for quote (RFQ) asks makers to price a trade directly, instead of resting an order on the public order book. Use an RFQ for size, or for a multi-leg strategy without a standing book.

## Takers and Makers

| Role | In one RFQ |
| --- | --- |
| **Taker** | Requests quotes and executes against one. |
| **Maker** | Answers with quotes and decides during last look whether the trade completes. |

## Who Counterparties See

Counterparties never see your user or account identifiers. Makers see an RFQ's requester as `requester_id`; quotes carry that requester ID alongside the quote submitter's `quoter_id`. Both are RFQ participant IDs: stable, opaque pseudonyms that let a counterparty recognize a repeat participant.

Read your own value from [`GET /users/me`](/api-reference/users/getcurrentuser) — with an API key holding the `read` scope, or an interactive session. It never changes, so it is also how you recognize your own RFQs and quotes coming back from the exchange.

## Request a Quote

An RFQ names what to price and how much:

- One market by its ticker, an existing combo (a multi-market strategy with its own ticker), or an ad-hoc list of legs.
- A size in whole contracts (`quantity`) or in dollars (`cash_quantity`). Provide exactly one.
- Optionally a `side`: the side you intend to execute. Omit it to request two-sided pricing.

| RFQ status | Meaning |
| --- | --- |
| `open` | Still soliciting quotes. |
| `closed` | Concluded: accepted, expired, or canceled. |
| `rejected` | Rejected by the exchange. |

See [Create an RFQ](/api-reference/rfqs/createrfq) for the request fields.

## Answer with a Quote

Find the RFQs soliciting your member with [List RFQs](/api-reference/rfqs/listrfqs): it returns every RFQ visible to your member — your own and those requesting your quotes. Each RFQ names its requester by `requester_id` (filter by it to follow one repeat requester) and carries the `expires_at` deadline to quote within; quote promptly if `expires_at` is ever absent.

A quote is single-sided: a bid (`side: buy`) or an offer (`side: sell`) at one price and quantity, keyed by your `client_quote_id`. To quote both sides, submit two quotes with distinct ids. A maker can [cancel a Quote](/api-reference/quotes/cancelquote) while it is open.

See [Create a Quote](/api-reference/quotes/createquote) for the request fields.

## Accept, Confirm, Execute

The taker accepts one quote by trading against it. The accept names the quote's `quote_id` and `rfq_id`, takes the side opposite the quote (buy lifts an offer, sell hits a bid), and must match the quote's price and quantity.

An accepted quote is not a completed trade. Acceptance opens last look, during which the maker can confirm or reject. Confirming executes the trade; rejecting prevents the trade from executing and releases the maker from the quote; **a timeout counts as a reject, so the trade does not execute**.

[Accept a Quote](/api-reference/quotes/acceptquote) returns no body. When the maker [confirms](/api-reference/quotes/confirmacceptedquote) and the trade completes, it appears in [your fills](/api-reference/portfolio/getfills), correlated by the `client_order_id` you supplied on the accept.

| Quote status | Meaning |
| --- | --- |
| `open` | Live and executable. |
| `accepted` | A taker accepted it; last look is running. |
| `confirmed` | The maker confirmed after acceptance. |
| `executed` | The trade completed. |
| `cancelled` | Pulled or expired. |
| `rejected` | Rejected by the maker or the exchange. |
