List Quotes
Returns a page of the caller’s quotes, optionally filtered. Each quote is single-sided (a bid or an offer) and identifies both RFQ participants with pseudonymous participant IDs.
GET
/quotesAuthorization
UDX-Access-KeyAPI key · headerrequiredOpaque API key ID.
UDX-Access-TimestampAPI key · headerrequiredUnix time in milliseconds, within 30 seconds of server time.
UDX-Access-SignatureAPI key · headerrequiredStandard-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) · headerrequiredBearer token for an active signed-in UDX user.
Query parameters
rfq_idExchangeIdFilter by the RFQ the quotes respond to.
min length 1 · max length 64
tickerTickerFilter by market ticker.
min length 1 · max length 128
statusQuoteStatusFilter by quote status.
Allowed:
openacceptedconfirmedexecutedcancelledrejectedcreated_afterTimestampRangeAfterOnly return quotes created after this instant.
max length 40
created_beforeTimestampRangeBeforeOnly return quotes created before this instant.
max length 40
limitintegerMaximum 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
pagestringOpaque 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
sortstringField to sort quotes by. Defaults to created_at (creation time). The quote_id is appended as a tie-breaker.
default: "created_at"
Allowed:
created_atorderstringSort direction. Defaults to desc. Applies to the default sort field when sort is omitted. Nulls sort last in both directions.
default: "desc"
Allowed:
ascdescHeader parameters
UDX-VersionstringDated 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 caller's quotes.
quotesQuote[]requiredOne page of quotes.
max items 100
Show propertiesHide properties
Array of
Quotequote_idobjectrequiredThe exchange-assigned identifier for this quote. Unique across the exchange, unlike client_quote_id, which is unique only within an account.
Show propertiesHide properties
objectclient_quote_idobjectrequiredThe caller's correlation id for this quote.
Show propertiesHide properties
objectquoter_idobjectThe pseudonymous participant identifier of the user who submitted this quote. Stable across that user's quotes; on your own quotes it equals your `rfq_participant_id` from `GET /users/me`.
Show propertiesHide properties
objectrequester_idobjectThe pseudonymous participant identifier of the user who raised the RFQ this quote responds to. Stable across that user's RFQs; it matches the RFQ's `requester_id`.
Show propertiesHide properties
objectrfq_idobjectrequiredThe RFQ this quote responds to.
Show propertiesHide properties
objecttickerTickerrequiredA market identifier (ticker) — a human-meaningful natural-key symbol, not a UUID. Unique per market.
min length 1 · max length 128
sideobjectrequiredThe side of the quote — `buy` bids, `sell` offers.
Show propertiesHide properties
objectpriceobjectrequiredQuote price in YES price space, in dollars.
Show propertiesHide properties
objectquantityobjectrequiredNumber of contracts offered.
Show propertiesHide properties
objectstatusQuoteStatusrequiredA quote's status: `open` (live), `accepted` (a taker accepted it), `confirmed` (the maker confirmed it after acceptance), `executed` (the trade completed), `cancelled` (pulled/expired), or `rejected`.
Allowed:
openacceptedconfirmedexecutedcancelledrejectedcreated_atstring<date-time>When the Quote 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
next_page_urlNextPageURL | nullrequiredRoot-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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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 quotes match the time range. Narrow `created_after` and `created_before`; active makers may need a shorter range.
typestringrequiredThe stable category for a quote-history time range that covers too many quotes.
Allowed:
urn:udx:problem:quote-history-range-too-broadtitlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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 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
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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}/quotes" \
-H "UDX-Access-Key: API_KEY_ID" \
-H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
-H "UDX-Access-Signature: BASE64_SIGNATURE"const response = await fetch("https://{hostname}/quotes", {
method: "GET",
headers: {
"UDX-Access-Key": "API_KEY_ID",
"UDX-Access-Timestamp": "UNIX_MILLISECONDS",
"UDX-Access-Signature": "BASE64_SIGNATURE"
}
});import requests
response = requests.get(
"https://{hostname}/quotes",
headers={
"UDX-Access-Key": "API_KEY_ID",
"UDX-Access-Timestamp": "UNIX_MILLISECONDS",
"UDX-Access-Signature": "BASE64_SIGNATURE"
},
)Response
{
"quotes": [
{
"quote_id": "BKQ7V2M9T081",
"client_quote_id": "quote-20260804-001",
"requester_id": "4d127cce3bc675c9",
"quoter_id": "9a51f00d21be44c7",
"rfq_id": "BKA2QM3T4055",
"ticker": "UDX-EXAMPLE-MARKET",
"side": "sell",
"price": "0.56",
"quantity": "100",
"status": "open",
"created_at": "2026-01-01T00:00:00.000000Z"
}
],
"next_page_url": null
}{
"title": "Bad Request",
"status": 400,
"detail": "request did not pass validation",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"title": "Unauthorized",
"status": 401,
"detail": "invalid authentication credentials",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"title": "Forbidden",
"status": 403,
"detail": "insufficient permissions",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:quote-history-range-too-broad",
"title": "Unprocessable Entity",
"status": 422,
"detail": "requested quote history is too broad; narrow created_after and created_before; active makers may need a shorter time range",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:member-rate-limit-exceeded",
"title": "Too Many Requests",
"status": 429,
"detail": "this member has temporarily exceeded its request rate",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"title": "Internal Server Error",
"status": 500,
"detail": "internal error",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:request-admission-unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "request admission is temporarily unavailable",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}