List Accounts
Returns the caller’s non-deleted accounts, including accounts whose setup is pending or failed. A key restricted to one account returns only that account.
/portfolio/accountsAuthorization
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).
limitintegerMaximum number of items to return in one page.
pagestringOpaque token identifying the requested page.
sortstringField to sort accounts by.
created_atorderstringSort direction. Applies to the default sort field when sort is omitted. Nulls sort last in both directions.
ascdesc200The current user's non-deleted accounts with active grants.
accountsAccount[]requiredOne page of accounts connected by active grants.
Show propertiesHide properties
AccountidEntityIdrequiredAn exchange-assigned identifier. Treat it as an opaque, stable key with no internal structure.
namestringrequiredHuman-readable name for the account.
statusstringrequiredReadiness of the account for this user.
pendingactivefailedreference_numberstring | nullReference number for accounting.
client_account_idstring | nullrequiredThe identifier you supplied when creating this account.
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 is unavailable.
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/portfolio/accounts" \
-H "UDX-Access-Key: API_KEY_ID" \
-H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
-H "UDX-Access-Signature: BASE64_SIGNATURE"{
"accounts": [],
"next_page_url": null
}{
"accounts": [
{
"id": "6820943174116859281",
"name": "Primary Desk",
"status": "active",
"reference_number": "UDX4839201656",
"client_account_id": null
},
{
"id": "9214170797177585522",
"name": "New Desk",
"status": "pending",
"reference_number": "UDX7051938824",
"client_account_id": null
}
],
"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:request-admission-unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "request admission is temporarily unavailable",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}