OpenAPI 3.0.0raw.githubusercontent.com2026-08-12123173410.4 KB

0574c98df104

Rfqs

Create RFQ

Creates an RFQ for the authenticated account.

RFQ creation is asynchronous. Subscribe to the private WebSocket channel rfq before sending the request. A successful HTTP response is 202 Accepted and contains a Paradex request_id; it confirms only that the command was queued. The later WebSocket RESULT event with the same request_id reports whether the venue accepted the command. On success, the event's top-level rfq_id is the venue-issued identifier used by the read, execute, cancel, and filtered-subscription APIs.

The request accepts up to 25 legs. It must contain at least one strategy leg, represented by omitting price. At least one strategy leg must have side=BUY, and at least one must have ratio=1. A fixed-price hedge leg includes a strictly positive price. All quantities and ratios are positive decimal strings. Every leg market must exist on Paradex and be available for RFQ. Each fixed hedge price must be an exact multiple of that market's minimum price increment. The strategy quantity must be at least the largest minimum block size among its strategy legs.

The platform selects eligible counterparties; a client-supplied counterparties value is ignored. The optional strategy field is a draft label and is not sent to the venue.

Validation or risk-check failures that occur after queueing are reported by the WebSocket RESULT event.

post/rfqs

Request body

counterpartiesstring[]

Reserved for future use; currently ignored for RFQ creation and drafts

is_anonymousboolean

Whether to hide the taker desk name from RFQ counterparties; ignored for drafts

labelstring

User-defined RFQ label; ignored for drafts

quantitystring required

Positive total strategy size

strategystring

Draft strategy label; maximum 64 bytes and defaults to custom for drafts; ignored on RFQ create

Example request

{
  "is_anonymous": true,
  "label": "my-rfq",
  "legs": [
    {
      "market": "BTC-USD-PERP",
      "price": "30000.00",
      "ratio": "1",
      "side": "BUY"
    }
  ],
  "quantity": "100",
  "strategy": "straddle"
}

Response

Accepted

accepted_atinteger

Unix milliseconds when the request was queued

request_idstring

request_id identifies this request. It is echoed on the RESULT event delivered later on the WebSocket rfq channel, so a client with several requests in flight can match each outcome to the request that caused it. On Create it is the only identifier available until the venue issues the rfq_id.

Example response

{
  "accepted_at": 1640995200000,
  "request_id": "1739923200000000000"
}