List Account RFQs
Returns RFQs submitted from the specified authorized account, including submissions by other users. Terminal RFQs are retained for five minutes after their terminal update is received; older records are omitted.
/accounts/{account_id}/rfqsAuthorization
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.
AuthorizationBearer token (JWT) · headerrequiredBearer token for an active signed-in UDX user.
Header parameters
UDX-VersionstringDated API version (YYYY-MM-DD).
account_idEntityIdrequiredThe account you are authorized to read.
client_rfq_idClientIdFilter by the correlation identifier supplied when creating the RFQ.
tickerTickerFilter by market ticker (single-leg RFQs).
statusRfqStatus[]Filter by one or more statuses.
limitintegerPage size.
pagestringOpaque token identifying the requested page.
200A page of RFQs submitted from the account.
rfqsRfq[]requiredOne page of RFQs.
Show propertiesHide properties
Rfqrfq_idstringPresent on every RFQ except one the exchange rejected before assigning an id; such an RFQ is identified by client_rfq_id alone.
requester_idstringThe participant identifier of the user who created this RFQ.
client_rfq_idstringThe requester's correlation identifier for this RFQ. Present only on RFQs created by the caller's member.
legsRfqLegListrequiredThe component markets and opposing sides that define the RFQ strategy, in the order supplied.
Show propertiesHide properties
RfqLegtickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
opposing_sidebooleanWhether this leg takes the side opposite the RFQ or the same side.
sidestringThe side the customer wants to execute. Absent for a two-sided RFQ.
buysellquantitystringNumber of contracts requested. Present when sized in contracts.
cash_quantitystringSize of the RFQ in dollars. Present when sized in cash.
statusRfqStatusrequiredAn RFQ's status.
openacceptedclosedrejectedrejection_reasonstringWhy the exchange rejected the RFQ. Present only when status is rejected.
market_closedmarket_unknownnot_open_for_quotingexpiredduplicate_client_idexchange_rejectedexpires_atstring<date-time>When the RFQ stops soliciting quotes.
next_page_urlNextPageURL | nullrequiredRoot-relative URL for the next page. Null when there are no more items.
400The request doesn't conform to this spec.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
401No valid credential was provided.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
403The credential lacks the read scope.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
429The member rate limit was exceeded.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
500Something went wrong on UDX's side.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
503Request admission or account setup is unavailable, or the read could not be completed in time; retry.
typestring<uri-reference>requiredA stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.
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.
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.
instancestring<uri-reference>An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
curl -X GET "https://api.underdogexchange.com/accounts/6820943174116859281/rfqs" \
-H "UDX-Access-Key: API_KEY_ID" \
-H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
-H "UDX-Access-Signature: BASE64_SIGNATURE"{
"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",
"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",
"expires_at": "2026-01-01T00:01:30.000000Z"
}
],
"next_page_url": null
}{
"type": "urn:udx:problem:invalid-request-parameters",
"title": "Bad Request",
"status": 400,
"detail": "invalid request parameters",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:unknown-version",
"title": "Bad Request",
"status": 400,
"detail": "unknown UDX-Version \"1999-01-01\"; supported versions: 2026-07-15",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:invalid-authentication-credentials",
"title": "Unauthorized",
"status": 401,
"detail": "invalid authentication credentials",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:insufficient-permissions",
"title": "Forbidden",
"status": 403,
"detail": "insufficient permissions",
"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"
}{
"type": "urn:udx:problem:internal-error",
"title": "Internal Server Error",
"status": 500,
"detail": "internal error",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:projection-unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "account setup is still being completed; retry later",
"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"
}{
"type": "urn:udx:problem:could-not-process-retry",
"title": "Service Unavailable",
"status": 503,
"detail": "could not process request, please retry",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}