Sum for priced holdings with known Symbiosis acquisition costs.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Symbiosis","colors":{"primary":"#16A34A","light":"#4ADE80","dark":"#15803D"},"favicon":"https://mintcdn.com/symbiosis-prod/YbuSUrAlmds2eoGH/favicon.svg?fit=max\u0026auto=format\u0026n=YbuSUrAlmds2eoGH\u0026q=85\u0026s=3874883f4395d54f753bfe50d44d77d3","api":{"playground":{"display":"interactive","proxy":true},"examples":{"languages":["curl","python","javascript"]}},"footer":{"socials":{"website":"https://symbiosis.markets"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"symbiosis-prod","hasAudioNarration":false,"actualSubdomain":"symbiosis-prod","customDomains":["docs.symbiosis.markets"],"gitSource":{"type":"github","owner":"symbiosis-markets","repo":"backend","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6adfcb2ff0abb69bb3859eb3","collectionId":"23b18004-f369-4b47-9510-f358991499d8","liveDeploymentHistoryId":"6adfcb2ff0abb69bb3859eb3","schemaVersion":"v3"},"entitlements":{},"buildId":"6ae4a1190c07cd143613ec05","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":29},{"language":"default","tag":"Auth","count":10},{"language":"default","tag":"RFQ","count":10},{"language":"default","tag":"Custody","count":9},{"language":"default","tag":"Documentation","count":6},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Integration guide","count":3}]},"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":"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":"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":"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":"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":"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":"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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs","slug":"/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs","pageMetadata":{"title":"Get portfolio value and unrealized PnL for tokens with known purchase costs.","description":null,"deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/portfolio/pnl","href":"/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs","autogeneratedByOpenApi":true},"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 portfolio value and unrealized PnL for tokens with known purchase costs.","description":null,"deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/portfolio/pnl","href":"/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["custody"],"summary":"Get portfolio value and unrealized PnL for tokens with known purchase costs.","operationId":"get_portfolio_pnl","responses":{"200":"23f77e30-feef-48ce-84a3-ec95b9bcb966","401":"95a3d205-ac99-4108-b35c-03b6d2fca481","403":"f0db2e57-0e16-4bf3-a0fe-436a62abd308"},"security":["5a5b75c1-8585-4591-b50b-e19d2b523a10","8f5f7484-6c1a-45eb-b56a-e92917ce1361"],"method":"get","type":"path","servers":["3b81d695-fe1f-4d11-9595-c607c925fd57"],"path":"/custody/portfolio/pnl","baseUrlOptions":["https://api.symbiosis.markets"],"title":"Get portfolio value and unrealized PnL for tokens with known purchase costs.","description":"","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"23f77e30-feef-48ce-84a3-ec95b9bcb966":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"positions":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].asset_id","typeLabel":"string"},"quantity":{"type":"string","isRequired":true,"uniqueKey":"positions.items.[INDEX].quantity","typeLabel":"string"},"venue":{"description":"The supported markets of the system.","type":"string","enum":["polymarket","kalshi","limitless"],"isRequired":true,"uniqueKey":"positions.items.[INDEX].venue","typeLabel":"enum\u003cstring>"},"average_purchase_price_before_fees":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].average_purchase_price_before_fees.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].average_purchase_price_before_fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].average_purchase_price_before_fees","typeLabel":"string | null"},"cost_basis_before_fees":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].cost_basis_before_fees.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].cost_basis_before_fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].cost_basis_before_fees","typeLabel":"string | null"},"marked_value":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].marked_value.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].marked_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].marked_value","typeLabel":"string | null"},"purchased_quantity":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].purchased_quantity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].purchased_quantity.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].purchased_quantity","typeLabel":"string | null"},"quote_received_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"positions.items.[INDEX].quote_received_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"positions.items.[INDEX].quote_received_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].quote_received_at","typeLabel":"string\u003cdate-time> | null"},"trading_fees":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].trading_fees.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].trading_fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].trading_fees","typeLabel":"string | null"},"unrealized_pnl_before_fees":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].unrealized_pnl_before_fees.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].unrealized_pnl_before_fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].unrealized_pnl_before_fees","typeLabel":"string | null"},"valuation_price":{"oneOf":[{"type":"string","uniqueKey":"positions.items.[INDEX].valuation_price.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.items.[INDEX].valuation_price.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.items.[INDEX].valuation_price","typeLabel":"string | null"}},"required":["venue","asset_id","quantity"],"uniqueKey":"positions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"positions","typeLabel":"object[]"},"trading_fees":{"description":"Remaining purchase fees for the positions included in unrealized_pnl_before_fees.","type":"string","isRequired":true,"uniqueKey":"trading_fees","typeLabel":"string"},"usdc":{"type":"string","isRequired":true,"uniqueKey":"usdc","typeLabel":"string"},"total_value":{"oneOf":[{"description":"USDC plus priced token holdings; unpriced holdings are excluded.","type":"string","uniqueKey":"total_value.oneOf.0","typeLabel":"string"},{"description":"USDC plus priced token holdings; unpriced holdings are excluded.","type":"null","uniqueKey":"total_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"total_value","typeLabel":"string | null"},"unrealized_pnl_before_fees":{"oneOf":[{"description":"Sum for priced holdings with known Symbiosis acquisition costs.","type":"string","uniqueKey":"unrealized_pnl_before_fees.oneOf.0","typeLabel":"string"},{"description":"Sum for priced holdings with known Symbiosis acquisition costs.","type":"null","uniqueKey":"unrealized_pnl_before_fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"unrealized_pnl_before_fees","typeLabel":"string | null"}},"required":["usdc","positions","trading_fees"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"positions":[{"asset_id":"\u003cstring>","quantity":"\u003cstring>","venue":"polymarket","average_purchase_price_before_fees":"\u003cstring>","cost_basis_before_fees":"\u003cstring>","marked_value":"\u003cstring>","purchased_quantity":"\u003cstring>","quote_received_at":"2023-11-07T05:31:56Z","trading_fees":"\u003cstring>","unrealized_pnl_before_fees":"\u003cstring>","valuation_price":"\u003cstring>"}],"trading_fees":"\u003cstring>","usdc":"\u003cstring>","total_value":"\u003cstring>","unrealized_pnl_before_fees":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"95a3d205-ac99-4108-b35c-03b6d2fca481":{"description":"Invalid, missing, or mis-signed credentials.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"f0db2e57-0e16-4bf3-a0fe-436a62abd308":{"description":"Authenticated, but the credential lacks the required scope.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"5a5b75c1-8585-4591-b50b-e19d2b523a10":{"SessionBearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Session token from `POST /auth/login`.","scopes":[],"schemeName":"SessionBearer"}},"8f5f7484-6c1a-45eb-b56a-e92917ce1361":{"ApiKeyHmac":{"type":"apiKey","in":"header","name":"APIKEY","description":"API key id, from `POST /auth/api-keys`.","scopes":[],"schemeName":"ApiKeyHmac"},"HmacTimestamp":{"type":"apiKey","in":"header","name":"X-Hmac-Timestamp","description":"Unix milliseconds used in the signed message.","scopes":[],"schemeName":"HmacTimestamp"},"HmacSignature":{"type":"apiKey","in":"header","name":"X-Hmac-Signature","description":"Base64 HMAC-SHA256 over `timestamp_ms \\n METHOD \\n PATH_AND_QUERY \\n BODY`. See the API description for the signing scheme.","scopes":[],"schemeName":"HmacSignature"}}},"servers":{"3b81d695-fe1f-4d11-9595-c607c925fd57":{"url":"https://api.symbiosis.markets"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Session token from `POST /auth/login`.","scopes":[],"schemeName":"SessionBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Session token from `POST /auth/login`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"SessionBearer","name":"Authorization"}],"title":"SessionBearer"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"APIKEY","description":"API key id, from `POST /auth/api-keys`.","scopes":[],"schemeName":"ApiKeyHmac"},"schema":{"title":"APIKEY","type":"string","description":"API key id, from `POST /auth/api-keys`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyHmac","name":"APIKEY"},{"scheme":{"type":"apiKey","in":"header","name":"X-Hmac-Timestamp","description":"Unix milliseconds used in the signed message.","scopes":[],"schemeName":"HmacTimestamp"},"schema":{"title":"X-Hmac-Timestamp","type":"string","description":"Unix milliseconds used in the signed message.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"HmacTimestamp","name":"X-Hmac-Timestamp"},{"scheme":{"type":"apiKey","in":"header","name":"X-Hmac-Signature","description":"Base64 HMAC-SHA256 over `timestamp_ms \\n METHOD \\n PATH_AND_QUERY \\n BODY`. See the API description for the signing scheme.","scopes":[],"schemeName":"HmacSignature"},"schema":{"title":"X-Hmac-Signature","type":"string","description":"Base64 HMAC-SHA256 over `timestamp_ms \\n METHOD \\n PATH_AND_QUERY \\n BODY`. See the API description for the signing scheme.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"HmacSignature","name":"X-Hmac-Signature"}],"title":"ApiKeyHmac \u0026 HmacTimestamp \u0026 HmacSignature"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"symbiosis-prod","siteName":"Symbiosis","title":"Get portfolio value and unrealized PnL for tokens with known purchase costs. - Symbiosis","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T13:52:29.693Z","originalFileLocation":"api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;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=\"system\"}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=\"application-name\" content=\"Symbiosis\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_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/symbiosis-prod/64PM9dkb2DM-UwJr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get portfolio value and unrealized PnL for tokens with known purchase costs. - Symbiosis\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Symbiosis\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://symbiosis-prod.mintlify.app/_mintlify/api/og/v2?division=Custody\u0026amp;title=Get+portfolio+value+and+unrealized+PnL+for+tokens+with+known+purchase+costs.\u0026amp;theme=753de078ecd40ac47f9d604d\u0026amp;signature=bb1b36868749d97500f44928fe8c5c6d5176b8d6c459ac4624918879ee9efb37\">\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 portfolio value and unrealized PnL for tokens with known purchase costs. - Symbiosis\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://symbiosis-prod.mintlify.app/_mintlify/api/og/v2?division=Custody\u0026amp;title=Get+portfolio+value+and+unrealized+PnL+for+tokens+with+known+purchase+costs.\u0026amp;theme=753de078ecd40ac47f9d604d\u0026amp;signature=bb1b36868749d97500f44928fe8c5c6d5176b8d6c459ac4624918879ee9efb37\">\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/symbiosis-prod/64PM9dkb2DM-UwJr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Symbiosis\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.symbiosis.markets/#organization\",\"name\":\"Symbiosis\",\"url\":\"https://docs.symbiosis.markets\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.symbiosis.markets#website\",\"name\":\"Symbiosis\",\"url\":\"https://docs.symbiosis.markets\",\"publisher\":{\"@id\":\"https://docs.symbiosis.markets/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs#webpage\",\"url\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs\",\"name\":\"Get portfolio value and unrealized PnL for tokens with known purchase costs.\",\"dateModified\":\"2026-10-30T13:52:29.693Z\",\"isPartOf\":{\"@id\":\"https://docs.symbiosis.markets#website\"},\"breadcrumb\":{\"@id\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Custody\",\"item\":\"https://docs.symbiosis.markets/api-reference/custody\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get portfolio value and unrealized PnL for tokens with known purchase costs.\",\"item\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs#apireference\",\"headline\":\"Get portfolio value and unrealized PnL for tokens with known purchase costs.\",\"name\":\"Get portfolio value and unrealized PnL for tokens with known purchase costs.\",\"url\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs\",\"mainEntityOfPage\":{\"@id\":\"https://docs.symbiosis.markets/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs#webpage\"},\"dateModified\":\"2026-10-30T13:52:29.693Z\",\"publisher\":{\"@id\":\"https://docs.symbiosis.markets/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.symbiosis.markets#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Symbiosis\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Symbiosis","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Auth","pages":[{"title":"Auth","href":"/api-reference/auth"},{"title":"Create an account from an email and password.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/signup","href":"/api-reference/auth/create-an-account-from-an-email-and-password"},{"title":"Consume an emailed verification token.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/verify","href":"/api-reference/auth/consume-an-emailed-verification-token"},{"title":"Re-send the verification email.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/verify/resend","href":"/api-reference/auth/re-send-the-verification-email"},{"title":"Exchange an email and password for a session token.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/login","href":"/api-reference/auth/exchange-an-email-and-password-for-a-session-token"},{"title":"Exchange a login challenge and a TOTP or recovery code for a session token.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/login/totp","href":"/api-reference/auth/exchange-a-login-challenge-and-a-totp-or-recovery-code-for-a-session-token"},{"title":"The caller's identity verification status.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/kyc","href":"/api-reference/auth/the-callers-identity-verification-status"},{"title":"Exchange a session for a KYC challenge.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/kyc/challenge","href":"/api-reference/auth/exchange-a-session-for-a-kyc-challenge"},{"title":"Start or resume the caller's identity verification.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/kyc/inquiry","href":"/api-reference/auth/start-or-resume-the-callers-identity-verification"},{"title":"Re-read the caller's inquiry from Persona.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/kyc/sync","href":"/api-reference/auth/re-read-the-callers-inquiry-from-persona"},{"title":"The session user's email and admin standing.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/me","href":"/api-reference/auth/the-session-users-email-and-admin-standing"},{"title":"The account and scopes behind the calling credential.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/whoami","href":"/api-reference/auth/the-account-and-scopes-behind-the-calling-credential"},{"title":"List the session user's API keys.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/api-keys","href":"/api-reference/auth/list-the-session-users-api-keys"},{"title":"Mint an API key for the session user.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/api-keys","href":"/api-reference/auth/mint-an-api-key-for-the-session-user"},{"title":"Revoke one of the session user's API keys.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/api-keys/{api_key_id}","href":"/api-reference/auth/revoke-one-of-the-session-users-api-keys"},{"title":"Mint a read-only websocket ticket.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/ws-ticket","href":"/api-reference/auth/mint-a-read-only-websocket-ticket"},{"title":"Mint a websocket ticket carrying the API key's scopes.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/ws-ticket/signed","href":"/api-reference/auth/mint-a-websocket-ticket-carrying-the-api-keys-scopes"},{"title":"List the session user's audit log events.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/audit-log","href":"/api-reference/auth/list-the-session-users-audit-log-events"},{"title":"Change the session user's password.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/change-password","href":"/api-reference/auth/change-the-session-users-password"},{"title":"Email a single-use password reset link.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/password/forgot","href":"/api-reference/auth/email-a-single-use-password-reset-link"},{"title":"Consume an emailed reset token and set a new password.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/password/reset","href":"/api-reference/auth/consume-an-emailed-reset-token-and-set-a-new-password"},{"title":"Whether TOTP is enabled for the session user.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/totp","href":"/api-reference/auth/whether-totp-is-enabled-for-the-session-user"},{"title":"Begin TOTP enrollment for the session user.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/totp/setup","href":"/api-reference/auth/begin-totp-enrollment-for-the-session-user"},{"title":"Confirm enrollment with a current code.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/totp/enable","href":"/api-reference/auth/confirm-enrollment-with-a-current-code"},{"title":"Disable TOTP; requires the password and a TOTP or recovery code.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/totp/disable","href":"/api-reference/auth/disable-totp;-requires-the-password-and-a-totp-or-recovery-code"},{"title":"Revoke the caller's session.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/logout","href":"/api-reference/auth/revoke-the-callers-session"},{"title":"Revoke every session belonging to the session user, the caller's included.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/sessions","href":"/api-reference/auth/revoke-every-session-belonging-to-the-session-user-the-callers-included"}]},{"group":"Custody","pages":[{"title":"Custody","href":"/api-reference/custody"},{"title":"Issue a deposit address on a chain.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /custody/create-deposit-address","href":"/api-reference/custody/issue-a-deposit-address-on-a-chain"},{"title":"List the user's deposit addresses.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-deposit-addresses","href":"/api-reference/custody/list-the-users-deposit-addresses"},{"title":"Get the user's balance for a single asset.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-balance","href":"/api-reference/custody/get-the-users-balance-for-a-single-asset"},{"title":"List the user's balances.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-balances","href":"/api-reference/custody/list-the-users-balances"},{"title":"Get the user's USDC balance.","description":null,"deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-usdc-balance","href":"/api-reference/custody/get-the-users-usdc-balance"},{"title":"Get portfolio value and unrealized PnL for tokens with known purchase costs.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/portfolio/pnl","href":"/api-reference/custody/get-portfolio-value-and-unrealized-pnl-for-tokens-with-known-purchase-costs"},{"title":"Queue a withdrawal to an external address.","description":"USDC withdrawals must be at least 10 USDC (10000000). Replaying a `client_withdrawal_id` with the same terms returns the original withdrawal; with different terms it returns 409.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /custody/withdraw","href":"/api-reference/custody/queue-a-withdrawal-to-an-external-address"},{"title":"List the user's withdrawals, newest first.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-withdrawals","href":"/api-reference/custody/list-the-users-withdrawals-newest-first"},{"title":"List the user's balance journal, newest first.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /custody/get-ledger","href":"/api-reference/custody/list-the-users-balance-journal-newest-first"}]},{"group":"RFQ","pages":[{"title":"RFQ","href":"/api-reference/rfq"},{"title":"Create a quote request.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rfq/request","href":"/api-reference/rfq/create-a-quote-request"},{"title":"Get the open requests for a venue and asset.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rfq/request","href":"/api-reference/rfq/get-the-open-requests-for-a-venue-and-asset"},{"title":"Cancel one of the user's open requests.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /rfq/request","href":"/api-reference/rfq/cancel-one-of-the-users-open-requests"},{"title":"Quote an open request.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rfq/quote","href":"/api-reference/rfq/quote-an-open-request"},{"title":"Get the open quotes for one of the user's requests.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rfq/quote","href":"/api-reference/rfq/get-the-open-quotes-for-one-of-the-users-requests"},{"title":"Cancel one of the user's open quotes.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /rfq/quote","href":"/api-reference/rfq/cancel-one-of-the-users-open-quotes"},{"title":"Atomically cancel one of the user's open quotes and quote its request anew.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rfq/replace","href":"/api-reference/rfq/atomically-cancel-one-of-the-users-open-quotes-and-quote-its-request-anew"},{"title":"Accept a quote, matching the request.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rfq/accept","href":"/api-reference/rfq/accept-a-quote-matching-the-request"},{"title":"Get the user's requests in any status, newest first.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rfq/get-requests","href":"/api-reference/rfq/get-the-users-requests-in-any-status-newest-first"},{"title":"Get the quotes the user has made, across requests.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rfq/get-quotes","href":"/api-reference/rfq/get-the-quotes-the-user-has-made-across-requests"},{"title":"Get the user's matches, on either side of the trade.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rfq/matches","href":"/api-reference/rfq/get-the-users-matches-on-either-side-of-the-trade"}]}]}]},"title":"Get portfolio value and unrealized PnL for tokens with known purchase costs. - Symbiosis","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}