
As part of ongoing product enhancements, we are announcing an update to the GET /api/v1/user/csa endpoint. The endpoint will be updated to return all active CSA loans held against an account, replacing the previous single-entry response.
Effective Date and Time: 11 June 2026, 06:00 UTC
The GET /api/v1/user/csa endpoint previously returned a single object or `204 No Content`. It will now always return a `200 OK` status with a wrapper object containing an array.
Please refer to the example API response changes below:
{ "csaID": "4e0ff949-7b31-1a85-a41c-6461d7d8197d", "currency": "USDT", "csaStatus": "New", ... }
{ "csas": [ { "csaID": "4e0ff949-7b31-1a85-a41c-6461d7d8197d", "currency": "USDT", "csaStatus": "New", ... }, { "csaID": "d2877e04-7004-d1b7-4e28-41f798ed5961", "currency": "XBt", "csaStatus": "New", ... } ] }
When no active CSAs exist for an account, the endpoint will return `200 OK` with an empty array rather than `204 No Content`:
{ "csas": [] }
If an account holds more than one active CSA loan (one per collateral currency), the endpoint will now return all of them.
The csaStatus field will now reflect the full loan lifecycle. Canceled and Rejected loans are excluded from the response. All other fields (csaID, account, currency, amount, mmRatioMarginCall, maintMarginRatio, etc.) remain unchanged.
Possible values include:
Value | Meaning
|
New | Loan is active |
PendingNew | Loan activation in progress |
MarginCall | Account is in margin call |
Liquidated | Loan has been liquidated |
Replaced | Loan was amended, superseded by a new entry |
PendingCancellation | Cancellation in progress |
Clients consuming the GET /api/v1/user/csa endpoint should:
Read `response.csas` as an array rather than the response root directly
Handle `200` with `csas: []` instead of `204`
If holding a single-currency CSA, read `csas[0]` for equivalent behaviour
If holding multiple CSAs, iterate over all entries