Returns Earn holdings by product, including product identity, holding quantities and yield-related fields.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Returns the product-centric Earn view: one row for each Earn product holding in the API key's scope. It supports flexible, fixed and fund products.
Use this endpoint when a customer needs to see what they bought, the product identity, term and yield-related fields. Use Get Earn Asset Summary instead when the question is “how much of each currency is held across all Earn products?”
Rate limit: 10 requests per minute per API key. This endpoint is not paginated.
API key access
This is a read-only LTP Open API endpoint. READ permission is sufficient; TRADE, TRANSFER and WITHDRAW are not required.
| API key type | Can call | Returned scope |
|---|---|---|
| Main User Level API key | Yes | Earn product holdings in the main user's API-key scope. |
| Sub-user Level API key | Yes | Only Earn product holdings in that Sub-user's scope. An empty result is valid. |
| Portfolio Level API key (a dedicated RapidX Sub Portfolio key) | No | This user-level asset service does not support Portfolio-scoped API keys. |
| Exchange-native API key | No | This endpoint accepts signed LTP Open API keys only. |
An unsupported API key level is rejected before asset data is read, normally with 2003.
Product-type rules
All product types use the same response shape:
productType | Meaning |
|---|---|
FIXED | Fixed-term Earn product |
FLEXIBLE | Flexible Earn product |
FUND | Fund product |
Fields that do not apply to a product may return "" or null. For example, a flexible product has no fixed term or maturity: term is "" and maturityDate is 0. Use productType to identify the product category.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
quoteCurrency | string | No | Currency used to value every returned product. Accepts USD, BTC or USDT; defaults to USD. It affects valuation only, not product units or shares. |
productType | string | No | Optional filter: FIXED, FLEXIBLE or FUND. Input is case-insensitive; response values are uppercase. Omit it to return every product type. |
productCode | string | No | Optional exact product-code filter. Omit it to return all held products. A product not found in the caller's scope returns 404005. |
hideDust | boolean | No | Defaults to true. When true, products valued below 1 USD are omitted. Set false for a complete low-value reconciliation. |
Response fields
data contains totalValue, quoteCurrency, exchangeRate, updatedAt and list. Monetary values, quantities, rates and shares are decimal strings. Do not convert them to binary floating-point numbers.
| Field | Type | Description |
|---|---|---|
code | integer | Application result code. 200 means success. |
message | string | Result message. |
data.totalValue | string | Aggregate valuation of the returned product holdings in data.quoteCurrency. |
data.quoteCurrency | string | Valuation currency used in this response. |
data.exchangeRate | string | USD value of one unit of data.quoteCurrency; "1" for USD. |
data.updatedAt | integer | Asset snapshot time as a Unix timestamp in milliseconds. |
data.list | array | Product-holding rows. An empty array is a normal successful response when there are no matching holdings. |
Field in data.list[] | Type | Description |
|---|---|---|
productType | string | Product category: FIXED, FLEXIBLE or FUND. |
productName | string | Human-readable product name. |
productCode | string | Product identifier. Use it when filtering or reconciling the same product across calls. |
currency | string | Underlying currency symbol for the product holding. |
currencyDetails | object | Currency metadata: id (currency reference ID), iconUrl, currencyName, slug, referenceAssetId (reference currency ID) and multiplier (conversion ratio to the reference currency). |
quoteCurrency | string | Currency used to value this product row. |
totalValue | string | Current holding value in quoteCurrency. |
apr | string or null | Annual rate expressed as a decimal ratio; for example, "0.025" means 2.5%. "" or null when unavailable. |
thirtyDayApy | string or null | Annualised performance measure over the most recent 30-day period, when applicable. |
holdShares | string or null | Number of held shares, when the product uses share accounting. |
nav | string or null | Net asset value per share, when the product uses NAV accounting. |
itemId | integer or null | Holding-item identifier; 0 or null when unavailable. Use productCode to identify a product. |
term | string or null | Product term supplied by the product service, such as a fixed-term duration. |
amount | string or null | Underlying holding quantity. |
accumPnl | string or null | Accumulated profit and loss or earnings supplied for the holding. |
interest | string or null | Interest amount supplied for the holding, when applicable. |
fundType | integer or null | Internal fund classification for products that expose it. |
fundSubtype | integer or null | Internal fund sub-classification for products that expose it. |
renewalStatus | boolean or null | Automatic renewal state when applicable. A null value means it is not supplied for that product. |
maturityDate | integer or null | Maturity time as a Unix timestamp in milliseconds. 0 or null means no maturity date; do not interpret 0 as a date. |
Interpretation notes
aprandthirtyDayApyare different reported measures; do not substitute one for the other.holdSharesandnavapply to share/NAV products and can be""ornullfor other products. An empty string is not a numeric zero.totalValueis a valuation;amountis the underlying holding quantity. They use different units and must not be compared directly.
Relevant errors
| Code | When it occurs | What to do |
|---|---|---|
404001 | quoteCurrency is not supported. | Use USD, BTC or USDT. |
404003 | productType is not FIXED, FLEXIBLE or FUND. | Use a supported value or omit the filter. |
404005 | The selected productCode is not found in the caller's scope. | Use a product code returned by this endpoint or remove the filter. |
404006 | Earn asset data is temporarily unavailable. | Retry after a short delay. |
100429 | The API key exceeds the rate limit. | Back off before retrying. |
