## Get user market portfolio `user.market.get_portfolio(straddress, MarketGetPortfolioParams**kwargs) -> MarketGetPortfolioResponse` **get** `/api/v1/users/{address}/markets` Get user market portfolio ### Parameters - `address: str` The user account address - `with_text: Optional[bool]` Include text variation fields - `with_value: Optional[bool]` Calculate and include USD values for amounts, where applicable ### Returns - `class MarketGetPortfolioResponse: …` - `data: UserMarket` - `borrow: UserBorrowMarket` Overview of user borrowing portfolio - `accounts: List[UserBorrowMarketAccount]` Market sub-accounts for the user - `collaterals: List[UserCollateralAssetPool]` Account collateral allocations - `amount: str` Amount of this asset which is actively collateralized - `asset_info: AssetInfo` Asset identifiers with associated metadata - `asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `id: str` - `group: Literal["native", "token"]` - `"native"` - `"token"` - `group_key: str` - `classification: AssetClassification` The asset's classification metadata. Assets are classfied to provide context on their usage throughout the Neptune API (e.g. regular assets, neptune receipt tokens, LSTs, etc.) Each asset belongs to only a single classification type. This object contains metadata pertaining to the given classification. While some fields may be common among the distinct classifcations, each classification is distinct and subject to independent change. - `class Regular: …` - `kind: Literal["regular"]` - `"regular"` - `neptune_receipt_asset: Optional[AssetSpec]` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `class NeptuneReceiptToken: …` - `kind: Literal["neptune_receipt_token"]` - `"neptune_receipt_token"` - `origin_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `class LiquidStakingToken: …` - `kind: Literal["liquid_staking_token"]` - `"liquid_staking_token"` - `origin_asset: Optional[AssetSpec]` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `metadata: AssetMetadata` Additional metadata for assets - `decimals_denom: int` Denom exponent, or num. of decimal places that shift between denom/standard amounts (e.g. `18` for `INJ`) - `decimals_display: int` Number of decimals used when displaying amounts of this asset (this is subjective and used for generating text representations) - `name: str` Full name of the asset - `symbol: str` Symbol of the asset, e.g.: `NEPT` `INJ` - `symbol_denom: str` Denom symbol for the asset (e.g. `inj` for `INJ`, `sat` for `BTC`) - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: str` - `value: Optional[ExtraValue]` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: str` - `extra: ExtraValueExtra` - `text: Optional[ExtraValueExtraText]` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: str` - `price: str` Text representation of price - `price: str` Price used in value calculations - `debts: List[UserDebtAssetPool]` Account debt allocations - `asset_info: AssetInfo` Asset identifiers with associated metadata - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `principal: str` - `shares: str` - `value: Optional[ExtraValue]` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: ExtraValueExtra` - `text: Optional[ExtraValueExtraText]` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: str` Text representation of price - `principal: str` - `shares: str` - `price: str` Price used in value calculations - `principal: str` - `shares: str` - `market_rate: MarketRate` Current market borrowing rate - `apr: str` Market rate in APR standard as a decimal percentage - `apy: str` Market rate in APY standard as a decimal percentage - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `apr: str` - `apy: str` - `principal: str` Initial amount borrowed (of debts which have not yet been repaid) - `shares: str` - `debts_net_rate: MarketRate` Account debt net rate - `health: Optional[UserAccountHealth]` Health data for this account - `base: str` Account health value, before any added health boosts - `boost: str` Account health boost to be applied - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `base: str` - `boost: str` - `result: str` - `result: str` Account health, with boost - `index: int` Account index - `totals: UserBorrowMarketPools` Collateral/debt totals of all sub-accounts by asset - `collaterals: List[UserCollateralAssetPool]` Account collateral allocations - `amount: str` Amount of this asset which is actively collateralized - `asset_info: AssetInfo` Asset identifiers with associated metadata - `extra: Extra` - `debts: List[UserDebtAssetPool]` Account debt allocations - `asset_info: AssetInfo` Asset identifiers with associated metadata - `extra: Extra` - `market_rate: MarketRate` Current market borrowing rate - `principal: str` Initial amount borrowed (of debts which have not yet been repaid) - `shares: str` - `debts_net_rate: MarketRate` Account debt net rate - `lend: UserLendMarket` Overview of user lending portfolio - `asset_pools: List[UserLendAssetPool]` User lending allocations - `asset_info: AssetInfo` Asset identifiers with associated metadata - `market_rate: MarketRate` Current market lending rate - `origin_equivalent: UserLendOriginAmounts` The lending amounts converted into the equivalent for the receipt token's origin/source asset - `collateralized: str` Total equivalent amount of origin token collateralized across this user's borrowing portfolio **NOTE:** This is **not** the amount of the origin asset that the user holds, but the amount held in the receipt token rendered as the equivalent amount in the origin asset. Or, more formally: `origin_equivalent_collateralized = receipt_collateralized / receipt_redemption_ratio` - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `collateralized: str` - `held: str` - `total: str` - `held: str` Total equivalent amount of origin token held in address balance **NOTE:** This is **not** the amount of the origin asset that the user holds, but the amount held in the receipt token rendered as the equivalent amount in the origin asset. Or, more formally: `origin_equivalent_held = receipt_held / receipt_redemption_ratio` - `total: str` Total of held and collateralized equivalent for origin asset Or, more formally: `origin_equivalent_total = receipt_lent_total / receipt_redemption_ratio` - `receipt_amounts: UserLendReceiptAmounts` The lending amounts in the original receipt token amounts - `collateralized: str` Total amount of receipt token collateralized across this user's borrowing portfolio - `extra: Extra` - `text: Optional[ExtraText]` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `collateralized: str` - `held: str` - `total: str` - `value: Optional[ExtraValue]` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `collateralized: str` - `extra: ExtraValueExtra` - `text: Optional[ExtraValueExtraText]` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `collateralized: str` - `held: str` - `price: str` Text representation of price - `total: str` - `held: str` - `price: str` Price used in value calculations - `total: str` - `held: str` Total amount of receipt token held in address balance - `total: str` Sum of receipt amount held and receipt amount collateralized - `net_rate: MarketRate` Account debt net rate - `error: None` Error data. Guaranteed `null` for successful response. - `status: int` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: str` HTTP status text ### Example ```python from neptune_api_v2 import NeptuneAPIV2 client = NeptuneAPIV2() response = client.user.market.get_portfolio( address="injvalcons1a03k0ztfyjnd70apawva003pkh0adqmau0a9q0", ) print(response.data) ``` #### Response ```json { "data": { "borrow": { "accounts": [ { "index": 0, "collaterals": [ { "asset_info": { "asset": { "id": "native;inj", "group": "native", "group_key": "inj" }, "metadata": { "name": "Injective", "symbol": "INJ", "symbol_denom": "inj", "decimals_denom": 18, "decimals_display": 4 }, "classification": { "kind": "regular", "neptune_receipt_asset": { "id": "token;inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f", "group": "token", "group_key": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f" } } }, "amount": "920380558505833997007", "extra": { "text": { "amount": "920.3805 INJ" }, "value": { "price": "2.99835", "amount": "2759.623047595967364925", "extra": { "text": { "amount": "$2,759.62", "price": "$2.99" } } } } } ], "debts": [ { "asset_info": { "asset": { "id": "native;inj", "group": "native", "group_key": "inj" }, "metadata": { "name": "Injective", "symbol": "INJ", "symbol_denom": "inj", "decimals_denom": 18, "decimals_display": 4 }, "classification": { "kind": "regular", "neptune_receipt_asset": { "id": "token;inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f", "group": "token", "group_key": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f" } } }, "market_rate": { "apr": "0.10742845", "apy": "0.11341119", "extra": { "text": { "apy": "11.34%", "apr": "10.74%" } } }, "principal": "444725506597269050309", "shares": "444725506597269050309", "extra": { "text": { "principal": "444.7255 INJ", "shares": "444.7255 INJ" }, "value": { "shares": "1333.442722705921656993", "price": "2.99835", "principal": "1333.442722705921656993", "extra": { "text": { "shares": "$1,333.44", "price": "$2.99", "principal": "$1,333.44" } } } } } ], "debts_net_rate": { "apr": "0.107428449999999999", "apy": "0.113411189999999999", "extra": { "text": { "apy": "11.34%", "apr": "10.74%" } } }, "health": { "base": "3.56", "boost": "1", "result": "3.56", "extra": { "text": { "base": "3.56", "boost": "0.00%", "result": "3.56" } } } } ], "totals": { "collaterals": [ { "asset_info": { "asset": { "id": "native;inj", "group": "native", "group_key": "inj" }, "metadata": { "name": "Injective", "symbol": "INJ", "symbol_denom": "inj", "decimals_denom": 18, "decimals_display": 4 }, "classification": { "kind": "regular", "neptune_receipt_asset": { "id": "token;inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f", "group": "token", "group_key": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f" } } }, "amount": "920380558505833997007", "extra": { "text": { "amount": "920.3805 INJ" }, "value": { "price": "2.99835", "amount": "2759.623047595967364925", "extra": { "text": { "amount": "$2,759.62", "price": "$2.99" } } } } } ], "debts": [ { "asset_info": { "asset": { "id": "native;inj", "group": "native", "group_key": "inj" }, "metadata": { "name": "Injective", "symbol": "INJ", "symbol_denom": "inj", "decimals_denom": 18, "decimals_display": 4 }, "classification": { "kind": "regular", "neptune_receipt_asset": { "id": "token;inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f", "group": "token", "group_key": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f" } } }, "market_rate": { "apr": "0.10742845", "apy": "0.11341119", "extra": { "text": { "apy": "11.34%", "apr": "10.74%" } } }, "principal": "444725506597269050309", "shares": "444725506597269050309", "extra": { "text": { "principal": "444.7255 INJ", "shares": "444.7255 INJ" }, "value": { "shares": "1333.442722705921656993", "price": "2.99835", "principal": "1333.442722705921656993", "extra": { "text": { "shares": "$1,333.44", "price": "$2.99", "principal": "$1,333.44" } } } } } ], "debts_net_rate": { "apr": "0.107428449999999999", "apy": "0.113411189999999999", "extra": { "text": { "apy": "11.34%", "apr": "10.74%" } } } } }, "lend": { "asset_pools": [ { "asset_info": { "asset": { "id": "native;inj", "group": "native", "group_key": "inj" }, "metadata": { "name": "Injective", "symbol": "INJ", "symbol_denom": "inj", "decimals_denom": 18, "decimals_display": 4 }, "classification": { "kind": "regular", "neptune_receipt_asset": { "id": "token;inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f", "group": "token", "group_key": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f" } } }, "market_rate": { "apr": "0.28352819", "apy": "0.32780631", "extra": { "text": { "apy": "32.78%", "apr": "28.35%" } } }, "receipt_amounts": { "held": "503392454790765643939", "collateralized": "63652103341334203700", "total": "567044558132099847639", "extra": { "text": { "total": "567.0445 nINJ", "held": "503.3924 nINJ", "collateralized": "63.6521 nINJ" }, "value": { "held": "1623.155947024350227118", "collateralized": "205.242031531916407303", "price": "3.224434398205298254", "total": "1828.397978556266634422", "extra": { "text": { "price": "$3.22", "collateralized": "$205.24", "held": "$1,623.15", "total": "$1,828.39" } } } } }, "origin_equivalent": { "held": "539899466414371690487", "collateralized": "68268279158897706162", "total": "608167745573269396650", "extra": { "text": { "total": "608.1677 INJ", "collateralized": "68.2682 INJ", "held": "539.8994 INJ" } } } } ], "net_rate": { "apr": "0.283528189999999999", "apy": "0.327806309999999999", "extra": { "text": { "apy": "32.78%", "apr": "28.35%" } } } } }, "error": null, "status": 200, "status_text": "200 OK" } ```