Skip to content
UDX
Esc
↑↓navigate↵open⌘Jpreview

List RFQs

Returns a page of the RFQs visible to the caller’s member, optionally filtered: RFQs the member raised and RFQs soliciting quotes from it. Filter by requester_id to one requester — your own rfq_participant_id for RFQs you raised, or another requester’s to watch their solicitations. An RFQ the caller’s member did not raise omits client_rfq_id (the requester’s private correlation id); quote it with createQuote before its expires_at deadline.

GET/rfqs
Authorization
UDX-Access-KeyAPI key · headerrequired
Opaque API key ID.
UDX-Access-TimestampAPI key · headerrequired
Unix time in milliseconds, within 30 seconds of server time.
UDX-Access-SignatureAPI key · headerrequired
Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign `timestamp + METHOD + path`; for requests with a body, append `hex(SHA256(body))`; append `UDX-Idempotency-Key` when it is present.
or
AuthorizationBearer token (JWT) · headerrequired
Bearer token for an active signed-in UDX user.
Query parameters
requester_idRfqParticipantId
Filter by a requester's pseudonymous participant identifier, as carried in requester_id on each RFQ. Use your own rfq_participant_id from GET /users/me to see just the RFQs you raised.
min length 1 · max length 64
tickerTicker
Filter by market ticker (single-leg RFQs).
min length 1 · max length 128
statusRfqStatus
Filter by RFQ status.
Allowed:openclosedrejected
created_afterTimestampRangeAfter
Only return RFQs created after this instant.
max length 40
created_beforeTimestampRangeBefore
Only return RFQs created before this instant.
max length 40
limitinteger
Maximum number of items to return in one page. Defaults to 10 when omitted; must be an integer from 1 to 100. A value outside that range is rejected with 400 rather than silently clamped. A returned next_page_url preserves the effective value.
min 1 · max 100 · default: 10
pagestring
Opaque token identifying the requested page. Clients should not construct or extract this value; follow next_page_url from the previous response unchanged instead.
max length 512
sortstring
Field to sort RFQs by. Defaults to created_at (creation time). The rfq_id is appended as a tie-breaker.
default: "created_at"
Allowed:created_at
orderstring
Sort direction. Defaults to desc. Applies to the default sort field when sort is omitted. Nulls sort last in both directions.
default: "desc"
Allowed:ascdesc
Header parameters
UDX-Versionstring
Dated API version (YYYY-MM-DD). Omit to use the oldest supported version. An unknown version returns `400`.
max length 10
Responses
200A page of the RFQs visible to the caller's member.
rfqsRfq[]required
One page of RFQs.
max items 100
Show properties
Array of Rfq
rfq_idobjectrequired
Exchange-assigned RFQ identifier.
Show properties
object
requester_idobject
The pseudonymous participant identifier of the user who raised this RFQ. Stable across that user's RFQs so makers can correlate repeat requesters; on your own RFQs it equals your `rfq_participant_id` from `GET /users/me`.
Show properties
object
client_rfq_idobject
The requester's correlation id for this RFQ. Present only on RFQs raised by the caller's member; it is the requester's private correlation id on RFQs soliciting the caller.
Show properties
object
legsRfqLeg[]required
The component legs of the RFQ.
min items 1 · max items 100
Show properties
Array of RfqLeg
tickerTickerrequired
A market identifier (ticker) — a human-meaningful natural-key symbol, not a UUID. Unique per market.
min length 1 · max length 128
opposing_sideboolean
Whether this leg takes the side opposite the RFQ (true) or the same side (false, the default).
default: false
sideobject
The side the customer wants to execute. Absent for a two-sided RFQ.
Show properties
object
quantityobject
Number of contracts requested. Present when sized in contracts.
Show properties
object
cash_quantityobject
Size of the RFQ in dollars. Present when sized in cash.
Show properties
object
statusRfqStatusrequired
An RFQ's status. `open` is still soliciting quotes; `rejected` was rejected by the exchange; `closed` is otherwise terminal (the RFQ was accepted, expired, canceled, or otherwise concluded without a trade).
Allowed:openclosedrejected
created_atstring<date-time>
When the RFQ was created. UDX timestamps use RFC 3339; requests require an explicit UTC offset and zero to six fractional digits; responses use UTC with exactly six fractional digits.
max length 40
expires_atstring<date-time>
When the RFQ stops soliciting quotes. A quote must be submitted, accepted, and confirmed within this deadline. UDX timestamps use RFC 3339; responses use UTC with exactly six fractional digits.
max length 40
next_page_urlNextPageURL | nullrequired
Root-relative URL for the next page, including the effective limit, sort, order, filters, and opaque cursor. Follow it unchanged with the same authentication. Null when there are no more items. It never contains credentials or an authority/host.
max length 4096 · matches ^/[^/\s#][^\s#]*$
400The request doesn't conform to this spec.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
401No valid credential was provided.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
403The credential lacks the `read` scope.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
422Too many RFQs match the time range. Narrow `created_after` and `created_before`; active makers may need a shorter range.
typestringrequired
The stable category for an RFQ-history time range that covers too many RFQs.
Allowed:urn:udx:problem:rfq-history-range-too-broad
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
429The member rate limit was exceeded. Wait for `Retry-After`.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
500Something went wrong on UDX's side.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
503Request admission or account setup is unavailable. Retry later.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
Request
curl -X GET "https://{hostname}/rfqs" \
  -H "UDX-Access-Key: API_KEY_ID" \
  -H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
  -H "UDX-Access-Signature: BASE64_SIGNATURE"
Response
{
  "rfqs": [
    {
      "rfq_id": "BKA2QM3T4055",
      "requester_id": "4d127cce3bc675c9",
      "client_rfq_id": "rfq-20260804-001",
      "legs": [
        {
          "ticker": "UDX-EXAMPLE-MARKET",
          "opposing_side": false
        }
      ],
      "side": "buy",
      "quantity": "100",
      "status": "open",
      "created_at": "2026-01-01T00:00:00.000000Z",
      "expires_at": "2026-01-01T00:01:00.000000Z"
    },
    {
      "rfq_id": "BKA2QM3T4099",
      "requester_id": "9a51f00d21be44c7",
      "legs": [
        {
          "ticker": "UDX-EXAMPLE-MARKET",
          "opposing_side": false
        }
      ],
      "side": "sell",
      "quantity": "250",
      "status": "open",
      "created_at": "2026-01-01T00:00:30.000000Z",
      "expires_at": "2026-01-01T00:01:30.000000Z"
    }
  ],
  "next_page_url": null
}