Filters on loan_collateral.asset_mint, complementing
exclude_collateral_identifiers (which filters on asset_identifier).
For plain SPL collateral the two columns are equal; for LP/pool
collateral asset_identifier is the pool_id, so excluding by mint
alone won't catch those rows. Set both to cover both cases.
When true, /loans/info runs the PnL pipeline against the page's loans
in parallel with the list-side pricing pass and stamps a
LoanPnlDetails onto each LoanSummaryItem. Off by default so the
dropdown/filter-edit calls that don't render PnL stay cheap.
Filter-scoped aggregate over the full matched loan set. USD fields use the
request's pinned oracle snapshot. APYs are returned in fractional form
(0.085 = 8.5%), not cbps.
dailyInterestUsd, dailyCollateralYieldUsd, and dailyPrincipalYieldUsd
are role-neutral primitives. The FE composes role-specific composites:
Borrower daily net carry: dailyCollateralYieldUsd − dailyInterestUsd
Lender daily net carry: dailyInterestUsd
Loop net daily yield: dailyCollateralYieldUsd − dailyInterestUsd − dailyPrincipalYieldUsd
(loops borrow yield-bearing principals like JLP/mSOL where the borrowed
asset itself appreciates — that appreciation is a real cost on the debt
leg captured by dailyPrincipalYieldUsd).
interestEarnedAllTimeUsd is currently always 0 on this endpoint —
closed loans have interest_outstanding = 0 so a SUM-by-mint approach can't
recover the realized interest. Lender lifetime interest should be sourced
from /strategy/infos (which uses strategy.cumulative_interest_accrued).
Borrower lifetime interest is not currently computable; revisit by parsing
loan_events_v1.action_metadata for RepayPrincipal events if needed.
pnlUsd is computed as collateralUsd − principalUsd − interestAccruedUsd − Σ netInflowUsd where net inflow is the borrower's net dollar contribution
from account_balance_changes (cached event-time USD). Reflects realized +
unrealized PnL combined.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Loopscale Docs","description":"Learn about the core concepts of Loopscale, a modular, order book-based lending protocol on Solana.","colors":{"primary":"#276ED6","light":"#F8F9FB","dark":"#151619"},"logo":{"light":"https://mintcdn.com/loopscale-docs/7wEScHg4Gg_v9bhc/static/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=7wEScHg4Gg_v9bhc\u0026q=85\u0026s=e3d7a3c8bd59969d54c957404dcb2ca9","dark":"https://mintcdn.com/loopscale-docs/7wEScHg4Gg_v9bhc/static/assets/logo/dark.svg?fit=max\u0026auto=format\u0026n=7wEScHg4Gg_v9bhc\u0026q=85\u0026s=5074f5d533c90f66fbd5a16a0c9d2f2c","href":"https://docs.loopscale.com"},"favicon":"https://mintcdn.com/loopscale-docs/7wEScHg4Gg_v9bhc/static/assets/favicon.svg?fit=max\u0026auto=format\u0026n=7wEScHg4Gg_v9bhc\u0026q=85\u0026s=af942e7b33a749dc1469466c347f1574","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://loopscale.com","label":"Website"},{"href":"https://blog.loopscale.com","label":"Blog"},{"href":"https://discord.com/channels/895116209958297631/1341918308211097630","label":"Support"}],"primary":{"type":"button","label":"Launch App","href":"https://app.loopscale.com"}},"footer":{"socials":{"x":"https://x.com/Loopscale","discord":"https://discord.gg/loopscale","linkedin":"https://linkedin.com/company/LoopscaleLabs","website":"https://loopscale.com"}},"seo":{"metatags":{"canonical":"https://docs.loopscale.com"},"indexing":"all"},"fonts":{"family":"ABC Diatype Unlicensed Trial","source":"https://loopscale-site.s3.us-east-1.amazonaws.com/fonts/ABCDiatype-Regular-Trial.woff","format":"woff"},"icons":{"library":"fontawesome"},"interaction":{"drilldown":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"loopscale-docs","hasAudioNarration":false,"actualSubdomain":"loopscale-docs","customDomains":["docs.loopscale.com"],"gitSource":{"type":"github","owner":"orca-so","repo":"loopscale-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad66dc7f11a44816eec9dc6","collectionId":"52f85f7b-81fc-4b44-8cf2-3ed05e181e74","liveDeploymentHistoryId":"6ad66dc7f11a44816eec9dc6","schemaVersion":"v3"},"entitlements":{},"buildId":"6ad66dc7f11a44816eec9dc6","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Reference","count":53},{"language":"default","tag":"Transaction Endpoints","count":35},{"language":"default","tag":"Product Docs","count":26},{"language":"default","tag":"Data Endpoints","count":15},{"language":"default","tag":"Borrowing","count":12},{"language":"default","tag":"Earn Vaults","count":11},{"language":"default","tag":"Partners","count":10},{"language":"default","tag":"Resources","count":10},{"language":"default","tag":"Using Loopscale","count":9},{"language":"default","tag":"Loopscale Vaults","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"static/styles.css","content":"@font-face{font-family:\"ABC Diatype Unlicensed Trial\";src:url(https://loopscale-site.s3.us-east-1.amazonaws.com/fonts/ABCDiatype-Regular-Trial.woff);font-weight:400}@font-face{font-family:\"ABC Diatype Unlicensed Trial\";src:url(https://loopscale-site.s3.us-east-1.amazonaws.com/fonts/ABCDiatype-Medium-Trial.woff);font-weight:600}@font-face{font-family:\"ABC Diatype Unlicensed Trial\";src:url(https://loopscale-site.s3.us-east-1.amazonaws.com/fonts/ABCDiatype-Bold-Trial.woff);font-weight:700}:root{--blue:39 110 214;--light:248 249 251;--black:21 22 25;--gray:110 133 145;--white:255 255 255;--brand-blue:rgb(var(--blue));--brand-light:rgb(var(--light));--brand-black:rgb(var(--black));--brand-gray:rgb(var(--gray));--brand-white:rgb(var(--white));--brand-pink:#fac1e2;--brand-orange:#fd7448;--brand-prussian:#1a3b53;--primary-background-light:rgb(var(--black) / 0.02);--primary-background:rgb(var(--black) / 0.03);--rounded-full:12px;--rounded-lg:12px;--rounded-md:12px;--tw-ring-color:transparent!important}#navigation-items>.lg:mt-8{margin-top:1.5rem!important}.absolute>a,.absolute>a>div{border:0!important;box-shadow:none!important}body{font-synthesis:none!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;text-rendering:optimizeLegibility!important}.font-medium{font-weight:600}h1,h2,h3,h4,h5,h6 *{color:var(--brand-black)!important}.prose{color:var(--brand-gray);--tw-prose-links:var(--brand-blue)}.prose a{border-bottom:1px solid rgb(var(--blue)/.2);outline-offset:2px}.prose h1.font-semibold,.prose h2.font-semibold,.prose h3.font-semibold,.prose h4.font-semibold,.prose h5.font-semibold,.prose h6.font-semibold{font-weight:700!important}#navigation-items a.text-primary,#navigation-items a.text-primary:hover{color:var(--brand-black)}#navigation-items li>*{background-color:transparent!important;color:var(--brand-gray);padding-top:.25rem;padding-bottom:.25rem;--font-weight-body-custom:500}#navigation-items li>:focus,#navigation-items li>:hover{color:rgb(var(--gray-700));background-color:transparent!important}#mobile-divider,.hide-table-head+table>thead{display:none}.card,a.card:hover{border-color:transparent!important}.card{background-color:var(--primary-background-light);transition:all .15s cubic-bezier(.4,0,.2,1)}a.card:hover{background-color:var(--primary-background)}a.card:not([target=_blank]) .text-gray-400 svg{display:none}div[id*=accordion]>table{margin-top:0!important}.linked-address-container,.table-link-icons+table a{display:flex;align-items:center;border:0;gap:4px}.linked-address-container{flex-direction:row;gap:8px;color:var(--brand-blue);justify-content:right}.inline-icons-container{display:flex;align-items:center;flex-direction:row;gap:4px}.icon-button{cursor:pointer;display:flex;border:0!important}.icon-button svg{background-color:var(--brand-gray)!important;-webkit-mask-position-x:left!important}.icon-button svg:hover{background-color:var(--brand-black)!important;transition:background-color .2s ease}table{width:100%!important;table-layout:auto!important;border-collapse:collapse}td:has(.xscell),th:has(.xs-cell){min-width:80px}td:has(.sm-cell),th:has(.sm-cell){min-width:120px}td:has(.md-cell),th:has(.md-cell){min-width:180px}td:has(.lg-cell),th:has(.lg-cell){min-width:240px}td:has(.grow-cell),th:has(.grow-cell){width:100%}td:has(.auto-cell),th:has(.auto-cell){width:auto!important}td[style*=\"text-align: right\"]>a{justify-content:right}button[aria-controls*=accordion]{transition:all .15s cubic-bezier(.4,0,.2,1)}button[aria-controls*=accordion]:hover{background-color:var(--primary-background-light)}#navbar a[href=\"https://docs.loopscale.com\"]{display:flex;column-gap:.5rem;align-items:center;padding-top:.25rem}@media (min-width:480px){#navbar a[href=\"https://docs.loopscale.com\"]::after{content:\"Documentation\";font-weight:600;font-size:.875rem;line-height:1.25rem}}footer>:last-child{display:none}.nav-dropdown-item-icon{background-color:rgb(var(--blue)/.1);border:0!important}.tryit-button{background-color:var(--brand-blue)}.tryit-button>svg{mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/arrow-right.svg)!important;-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/arrow-right.svg)!important}img{border-radius:24px}video{border-radius:4px}code,code>*>*{font-size:.875rem;white-space:pre-wrap!important;word-break:break-word;max-width:100%!important}[data-component-part=code-block-root]:not(.has-line-numbers) .line-highlight{background-color:rgb(var(--blue)/.1)!important}#sidebar>div::-webkit-scrollbar,#table-of-contents-content::-webkit-scrollbar{display:none}#sidebar>div,#table-of-contents-content{-ms-overflow-style:none;scrollbar-width:none}"}],"page":{"pagePath":"api-reference/data/positions/get-loan-info","slug":"/api-reference/data/positions/get-loan-info","pageMetadata":{"title":"Get loan info","openapi":"post /markets/loans/info","description":"Returns a list of loans filtered by request. Results support pagination.","href":"/api-reference/data/positions/get-loan-info"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns a list of loans filtered by request. Results support pagination.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get loan info","openapi":"post /markets/loans/info","description":"Returns a list of loans filtered by request. Results support pagination.","href":"/api-reference/data/positions/get-loan-info"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["loans_data"],"summary":"Get loan information","operationId":"route_get_loan_infos","requestBody":"6c5fe83f-3084-4092-904c-70c5a036f2cb","responses":{"200":"2b3d22b4-aa69-4793-ad38-d0b7e8e84d7e","400":"a43a5ba7-2000-4c7f-a0c9-7e806d700cac","401":"69458270-9a91-47a1-ac22-6e0c4c8303b3","500":"6980a6c8-7a01-4500-bc2d-bee328ac48f5"},"description":"Returns a list of loans filtered by request. Results support pagination.","method":"post","type":"path","servers":["19e89db7-8de4-44f1-a3c8-332e7c9dd942"],"security":[],"path":"/markets/loans/info","baseUrlOptions":["https://tars.loopscale.com/v1"],"title":"Get loan information","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Filter body for `POST /loans/info`. Every list field is capped at 50\nentries there (400 above the cap); split larger requests into batches.","properties":{"assetTypes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"assetTypes.items.[INDEX]","typeLabel":"integer\u003cint32>"},"uniqueKey":"assetTypes","typeLabel":"integer\u003cint32>[]"},"borrowers":{"type":"array","items":{"type":"string","uniqueKey":"borrowers.items.[INDEX]","typeLabel":"string"},"description":"loan borrower","uniqueKey":"borrowers","typeLabel":"string[]"},"collateralIdentifiers":{"type":"array","items":{"type":"string","uniqueKey":"collateralIdentifiers.items.[INDEX]","typeLabel":"string"},"uniqueKey":"collateralIdentifiers","typeLabel":"string[]"},"collateralMints":{"type":"array","items":{"type":"string","uniqueKey":"collateralMints.items.[INDEX]","typeLabel":"string"},"uniqueKey":"collateralMints","typeLabel":"string[]"},"excludeCollateralIdentifiers":{"type":"array","items":{"type":"string","uniqueKey":"excludeCollateralIdentifiers.items.[INDEX]","typeLabel":"string"},"uniqueKey":"excludeCollateralIdentifiers","typeLabel":"string[]"},"excludeCollateralMints":{"type":"array","items":{"type":"string","uniqueKey":"excludeCollateralMints.items.[INDEX]","typeLabel":"string"},"description":"Filters on `loan_collateral.asset_mint`, complementing\n`exclude_collateral_identifiers` (which filters on `asset_identifier`).\nFor plain SPL collateral the two columns are equal; for LP/pool\ncollateral `asset_identifier` is the pool_id, so excluding by mint\nalone won't catch those rows. Set both to cover both cases.","uniqueKey":"excludeCollateralMints","typeLabel":"string[]"},"excludePrincipalMints":{"type":"array","items":{"type":"string","uniqueKey":"excludePrincipalMints.items.[INDEX]","typeLabel":"string"},"uniqueKey":"excludePrincipalMints","typeLabel":"string[]"},"filterType":{"oneOf":[{"type":"integer","format":"int32","description":"filter type enum","minimum":0,"uniqueKey":"filterType.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"filter type enum","minimum":0,"uniqueKey":"filterType.oneOf.1","typeLabel":"null"}],"uniqueKey":"filterType","typeLabel":"integer\u003cint32> | null"},"includePnl":{"type":"boolean","description":"When true, `/loans/info` runs the PnL pipeline against the page's loans\nin parallel with the list-side pricing pass and stamps a\n`LoanPnlDetails` onto each `LoanSummaryItem`. Off by default so the\ndropdown/filter-edit calls that don't render PnL stay cheap.","uniqueKey":"includePnl","typeLabel":"boolean"},"lenders":{"type":"array","items":{"type":"string","uniqueKey":"lenders.items.[INDEX]","typeLabel":"string"},"description":"loan lender","uniqueKey":"lenders","typeLabel":"string[]"},"loanAddresses":{"type":"array","items":{"type":"string","uniqueKey":"loanAddresses.items.[INDEX]","typeLabel":"string"},"description":"loan address","uniqueKey":"loanAddresses","typeLabel":"string[]"},"loopVaultPrincipalCollateralPairs":{"type":"array","items":{"type":"object","required":["principalAssetIdentifier","collateralAssetIdentifier"],"properties":{"collateralAssetIdentifier":{"type":"string","isRequired":true,"uniqueKey":"loopVaultPrincipalCollateralPairs.items.[INDEX].collateralAssetIdentifier","typeLabel":"string"},"principalAssetIdentifier":{"type":"string","isRequired":true,"uniqueKey":"loopVaultPrincipalCollateralPairs.items.[INDEX].principalAssetIdentifier","typeLabel":"string"}},"uniqueKey":"loopVaultPrincipalCollateralPairs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"loopVaultPrincipalCollateralPairs","typeLabel":"object[]"},"orderFundingTypes":{"oneOf":[{"type":"integer","format":"int32","minimum":0,"uniqueKey":"orderFundingTypes.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","minimum":0,"uniqueKey":"orderFundingTypes.oneOf.1","typeLabel":"null"}],"uniqueKey":"orderFundingTypes","typeLabel":"integer\u003cint32> | null"},"page":{"oneOf":[{"type":"integer","format":"int64","minimum":0,"uniqueKey":"page.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","minimum":0,"uniqueKey":"page.oneOf.1","typeLabel":"null"}],"uniqueKey":"page","typeLabel":"integer\u003cint64> | null"},"pageSize":{"oneOf":[{"type":"integer","format":"int64","minimum":0,"uniqueKey":"pageSize.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","minimum":0,"uniqueKey":"pageSize.oneOf.1","typeLabel":"null"}],"uniqueKey":"pageSize","typeLabel":"integer\u003cint64> | null"},"principalMints":{"type":"array","items":{"type":"string","uniqueKey":"principalMints.items.[INDEX]","typeLabel":"string"},"description":"principal","uniqueKey":"principalMints","typeLabel":"string[]"},"sortSide":{"type":"integer","format":"int32","description":"Sort direction: `0` = ascending, `1` = descending.","minimum":0,"uniqueKey":"sortSide","typeLabel":"integer\u003cint32>"},"sortType":{"type":"integer","format":"int32","description":"Sort key (see `LoanInfoSorting` discriminants).","minimum":0,"uniqueKey":"sortType","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"assetTypes":[1],"borrowers":["\u003cstring>"],"collateralIdentifiers":["\u003cstring>"],"collateralMints":["\u003cstring>"],"excludeCollateralIdentifiers":["\u003cstring>"],"excludeCollateralMints":["\u003cstring>"],"excludePrincipalMints":["\u003cstring>"],"filterType":1,"includePnl":true,"lenders":["\u003cstring>"],"loanAddresses":["\u003cstring>"],"loopVaultPrincipalCollateralPairs":[{"collateralAssetIdentifier":"\u003cstring>","principalAssetIdentifier":"\u003cstring>"}],"orderFundingTypes":1,"page":1,"pageSize":1,"principalMints":["\u003cstring>"],"sortSide":1,"sortType":1}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"2b3d22b4-aa69-4793-ad38-d0b7e8e84d7e":{"description":"List of loan data","content":{"application/json":{"schema":{"type":"object","required":["items","pageInfo","aggregate","snapshotTs","principalMints","collateralMints"],"properties":{"aggregate":{"type":"object","description":"Filter-scoped aggregate over the full matched loan set. USD fields use the\nrequest's pinned oracle snapshot. APYs are returned in fractional form\n(0.085 = 8.5%), not cbps.\n\n`dailyInterestUsd`, `dailyCollateralYieldUsd`, and `dailyPrincipalYieldUsd`\nare role-neutral primitives. The FE composes role-specific composites:\n - Borrower daily net carry: `dailyCollateralYieldUsd − dailyInterestUsd`\n - Lender daily net carry: `dailyInterestUsd`\n - Loop net daily yield: `dailyCollateralYieldUsd − dailyInterestUsd − dailyPrincipalYieldUsd`\n (loops borrow yield-bearing principals like JLP/mSOL where the borrowed\n asset itself appreciates — that appreciation is a real cost on the debt\n leg captured by `dailyPrincipalYieldUsd`).\n\n**`interestEarnedAllTimeUsd` is currently always 0** on this endpoint —\nclosed loans have `interest_outstanding = 0` so a SUM-by-mint approach can't\nrecover the realized interest. Lender lifetime interest should be sourced\nfrom `/strategy/infos` (which uses `strategy.cumulative_interest_accrued`).\nBorrower lifetime interest is not currently computable; revisit by parsing\n`loan_events_v1.action_metadata` for `RepayPrincipal` events if needed.\n\n`pnlUsd` is computed as `collateralUsd − principalUsd − interestAccruedUsd\n− Σ netInflowUsd` where net inflow is the borrower's net dollar contribution\nfrom `account_balance_changes` (cached event-time USD). Reflects realized +\nunrealized PnL combined.","required":["count","collateralUsd","principalUsd","interestAccruedUsd","interestEarnedAllTimeUsd","wAvgApy","wAvgCollateralApy","pendingYieldUsd","dailyInterestUsd","dailyCollateralYieldUsd","dailyPrincipalYieldUsd"],"properties":{"collateralUsd":{"type":"number","format":"double","description":"Sum of `loan_collateral.amount × snapshot_price` across the rows in\nscope, priced at the snapshot. Zero on non-loop *group* aggregates —\nsee `ApiUserLoanGroup.aggregate` for the rationale.","isRequired":true,"uniqueKey":"aggregate.collateralUsd","typeLabel":"number\u003cdouble>"},"count":{"type":"integer","format":"int64","description":"Number of loans folded into this aggregate (dedup'd by `loans.address`).","minimum":0,"isRequired":true,"uniqueKey":"aggregate.count","typeLabel":"integer\u003cint64>"},"dailyCollateralYieldUsd":{"type":"number","format":"double","description":"Borrower's daily collateral-yield carry in USD across the rows in\nscope = `Σ(collateralUsd × cyl.apy) / 365`. Same unrounded-numerator\napproach as `dailyInterestUsd`.","isRequired":true,"uniqueKey":"aggregate.dailyCollateralYieldUsd","typeLabel":"number\u003cdouble>"},"dailyInterestUsd":{"type":"number","format":"double","description":"Borrower's daily interest carry in USD across the rows in scope =\n`Σ(principalUsd × apy) / 365`. Computed off the unrounded weighted\nnumerator (not `principalUsd × wAvgApy`) to avoid post-rounding drift.","isRequired":true,"uniqueKey":"aggregate.dailyInterestUsd","typeLabel":"number\u003cdouble>"},"dailyPrincipalYieldUsd":{"type":"number","format":"double","description":"Daily yield foregone on the borrowed principal (when principal mint is\nyield-bearing). Zero for plain USDC/etc. borrows. Used to compute loop\nnet APY; safe to ignore for non-loop filters.","isRequired":true,"uniqueKey":"aggregate.dailyPrincipalYieldUsd","typeLabel":"number\u003cdouble>"},"interestAccruedUsd":{"type":"number","format":"double","description":"Sum of `interest_outstanding` (accrued-but-unpaid) across active\nledgers in scope, priced at the snapshot.","isRequired":true,"uniqueKey":"aggregate.interestAccruedUsd","typeLabel":"number\u003cdouble>"},"interestEarnedAllTimeUsd":{"type":"number","format":"double","description":"Always 0 on this endpoint — see struct doc comment.","isRequired":true,"uniqueKey":"aggregate.interestEarnedAllTimeUsd","typeLabel":"number\u003cdouble>"},"pendingYieldUsd":{"type":"number","format":"double","description":"Pending unclaimed LP fees in USD for CLMM-style collateral positions\n(sum of `lp_fees_usd` over matching `asset_mint`s in scope). Zero for\nnon-LP collateral.","isRequired":true,"uniqueKey":"aggregate.pendingYieldUsd","typeLabel":"number\u003cdouble>"},"principalUsd":{"type":"number","format":"double","description":"Sum of outstanding principal `(principal_due − principal_repaid)`\nacross active ledgers in scope, priced at the snapshot.","isRequired":true,"uniqueKey":"aggregate.principalUsd","typeLabel":"number\u003cdouble>"},"wAvgApy":{"type":"number","format":"double","description":"USD-weighted average of `ledgers.apy` (borrow rate), weighted by\n`principalUsd`.","isRequired":true,"uniqueKey":"aggregate.wAvgApy","typeLabel":"number\u003cdouble>"},"wAvgCollateralApy":{"type":"number","format":"double","description":"USD-weighted average of collateral yield APY (`cyl.apy`), weighted by\n`collateralUsd`.","isRequired":true,"uniqueKey":"aggregate.wAvgCollateralApy","typeLabel":"number\u003cdouble>"},"pnlUsd":{"oneOf":[{"type":"number","format":"double","description":"`collateralUsd − principalUsd − interestAccruedUsd − Σ netInflowUsd`.\nNegative = net loss (including borrower's cost basis from collateral\ndeposits). Positive = net gain. See struct doc for full details.\n\n`Option` only to allow omission in edge cases; in practice always set.\nFor loop aggregates this is the cost-basis `usdPnl` (Σ per-loan); paired\nwith `tokenUsdPnl` (in-kind), the FE picks which to display per its\nleverage rule.","uniqueKey":"aggregate.pnlUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"`collateralUsd − principalUsd − interestAccruedUsd − Σ netInflowUsd`.\nNegative = net loss (including borrower's cost basis from collateral\ndeposits). Positive = net gain. See struct doc for full details.\n\n`Option` only to allow omission in edge cases; in practice always set.\nFor loop aggregates this is the cost-basis `usdPnl` (Σ per-loan); paired\nwith `tokenUsdPnl` (in-kind), the FE picks which to display per its\nleverage rule.","uniqueKey":"aggregate.pnlUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"aggregate.pnlUsd","typeLabel":"number\u003cdouble> | null"},"tokenUsdPnl":{"oneOf":[{"type":"number","format":"double","description":"Σ of per-loan `tokenUsdPnl` (in-kind collateral PnL re-priced at the\ncurrent collateral price) across the loop loans in scope. `Some` for\nloop aggregates; `None` when no loop loan contributed a value (e.g. all\nCLMM/LP collateral — FE falls back to `pnlUsd`).","uniqueKey":"aggregate.tokenUsdPnl.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Σ of per-loan `tokenUsdPnl` (in-kind collateral PnL re-priced at the\ncurrent collateral price) across the loop loans in scope. `Some` for\nloop aggregates; `None` when no loop loan contributed a value (e.g. all\nCLMM/LP collateral — FE falls back to `pnlUsd`).","uniqueKey":"aggregate.tokenUsdPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"aggregate.tokenUsdPnl","typeLabel":"number\u003cdouble> | null"}},"isRequired":true,"uniqueKey":"aggregate","typeLabel":"object"},"collateralMints":{"type":"array","items":{"type":"string","uniqueKey":"collateralMints.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"collateralMints","typeLabel":"string[]"},"items":{"type":"array","items":{"type":"object","required":["collateralUsd","principalUsd","interestAccruedUsd","collateralUsdRisk","principalUsdRisk","collateralBreakdown","pendingYieldUsd","pnlUsd","loan","loanType","ledgers","collateral","collateralYieldPct","principalYieldPct"],"properties":{"collateral":{"type":"array","items":{"type":"object","required":["loan","index","assetType","assetIdentifier","assetMint","amount"],"properties":{"amount":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].amount","typeLabel":"integer\u003cint64>"},"assetIdentifier":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].assetIdentifier","typeLabel":"string"},"assetMint":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].assetMint","typeLabel":"string"},"assetType":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].assetType","typeLabel":"integer\u003cint32>"},"index":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].index","typeLabel":"integer\u003cint32>"},"loan":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].loan","typeLabel":"string"},"id":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].id","typeLabel":"integer\u003cint32>"},"lastInteractedTime":{"type":"integer","format":"int64","minimum":0,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].lastInteractedTime","typeLabel":"integer\u003cint64>"},"lastInteractedTxn":{"type":"string","uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].lastInteractedTxn","typeLabel":"string"},"writeVersion":{"type":"integer","format":"int64","minimum":0,"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX].writeVersion","typeLabel":"integer\u003cint64>"}},"uniqueKey":"\\items.items.[INDEX].collateral.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateral","typeLabel":"object[]"},"collateralYieldPct":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralYieldPct","typeLabel":"number\u003cdouble>"},"ledgers":{"type":"array","items":{"type":"object","required":["ledgerIndex","loan","status","strategy","principalMint","marketInformation","principalDue","principalRepaid","interestOutstanding","lastInterestUpdatedTime","interestPerSecond","duration","durationType","startTime","endTime","apy","weights","ltvRatios","lqtRatios","lastInteractedTime","lastInteractedTxn"],"properties":{"apy":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].apy","typeLabel":"integer\u003cint64>"},"duration":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].duration","typeLabel":"integer\u003cint32>"},"durationType":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].durationType","typeLabel":"integer\u003cint32>"},"endTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].endTime","typeLabel":"integer\u003cint64>"},"interestOutstanding":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].interestOutstanding","typeLabel":"integer\u003cint64>"},"interestPerSecond":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].interestPerSecond","typeLabel":"number\u003cdouble>"},"lastInteractedTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].lastInteractedTime","typeLabel":"integer\u003cint64>"},"lastInteractedTxn":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].lastInteractedTxn","typeLabel":"string"},"lastInterestUpdatedTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].lastInterestUpdatedTime","typeLabel":"integer\u003cint64>"},"ledgerIndex":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].ledgerIndex","typeLabel":"integer\u003cint32>"},"loan":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].loan","typeLabel":"string"},"lqtRatios":{"type":"array","items":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].lqtRatios.items.[INDEX]","typeLabel":"integer\u003cint32>"},"description":"Per-collateral liquidation thresholds (cbps), same index order as `weights`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].lqtRatios","typeLabel":"integer\u003cint32>[]"},"ltvRatios":{"type":"array","items":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].ltvRatios.items.[INDEX]","typeLabel":"integer\u003cint32>"},"description":"Per-collateral loan-to-value ratios (cbps), same index order as `weights`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].ltvRatios","typeLabel":"integer\u003cint32>[]"},"marketInformation":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].marketInformation","typeLabel":"string"},"principalDue":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].principalDue","typeLabel":"integer\u003cint64>"},"principalMint":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].principalMint","typeLabel":"string"},"principalRepaid":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].principalRepaid","typeLabel":"integer\u003cint64>"},"startTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].startTime","typeLabel":"integer\u003cint64>"},"status":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].status","typeLabel":"integer\u003cint32>"},"strategy":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].strategy","typeLabel":"string"},"weights":{"type":"array","items":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].weights.items.[INDEX]","typeLabel":"integer\u003cint32>"},"description":"Weight matrix: per-collateral weight (cbps), indexed by the market's\ncollateral map. Drives how each collateral backs this ledger's principal.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].weights","typeLabel":"integer\u003cint32>[]"},"id":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].id","typeLabel":"integer\u003cint32>"},"isLoop":{"type":"integer","format":"int32","uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].isLoop","typeLabel":"integer\u003cint32>"},"writeVersion":{"type":"integer","format":"int64","minimum":0,"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX].writeVersion","typeLabel":"integer\u003cint64>"}},"uniqueKey":"\\items.items.[INDEX].ledgers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].ledgers","typeLabel":"object[]"},"loan":{"type":"object","required":["address","bump","loanStatus","nonce","borrower","startTime","closed","lastInteractedTime","lastInteractedTxn","writeVersion"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.address","typeLabel":"string"},"borrower":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.borrower","typeLabel":"string"},"bump":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.bump","typeLabel":"integer\u003cint32>"},"closed":{"type":"boolean","isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.closed","typeLabel":"boolean"},"lastInteractedTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.lastInteractedTime","typeLabel":"integer\u003cint64>"},"lastInteractedTxn":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.lastInteractedTxn","typeLabel":"string"},"loanStatus":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.loanStatus","typeLabel":"integer\u003cint32>"},"nonce":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.nonce","typeLabel":"integer\u003cint64>"},"startTime":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.startTime","typeLabel":"integer\u003cint64>"},"writeVersion":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan.writeVersion","typeLabel":"integer\u003cint64>"},"id":{"type":"integer","format":"int32","minimum":0,"uniqueKey":"\\items.items.[INDEX].loan.id","typeLabel":"integer\u003cint32>"}},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loan","typeLabel":"object"},"loanType":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].loanType","typeLabel":"integer\u003cint32>"},"principalYieldPct":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].principalYieldPct","typeLabel":"number\u003cdouble>"},"collateralBreakdown":{"type":"array","items":{"type":"object","required":["assetIdentifier","usd"],"properties":{"assetIdentifier":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralBreakdown.items.[INDEX].assetIdentifier","typeLabel":"string"},"usd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralBreakdown.items.[INDEX].usd","typeLabel":"number\u003cdouble>"}},"uniqueKey":"\\items.items.[INDEX].collateralBreakdown.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralBreakdown","typeLabel":"object[]"},"collateralUsd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralUsd","typeLabel":"number\u003cdouble>"},"collateralUsdRisk":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].collateralUsdRisk","typeLabel":"number\u003cdouble>"},"interestAccruedUsd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].interestAccruedUsd","typeLabel":"number\u003cdouble>"},"pendingYieldUsd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pendingYieldUsd","typeLabel":"number\u003cdouble>"},"pnlUsd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnlUsd","typeLabel":"number\u003cdouble>"},"principalUsd":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].principalUsd","typeLabel":"number\u003cdouble>"},"principalUsdRisk":{"type":"number","format":"double","isRequired":true,"uniqueKey":"\\items.items.[INDEX].principalUsdRisk","typeLabel":"number\u003cdouble>"},"pnl":{"oneOf":[{"type":"null","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.0","typeLabel":"null"},{"type":"object","description":"Populated only when the request set `LoanFilter.include_pnl=true`. Same\nper-loan breakdown the standalone `/loans/pnl` endpoint returns\n(omitting graph series, which only the detail page uses).","properties":{"collateralPnl":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnl.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnl","typeLabel":"integer\u003cint64> | null"},"collateralPnlPctChange":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnlPctChange.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnlPctChange.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.collateralPnlPctChange","typeLabel":"number\u003cdouble> | null"},"initialUserCollateralContribution":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContribution.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContribution.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContribution","typeLabel":"integer\u003cint64> | null"},"initialUserCollateralContributionUsd":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContributionUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContributionUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.initialUserCollateralContributionUsd","typeLabel":"number\u003cdouble> | null"},"markers":{"type":"array","items":{"type":"object","description":"Chart annotation: timestamp + marker kind + optional payload (not nested on series rows).","required":["date","type"],"properties":{"date":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].date","typeLabel":"integer\u003cint64>"},"type":{"type":"string","description":"Marker type for charts.","enum":["rollover"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"metadata":{"oneOf":[{"type":"null","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].metadata.oneOf.0","typeLabel":"null"},{"type":"object","description":"Marker payload union (untagged so we don't duplicate the top-level `type` discriminator).","required":["previousCollateralMint","newCollateralMint"],"properties":{"newCollateralMint":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].metadata.oneOf.1.newCollateralMint","typeLabel":"string"},"previousCollateralMint":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].metadata.oneOf.1.previousCollateralMint","typeLabel":"string"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].metadata.oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX].metadata","typeLabel":"null | object"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers.items.[INDEX]","typeLabel":"object"},"description":"Rollover and other chart annotations (same list for all charts; derived from PnL series).","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.markers","typeLabel":"object[]"},"netCollateralInflow":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralInflow.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralInflow.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralInflow","typeLabel":"integer\u003cint64> | null"},"netCollateralUsdInflow":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralUsdInflow.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralUsdInflow.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netCollateralUsdInflow","typeLabel":"number\u003cdouble> | null"},"netPrincipalInflow":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalInflow.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalInflow.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalInflow","typeLabel":"integer\u003cint64> | null"},"netPrincipalUsdInflow":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalUsdInflow.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalUsdInflow.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.netPrincipalUsdInflow","typeLabel":"number\u003cdouble> | null"},"pnlData":{"oneOf":[{"type":"null","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.0","typeLabel":"null"},{"type":"object","description":"PnL graph data","required":["dataPoints"],"properties":{"dataPoints":{"type":"array","items":{"type":"object","required":["date"],"properties":{"date":{"type":"integer","format":"int64","description":"Unix timestamp","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].date","typeLabel":"integer\u003cint64>"},"collateralPrice":{"oneOf":[{"type":"number","format":"double","description":"Collateral token price in USD at this timestamp","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralPrice.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral token price in USD at this timestamp","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralPrice","typeLabel":"number\u003cdouble> | null"},"collateralValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Collateral value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd","typeLabel":"number\u003cdouble> | null"},"isProjection":{"type":"boolean","description":"Whether this is a projection","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].isProjection","typeLabel":"boolean"},"netCollateralTransferTokenAmount":{"oneOf":[{"type":"number","format":"double","description":"Net collateral transfer in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferTokenAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net collateral transfer in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferTokenAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferTokenAmount","typeLabel":"number\u003cdouble> | null"},"netCollateralTransferUsdAmount":{"oneOf":[{"type":"number","format":"double","description":"Net collateral transfer USD amount (cost basis)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferUsdAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net collateral transfer USD amount (cost basis)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferUsdAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netCollateralTransferUsdAmount","typeLabel":"number\u003cdouble> | null"},"netPositionValueTokenAmount":{"oneOf":[{"type":"number","format":"double","description":"Net position value in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net position value in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount","typeLabel":"number\u003cdouble> | null"},"netPositionValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Net position value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net position value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd","typeLabel":"number\u003cdouble> | null"},"principalValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Principal value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Principal value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd","typeLabel":"number\u003cdouble> | null"},"tokenPnl":{"oneOf":[{"type":"integer","format":"int64","description":"Token PnL (in collateral token base units)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].tokenPnl.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Token PnL (in collateral token base units)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].tokenPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].tokenPnl","typeLabel":"integer\u003cint64> | null"},"usdPnl":{"oneOf":[{"type":"number","format":"double","description":"USD PnL","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].usdPnl.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"USD PnL","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].usdPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX].usdPnl","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1.dataPoints","typeLabel":"object[]"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData.oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.pnlData","typeLabel":"null | object"},"positionValueData":{"oneOf":[{"type":"null","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.0","typeLabel":"null"},{"type":"object","description":"Position value graph data","required":["dataPoints"],"properties":{"dataPoints":{"type":"array","items":{"type":"object","required":["date","collateralMint"],"properties":{"collateralMint":{"type":"string","description":"Active collateral mint at this timestamp (can change during rollovers)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralMint","typeLabel":"string"},"date":{"type":"integer","format":"int64","description":"Unix timestamp","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].date","typeLabel":"integer\u003cint64>"},"collateralTokenAmount":{"oneOf":[{"type":"number","format":"double","description":"Collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmount","typeLabel":"number\u003cdouble> | null"},"collateralTokenAmountOfDebt":{"oneOf":[{"type":"number","format":"double","description":"Collateral token amount of debt (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmountOfDebt.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral token amount of debt (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmountOfDebt.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralTokenAmountOfDebt","typeLabel":"number\u003cdouble> | null"},"collateralValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Collateral value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].collateralValueUsd","typeLabel":"number\u003cdouble> | null"},"isProjection":{"type":"boolean","description":"Whether this is a projection","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].isProjection","typeLabel":"boolean"},"netPositionValueTokenAmount":{"oneOf":[{"type":"number","format":"double","description":"Net position value in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net position value in collateral token amount (UI amount)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueTokenAmount","typeLabel":"number\u003cdouble> | null"},"netPositionValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Net position value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net position value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].netPositionValueUsd","typeLabel":"number\u003cdouble> | null"},"principalValueUsd":{"oneOf":[{"type":"number","format":"double","description":"Principal value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Principal value in USD","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX].principalValueUsd","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1.dataPoints","typeLabel":"object[]"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData.oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.positionValueData","typeLabel":"null | object"},"rateHistoryData":{"oneOf":[{"type":"null","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.0","typeLabel":"null"},{"type":"object","description":"Rate history graph data","required":["dataPoints"],"properties":{"dataPoints":{"type":"array","items":{"type":"object","required":["date","collateralMint"],"properties":{"collateralMint":{"type":"string","description":"Active collateral mint at this timestamp (can change during rollovers)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].collateralMint","typeLabel":"string"},"date":{"type":"integer","format":"int64","description":"Unix timestamp","isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].date","typeLabel":"integer\u003cint64>"},"borrowApy":{"oneOf":[{"type":"number","format":"double","description":"Borrow APY (as percentage)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].borrowApy.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Borrow APY (as percentage)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].borrowApy.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].borrowApy","typeLabel":"number\u003cdouble> | null"},"collateralApy":{"oneOf":[{"type":"number","format":"double","description":"Collateral/Yield APY (as percentage)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].collateralApy.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Collateral/Yield APY (as percentage)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].collateralApy.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].collateralApy","typeLabel":"number\u003cdouble> | null"},"isProjection":{"type":"boolean","description":"Whether this is a projection","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].isProjection","typeLabel":"boolean"},"netApy":{"oneOf":[{"type":"number","format":"double","description":"Net leveraged APY (as percentage, e.g., 15.5 for 15.5%)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].netApy.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Net leveraged APY (as percentage, e.g., 15.5 for 15.5%)","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].netApy.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX].netApy","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1.dataPoints","typeLabel":"object[]"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData.oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.rateHistoryData","typeLabel":"null | object"},"tokenUsdPnl":{"oneOf":[{"type":"number","format":"double","description":"In-kind PnL re-priced at the **current** collateral spot price\n(`collateralPnl_ui × currentCollateralPrice`) — the value the loop\nposition card shows for non-leverage loops. `Some` only for loop loans\nwith single-token collateral and an available current price; `None` for\nnon-loop loans, CLMM/LP collateral, or missing price (FE falls back to\n`usdPnl`). Leverage loops carry it too, but the card uses `usdPnl`.","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.tokenUsdPnl.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"In-kind PnL re-priced at the **current** collateral spot price\n(`collateralPnl_ui × currentCollateralPrice`) — the value the loop\nposition card shows for non-leverage loops. `Some` only for loop loans\nwith single-token collateral and an available current price; `None` for\nnon-loop loans, CLMM/LP collateral, or missing price (FE falls back to\n`usdPnl`). Leverage loops carry it too, but the card uses `usdPnl`.","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.tokenUsdPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.tokenUsdPnl","typeLabel":"number\u003cdouble> | null"},"usdPnl":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnl.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnl","typeLabel":"number\u003cdouble> | null"},"usdPnlPctChange":{"oneOf":[{"type":"number","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnlPctChange.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnlPctChange.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1.usdPnlPctChange","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"\\items.items.[INDEX].pnl.oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].pnl","typeLabel":"null | object"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"description":"Per-loan items (each flattens the loan snapshot + USD/risk fields).","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"pageInfo":{"type":"object","description":"Pagination envelope shared across paginated listing endpoints\n(`/loans/info`, `/strategy/infos`, `/loop/info/v2`, `/lending_vaults/user/v2`).\n`totalItems` / `totalPages` are filter-scoped, not page-scoped.","required":["page","pageSize","totalItems","totalPages"],"properties":{"page":{"type":"integer","format":"int64","description":"0-indexed page number echoed back from the request.","minimum":0,"isRequired":true,"uniqueKey":"pageInfo.page","typeLabel":"integer\u003cint64>"},"pageSize":{"type":"integer","format":"int64","description":"Maximum item count per page applied by the server (may differ from\nthe request's `pageSize` if the request was 0 or above the cap).","minimum":0,"isRequired":true,"uniqueKey":"pageInfo.pageSize","typeLabel":"integer\u003cint64>"},"totalItems":{"type":"integer","format":"int64","description":"Total item count across the *filter* scope (not just this page).\nWhat \"item\" counts as depends on the endpoint — for grouped\nendpoints this is the count of distinct groups, not loans/rows.","minimum":0,"isRequired":true,"uniqueKey":"pageInfo.totalItems","typeLabel":"integer\u003cint64>"},"totalPages":{"type":"integer","format":"int64","description":"`ceil(totalItems / pageSize)`.","minimum":0,"isRequired":true,"uniqueKey":"pageInfo.totalPages","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"pageInfo","typeLabel":"object"},"principalMints":{"type":"array","items":{"type":"string","uniqueKey":"principalMints.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"principalMints","typeLabel":"string[]"},"snapshotTs":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"snapshotTs","typeLabel":"integer\u003cint64>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"aggregate":{"collateralUsd":123,"count":1,"dailyCollateralYieldUsd":123,"dailyInterestUsd":123,"dailyPrincipalYieldUsd":123,"interestAccruedUsd":123,"interestEarnedAllTimeUsd":123,"pendingYieldUsd":123,"principalUsd":123,"wAvgApy":123,"wAvgCollateralApy":123,"pnlUsd":123,"tokenUsdPnl":123},"collateralMints":["\u003cstring>"],"items":[{"collateral":[{"amount":1,"assetIdentifier":"\u003cstring>","assetMint":"\u003cstring>","assetType":1,"index":1,"loan":"\u003cstring>","id":1,"lastInteractedTime":1,"lastInteractedTxn":"\u003cstring>","writeVersion":1}],"collateralYieldPct":123,"ledgers":[{"apy":1,"duration":1,"durationType":1,"endTime":1,"interestOutstanding":1,"interestPerSecond":123,"lastInteractedTime":1,"lastInteractedTxn":"\u003cstring>","lastInterestUpdatedTime":1,"ledgerIndex":1,"loan":"\u003cstring>","lqtRatios":[1],"ltvRatios":[1],"marketInformation":"\u003cstring>","principalDue":1,"principalMint":"\u003cstring>","principalRepaid":1,"startTime":1,"status":1,"strategy":"\u003cstring>","weights":[1],"id":1,"isLoop":123,"writeVersion":1}],"loan":{"address":"\u003cstring>","borrower":"\u003cstring>","bump":1,"closed":true,"lastInteractedTime":1,"lastInteractedTxn":"\u003cstring>","loanStatus":1,"nonce":1,"startTime":1,"writeVersion":1,"id":1},"loanType":1,"principalYieldPct":123,"collateralBreakdown":[{"assetIdentifier":"\u003cstring>","usd":123}],"collateralUsd":123,"collateralUsdRisk":123,"interestAccruedUsd":123,"pendingYieldUsd":123,"pnlUsd":123,"principalUsd":123,"principalUsdRisk":123,"pnl":{"collateralPnl":123,"collateralPnlPctChange":123,"initialUserCollateralContribution":123,"initialUserCollateralContributionUsd":123,"markers":[{"date":123,"type":"rollover","metadata":{"newCollateralMint":"\u003cstring>","previousCollateralMint":"\u003cstring>"}}],"netCollateralInflow":123,"netCollateralUsdInflow":123,"netPrincipalInflow":123,"netPrincipalUsdInflow":123,"pnlData":{"dataPoints":[{"date":123,"collateralPrice":123,"collateralValueUsd":123,"isProjection":true,"netCollateralTransferTokenAmount":123,"netCollateralTransferUsdAmount":123,"netPositionValueTokenAmount":123,"netPositionValueUsd":123,"principalValueUsd":123,"tokenPnl":123,"usdPnl":123}]},"positionValueData":{"dataPoints":[{"collateralMint":"\u003cstring>","date":123,"collateralTokenAmount":123,"collateralTokenAmountOfDebt":123,"collateralValueUsd":123,"isProjection":true,"netPositionValueTokenAmount":123,"netPositionValueUsd":123,"principalValueUsd":123}]},"rateHistoryData":{"dataPoints":[{"collateralMint":"\u003cstring>","date":123,"borrowApy":123,"collateralApy":123,"isProjection":true,"netApy":123}]},"tokenUsdPnl":123,"usdPnl":123,"usdPnlPctChange":123}}],"pageInfo":{"page":1,"pageSize":1,"totalItems":1,"totalPages":1},"principalMints":["\u003cstring>"],"snapshotTs":123}}},"exampleType":"generated"}},"exampleType":"generated"},"a43a5ba7-2000-4c7f-a0c9-7e806d700cac":{"description":"","content":{"application/json":{"schema":{"type":"object","description":"Canonical error envelope for every endpoint. The `x-request-id` response\nheader carries the correlation id for the failing request.","required":["error"],"properties":{"error":{"type":"object","description":"error detail","required":["code","message"],"properties":{"code":{"type":"integer","format":"int32","description":"HTTP status code, mirrored in the response status line","example":400,"minimum":0,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer\u003cint32>"},"message":{"type":"string","description":"human-readable, client-safe message (sensitive data redacted)","example":"Request could not be processed.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"simulation":{"oneOf":[{"type":"null","uniqueKey":"error.simulation.oneOf.0","typeLabel":"null"},{"type":"object","description":"Populated on transaction-generation endpoints when the build-path\nsimulation reverts. Absent on all other error paths.","required":["decoded","logs"],"properties":{"decoded":{"type":"string","description":"Human-readable decoded error (Anchor \"Error Message: ...\" when available,\notherwise the raw program error code or `TransactionError` debug form).","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.decoded","typeLabel":"string"},"logs":{"type":"array","items":{"type":"string","uniqueKey":"error.simulation.oneOf.1.logs.items.[INDEX]","typeLabel":"string"},"description":"Program logs from the reverting simulation, in order.","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.logs","typeLabel":"string[]"},"serializedTransaction":{"oneOf":[{"type":"string","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.simulation.oneOf.1.serializedTransaction","typeLabel":"string | null"}},"uniqueKey":"error.simulation.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.simulation","typeLabel":"null | object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":400,"message":"Request could not be processed.","simulation":{"decoded":"\u003cstring>","logs":["\u003cstring>"],"serializedTransaction":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"69458270-9a91-47a1-ac22-6e0c4c8303b3":{"description":"","content":{"application/json":{"schema":{"type":"object","description":"Canonical error envelope for every endpoint. The `x-request-id` response\nheader carries the correlation id for the failing request.","required":["error"],"properties":{"error":{"type":"object","description":"error detail","required":["code","message"],"properties":{"code":{"type":"integer","format":"int32","description":"HTTP status code, mirrored in the response status line","example":400,"minimum":0,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer\u003cint32>"},"message":{"type":"string","description":"human-readable, client-safe message (sensitive data redacted)","example":"Request could not be processed.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"simulation":{"oneOf":[{"type":"null","uniqueKey":"error.simulation.oneOf.0","typeLabel":"null"},{"type":"object","description":"Populated on transaction-generation endpoints when the build-path\nsimulation reverts. Absent on all other error paths.","required":["decoded","logs"],"properties":{"decoded":{"type":"string","description":"Human-readable decoded error (Anchor \"Error Message: ...\" when available,\notherwise the raw program error code or `TransactionError` debug form).","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.decoded","typeLabel":"string"},"logs":{"type":"array","items":{"type":"string","uniqueKey":"error.simulation.oneOf.1.logs.items.[INDEX]","typeLabel":"string"},"description":"Program logs from the reverting simulation, in order.","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.logs","typeLabel":"string[]"},"serializedTransaction":{"oneOf":[{"type":"string","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.simulation.oneOf.1.serializedTransaction","typeLabel":"string | null"}},"uniqueKey":"error.simulation.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.simulation","typeLabel":"null | object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":400,"message":"Request could not be processed.","simulation":{"decoded":"\u003cstring>","logs":["\u003cstring>"],"serializedTransaction":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"6980a6c8-7a01-4500-bc2d-bee328ac48f5":{"description":"","content":{"application/json":{"schema":{"type":"object","description":"Canonical error envelope for every endpoint. The `x-request-id` response\nheader carries the correlation id for the failing request.","required":["error"],"properties":{"error":{"type":"object","description":"error detail","required":["code","message"],"properties":{"code":{"type":"integer","format":"int32","description":"HTTP status code, mirrored in the response status line","example":400,"minimum":0,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer\u003cint32>"},"message":{"type":"string","description":"human-readable, client-safe message (sensitive data redacted)","example":"Request could not be processed.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"simulation":{"oneOf":[{"type":"null","uniqueKey":"error.simulation.oneOf.0","typeLabel":"null"},{"type":"object","description":"Populated on transaction-generation endpoints when the build-path\nsimulation reverts. Absent on all other error paths.","required":["decoded","logs"],"properties":{"decoded":{"type":"string","description":"Human-readable decoded error (Anchor \"Error Message: ...\" when available,\notherwise the raw program error code or `TransactionError` debug form).","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.decoded","typeLabel":"string"},"logs":{"type":"array","items":{"type":"string","uniqueKey":"error.simulation.oneOf.1.logs.items.[INDEX]","typeLabel":"string"},"description":"Program logs from the reverting simulation, in order.","isRequired":true,"uniqueKey":"error.simulation.oneOf.1.logs","typeLabel":"string[]"},"serializedTransaction":{"oneOf":[{"type":"string","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base64-encoded, bincode-serialized `VersionedTransaction` that was\nsimulated (signatures zeroed for sig-verify-disabled simulation).\nDecode with `bincode::deserialize::\u003cVersionedTransaction>(\u0026base64_decode(..))`.","uniqueKey":"error.simulation.oneOf.1.serializedTransaction.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.simulation.oneOf.1.serializedTransaction","typeLabel":"string | null"}},"uniqueKey":"error.simulation.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.simulation","typeLabel":"null | object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":400,"message":"Request could not be processed.","simulation":{"decoded":"\u003cstring>","logs":["\u003cstring>"],"serializedTransaction":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"19e89db7-8de4-44f1-a3c8-332e7c9dd942":{"url":"https://tars.loopscale.com/v1","description":"Loopscale Production Server"}}},"originalFileLocation":"api-reference/data/positions/positions.json"},"subdomain":"loopscale-docs","siteName":"Loopscale Docs","title":"Get loan info - Loopscale Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T10:50:26.766Z","originalFileLocation":"api-reference/data/positions/get-loan-info.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns a list of loans filtered by request. Results support pagination.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Loopscale Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get loan info - Loopscale Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns a list of loans filtered by request. Results support pagination.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Loopscale Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://loopscale-docs.mintlify.app/_mintlify/api/og/v2?division=Positions\u0026amp;title=Get+loan+info\u0026amp;description=Returns+a+list+of+loans+filtered+by+request.+Results+support+pagination.\u0026amp;theme=427b0817701e0d54f9b70a3b\u0026amp;signature=0c95565f9c13ec914e85513c98088f593debeaf102dd72bbb54e40b530366ac6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get loan info - Loopscale Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns a list of loans filtered by request. Results support pagination.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://loopscale-docs.mintlify.app/_mintlify/api/og/v2?division=Positions\u0026amp;title=Get+loan+info\u0026amp;description=Returns+a+list+of+loans+filtered+by+request.+Results+support+pagination.\u0026amp;theme=427b0817701e0d54f9b70a3b\u0026amp;signature=0c95565f9c13ec914e85513c98088f593debeaf102dd72bbb54e40b530366ac6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/loopscale-docs/BVOHXLnmyKFZRAaO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Loopscale Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#276ED6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/data/positions/get-loan-info.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.loopscale.com/#organization\",\"name\":\"Loopscale Docs\",\"url\":\"https://docs.loopscale.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/loopscale-docs/7wEScHg4Gg_v9bhc/static/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=7wEScHg4Gg_v9bhc\u0026q=85\u0026s=e3d7a3c8bd59969d54c957404dcb2ca9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.loopscale.com#website\",\"name\":\"Loopscale Docs\",\"url\":\"https://docs.loopscale.com\",\"publisher\":{\"@id\":\"https://docs.loopscale.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info#webpage\",\"url\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info\",\"name\":\"Get loan info\",\"description\":\"Returns a list of loans filtered by request. Results support pagination.\",\"dateModified\":\"2026-10-02T10:50:26.766Z\",\"isPartOf\":{\"@id\":\"https://docs.loopscale.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data Endpoints\",\"item\":\"https://docs.loopscale.com/api-reference/data/markets/get-quotes\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get loan info\",\"item\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info#apireference\",\"headline\":\"Get loan info\",\"name\":\"Get loan info\",\"description\":\"Returns a list of loans filtered by request. Results support pagination.\",\"url\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info\",\"mainEntityOfPage\":{\"@id\":\"https://docs.loopscale.com/api-reference/data/positions/get-loan-info#webpage\"},\"dateModified\":\"2026-10-02T10:50:26.766Z\",\"publisher\":{\"@id\":\"https://docs.loopscale.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.loopscale.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Loopscale Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Loopscale Docs","nav":{"global":null,"dropdowns":[{"dropdown":"Product Docs","icon":{"style":"duotone","name":"book-open"},"description":"Understand the core concepts","groups":[{"group":"Introduction","pages":[{"title":"Loopscale Documentation","sidebarTitle":"Overview","icon":"rectangle-history","iconType":"duotone","mode":"wide","href":"/introduction/overview"},{"title":"Why Loopscale?","icon":"stars","iconType":"duotone","href":"/introduction/why-loopscale"}]},{"group":"Using Loopscale","pages":[{"group":"Lend","icon":{"style":"duotone","name":"chart-line"},"pages":[{"title":"Lend with Loopscale Vaults","sidebarTitle":"Lend with Vaults","icon":"square-bolt","iconType":"duotone","href":"/using-loopscale/lend/lend"},{"title":"Advanced Lending","icon":"gears","iconType":"duotone","href":"/using-loopscale/lend/advanced-lend"}]},{"title":"Earn Vaults","sidebarTitle":"Earn","icon":"vault","iconType":"duotone","href":"/using-loopscale/earn-vaults"},{"title":"Loop","icon":"circles-overlap","iconType":"duotone","href":"/using-loopscale/loop"},{"group":"Borrow","icon":{"style":"duotone","name":"money-simple-from-bracket"},"pages":[{"title":"Borrow on Loopscale Markets","sidebarTitle":"Overview","icon":"money-check-dollar","iconType":"duotone","href":"/using-loopscale/borrow/overview"},{"title":"Health \u0026 Liquidations","icon":"heart-pulse","iconType":"duotone","href":"/using-loopscale/borrow/health-and-liquidations"},{"title":"Refinancing","icon":"arrows-rotate","iconType":"duotone","href":"/using-loopscale/borrow/refinances"},{"title":"LP Collateral Management","icon":"droplet-percent","iconType":"duotone","href":"/using-loopscale/borrow/lp-collateral-management"}]},{"title":"Points on Loopscale","sidebarTitle":"Points","icon":"sparkle","iconType":"duotone","href":"/using-loopscale/points"}]},{"group":"Protocol Concepts","pages":[{"title":"Overview","icon":"shapes","iconType":"duotone","mode":"wide","href":"/protocol-concepts/overview"},{"title":"Loans \u0026 Orders","icon":"arrows-to-dotted-line","href":"/protocol-concepts/loans-and-orders"},{"title":"Credit Order Book","icon":"chart-simple-horizontal","iconType":"duotone","href":"/protocol-concepts/credit-order-book"},{"title":"Loopscale Vaults","icon":"diagram-nested","iconType":"duotone","href":"/protocol-concepts/loopscale-vaults"},{"title":"Loops","icon":"circle-dot","iconType":"duotone","href":"/protocol-concepts/loops"}]},{"group":"Resources","pages":[{"title":"Risks \u0026 Security","icon":"shield-quartered","iconType":"duotone","href":"/resources/risks-and-security"},{"title":"Assets and Oracles","mode":"wide","icon":"gears","iconType":"duotone","href":"/resources/asset-parameters"},{"title":"Addresses","mode":"wide","icon":"wallet","iconType":"duotone","href":"/resources/addresses"},{"title":"FAQ","icon":"comment-question","iconType":"duotone","mode":"wide","href":"/resources/faq"},{"title":"Formation","icon":{"name":"hands-helping","style":"regular","library":"fontawesome"},"href":"/resources/formation"},{"title":"Audits \u0026 Bug Bounty","mode":"wide","icon":"badge-check","iconType":"duotone","href":"/resources/audits"},{"title":"Brand Kit","url":"https://drive.google.com/drive/folders/1IYXgQ-Ihyb19dvGF1wfn1Qfjd4e4Kom5?usp=sharing","icon":"palette","iconType":"duotone","href":"/resources/brand-kit"},{"group":"Disclaimer \u0026 Terms","icon":{"style":"duotone","name":"clipboard-question"},"pages":[{"title":"Terms of Use","href":"/resources/terms"},{"title":"Privacy Policy","href":"/resources/privacy"},{"title":"Disclaimer","href":"/resources/disclaimer"}]}]}]},{"dropdown":"API Reference","icon":{"style":"duotone","name":"square-terminal"},"description":"Integrate the Loopscale protocol","groups":[{"group":"Getting Started","pages":[{"title":"Loopscale API","sidebarTitle":"Introduction","icon":"circle-info","iconType":"duotone","mode":"wide","href":"/api-reference/introduction/introduction"}]},{"group":"Transaction Endpoints","pages":[{"group":"Borrowing","icon":{"style":"duotone","name":"money-simple-from-bracket"},"pages":[{"title":"Create loan","openapi":"post /markets/creditbook/create","href":"/api-reference/transactions/borrow/create-loan"},{"title":"Borrow principal","openapi":"post /markets/creditbook/borrow","href":"/api-reference/transactions/borrow/borrow-principal"},{"title":"Flash borrow","openapi":"post /markets/creditbook/flash_borrow","href":"/api-reference/transactions/borrow/flash-borrow"},{"title":"Build loan","openapi":"post /markets/creditbook/build","href":"/api-reference/transactions/borrow/build-loan"},{"title":"Repay loan","openapi":"post /markets/creditbook/repay","href":"/api-reference/transactions/borrow/repay-loan"},{"title":"Simple repay loan","openapi":"post /markets/creditbook/repay_simple","href":"/api-reference/transactions/borrow/simple-repay-loan"},{"title":"Deposit collateral","openapi":"post /markets/creditbook/collateral/deposit","href":"/api-reference/transactions/borrow/deposit-collateral"},{"title":"Withdraw collateral","openapi":"post /markets/creditbook/collateral/withdraw","href":"/api-reference/transactions/borrow/withdraw-collateral"},{"title":"Swap collateral","openapi":"post /markets/creditbook/swap_collateral","href":"/api-reference/transactions/borrow/swap-collateral"},{"title":"Refinance loan","openapi":"post /markets/creditbook/refinance","href":"/api-reference/transactions/borrow/refinance-loan"},{"title":"Sell ledger","openapi":"post /markets/creditbook/sell","href":"/api-reference/transactions/borrow/sell-ledger"},{"title":"Close loan","openapi":"post /markets/creditbook/close_loan","href":"/api-reference/transactions/borrow/close-loan"}]},{"group":"LP Collateral Management","icon":{"style":"duotone","name":"chart-candlestick"},"pages":[{"title":"Claim Orca fees","openapi":"post /markets/creditbook/collateral/orca/claim_fees","href":"/api-reference/transactions/clmm/claim-orca-fees"},{"title":"Update Orca liquidity","openapi":"post /markets/creditbook/collateral/orca/update_liquidity","href":"/api-reference/transactions/clmm/update-orca-liquidity"},{"title":"Transfer Orca position","openapi":"post /markets/creditbook/collateral/orca/transfer_position","href":"/api-reference/transactions/clmm/transfer-orca-position"},{"title":"Update Raydium liquidity","openapi":"post /markets/creditbook/collateral/raydium/update_liquidity","href":"/api-reference/transactions/clmm/update-raydium-liquidity"},{"title":"Transfer Raydium position","openapi":"post /markets/creditbook/collateral/raydium/transfer_position","href":"/api-reference/transactions/clmm/transfer-raydium-position"}]},{"group":"Loopscale Vaults","icon":{"style":"duotone","name":"money-simple-from-bracket"},"pages":[{"title":"Deposit to Vault","sidebarTitle":"Deposit to Vault","openapi":"post /markets/lending_vaults/deposit","href":"/api-reference/transactions/vault/deposit"},{"title":"Withdraw from Vault","sidebarTitle":"Withdraw from Vault","openapi":"post /markets/lending_vaults/withdraw","href":"/api-reference/transactions/vault/withdraw"},{"title":"Claim Vault rewards","sidebarTitle":"Claim Vault rewards","openapi":"post /markets/lending_vaults/rewards/claim","href":"/api-reference/transactions/vault/claim-rewards"}]},{"group":"Earn Vaults","icon":{"style":"duotone","name":"vault"},"pages":[{"title":"Acknowledge Earn Vault","sidebarTitle":"Acknowledge Earn Vault","openapi":"post /markets/earn/vaults/acknowledge","href":"/api-reference/transactions/earn/acknowledge"},{"title":"Deposit to Earn Vault","sidebarTitle":"Deposit","api":"POST https://tars.loopscale.com/v1/pandora/earn/vaults/deposit/tx","href":"/api-reference/transactions/earn/deposit"},{"title":"Withdraw from Earn Vault","sidebarTitle":"Withdraw","api":"POST https://tars.loopscale.com/v1/pandora/earn/vaults/withdraw_request/tx","href":"/api-reference/transactions/earn/withdraw-request"},{"title":"Claim Earn Withdrawal","sidebarTitle":"Claim Withdrawal","api":"POST https://tars.loopscale.com/v1/pandora/earn/vaults/withdraw_claim/tx","href":"/api-reference/transactions/earn/claim-withdrawal"},{"title":"Cancel Earn Withdrawal","sidebarTitle":"Cancel Withdrawal","api":"POST https://tars.loopscale.com/v1/pandora/earn/vaults/withdraw_cancel/tx","href":"/api-reference/transactions/earn/cancel-withdrawal"}]},{"group":"Strategy","icon":{"style":"duotone","name":"chart-pie"},"pages":[{"title":"Create strategy","openapi":"post /markets/strategy/create","href":"/api-reference/transactions/strategy/create-strategy"},{"title":"Deposit into strategy","openapi":"post /markets/strategy/deposit","href":"/api-reference/transactions/strategy/deposit-strategy"},{"title":"Withdraw from strategy","openapi":"post /markets/strategy/withdraw","href":"/api-reference/transactions/strategy/withdraw-strategy"},{"title":"Update strategy","openapi":"post /markets/strategy/update","href":"/api-reference/transactions/strategy/update-strategy"},{"title":"Close strategy","openapi":"post /markets/strategy/close/{strategy}","href":"/api-reference/transactions/strategy/close-strategy"}]},{"group":"Curation","icon":{"style":"duotone","name":"money-simple-from-bracket"},"pages":[{"title":"Edit vault deposits","openapi":"post /markets/lending_vaults/deposits/edit","href":"/api-reference/transactions/vault/edit-deposits"},{"title":"Create vault timelocks","openapi":"post /markets/lending_vaults/timelock/create","href":"/api-reference/transactions/vault/create-timelocks"},{"title":"Cancel vault timelocks","openapi":"post /markets/lending_vaults/timelock/cancel","href":"/api-reference/transactions/vault/cancel-timelocks"},{"title":"Create rewards schedule","openapi":"post /markets/lending_vaults/rewards/schedule/create","href":"/api-reference/transactions/vault/create-rewards-schedule"},{"title":"Edit rewards schedule","openapi":"post /markets/lending_vaults/rewards/schedule/edit","href":"/api-reference/transactions/vault/edit-rewards-schedule"}]}]},{"group":"Data Endpoints","pages":[{"group":"Markets","icon":{"style":"duotone","name":"chart-candlestick"},"pages":[{"title":"Get quotes","openapi":"post /markets/quote","href":"/api-reference/data/markets/get-quotes"},{"title":"Get best quote","openapi":"post /markets/quote/max","description":"Returns the top quote for each specified collateral asset based on available liquidity. This endpoint is designed for minimizing rate slippage for a borrow with known inputs.","href":"/api-reference/data/markets/get-best-quote"}]},{"group":"Positions","icon":{"style":"duotone","name":"chart-pie"},"pages":[{"title":"Get loan info","openapi":"post /markets/loans/info","href":"/api-reference/data/positions/get-loan-info"}]},{"group":"Loops","icon":{"style":"duotone","name":"chart-line"},"pages":[{"title":"Get Loop info","openapi":"post /markets/loop/info","description":"Returns Loop vault info keyed by Loop vault identifier. You can filter by explicit vault identifiers and/or by tags.","href":"/api-reference/data/loops/get-loop-info"}]},{"group":"Vaults","icon":{"style":"duotone","name":"chart-candlestick"},"pages":[{"title":"Get Vaults","openapi":"post /markets/lending_vaults/info","href":"/api-reference/data/vaults/get-vaults"},{"title":"Get Vault depositors","openapi":"post /markets/lending_vaults/deposits","href":"/api-reference/data/user/get-vault-depositors"}]},{"group":"Earn Vaults","icon":{"style":"duotone","name":"vault"},"pages":[{"title":"Get Earn Vaults","sidebarTitle":"Get Earn Vaults","openapi":"get /markets/earn/vaults","href":"/api-reference/data/earn/get-earn-vaults"},{"title":"Get Earn Vault","sidebarTitle":"Get Earn Vault","openapi":"get /markets/earn/vaults/{address}","href":"/api-reference/data/earn/get-earn-vault"},{"title":"Get Earn Vault History","sidebarTitle":"Get Earn Vault History","openapi":"post /markets/earn/vaults/history","href":"/api-reference/data/earn/get-earn-vault-history"},{"title":"Get Earn Position","sidebarTitle":"Get Earn Position","openapi":"post /markets/earn/vaults/positions","href":"/api-reference/data/earn/get-earn-position"},{"title":"Get Earn Portfolio","sidebarTitle":"Get Earn Portfolio","openapi":"post /markets/earn/portfolio/positions","href":"/api-reference/data/earn/get-earn-portfolio"},{"title":"Get Earn Withdrawal Queue","sidebarTitle":"Get Earn Withdrawal Queue","openapi":"post /markets/earn/vaults/queue","href":"/api-reference/data/earn/get-earn-withdrawal-queue"}]},{"group":"Strategies","icon":{"style":"duotone","name":"chart-pie"},"pages":[{"title":"Get strategies","openapi":"post /markets/strategy/infos","href":"/api-reference/data/strategies/get-strategies"}]},{"group":"Users","icon":{"style":"duotone","name":"users"},"pages":[{"title":"Get collateral holders","openapi":"post /markets/collateral/holders","href":"/api-reference/data/user/get-collateral-holders"},{"title":"Get historical collateral holders","openapi":"post /markets/collateral/holders/historical","href":"/api-reference/data/user/get-historical-collateral-holders"},{"title":"Get Vault depositors","openapi":"post /markets/lending_vaults/deposits","href":"/api-reference/data/user/get-vault-depositors"}]}]},{"group":"Guides","pages":[{"title":"Calculate Vault \u0026 Loop Metrics","sidebarTitle":"Vault \u0026 Loop Metrics","icon":"calculator","iconType":"duotone","href":"/api-reference/guides/vault-and-loop-metrics"},{"title":"Integrate Earn Vaults","sidebarTitle":"Earn Vaults","icon":"vault","iconType":"duotone","href":"/api-reference/guides/earn-integration"}]}]},{"dropdown":"Partners","icon":{"style":"duotone","name":"arrow-up-right-dots"},"description":"Scale assets and markets","groups":[{"group":"For Issuers","pages":[{"title":"How Loopscale Works","icon":"circle-info","iconType":"duotone","href":"/partners/issuers/how-loopscale-works"},{"title":"Integration Types","icon":"link","iconType":"duotone","href":"/partners/issuers/integrate"},{"title":"Real-World Assets","icon":"building-columns","iconType":"duotone","href":"/partners/issuers/rwa"}]},{"group":"For Vault Curators","pages":[{"title":"Loopscale Vault Curation","sidebarTitle":"Curation","icon":"money-bill-transfer","iconType":"duotone","href":"/partners/curators/curation"},{"title":"Vault Manager UI Guide","sidebarTitle":"Vault Manager UI","icon":"browser","iconType":"duotone","href":"/partners/curators/vault-manager-ui"},{"title":"Loopscale Vault Architecture","sidebarTitle":"Vault Architecture","icon":"diagram-subtask","iconType":"duotone","href":"/partners/curators/vault-architecture"},{"title":"Security at Loopscale","sidebarTitle":"Security","icon":"shield-halved","iconType":"duotone","href":"/partners/curators/security"}]},{"group":"Guides","pages":[{"group":"Loopscale Vaults","pages":[{"title":"Deposit to Loopscale Vaults","sidebarTitle":"Deposit","icon":"chart-line","iconType":"duotone","href":"/partners/guides/deposit"},{"title":"Withdraw from Loopscale Vaults","sidebarTitle":"Withdraw","icon":"right-from-bracket","iconType":"duotone","href":"/partners/guides/withdraw"},{"title":"Manage Loopscale Vault Position","sidebarTitle":"Manage Position","icon":"gears","iconType":"duotone","href":"/partners/guides/manage"}]}]}]}]},"title":"Get loan info - Loopscale Docs","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}