The row size scale a settings UI can offer for one security and timeframe, in absolute
quote-currency units - the units rowSizeValue and every profile’s rowSize speak, so
scale values can be echoed back directly: the step every achievable row size is a
multiple of, and the bounds it stays within.
Measured over the most recent profile periods (a server-configured count, by default
100), ending at the security’s newest stored candle - the window a chart opens on.
A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize]
is answered verbatim by requests over that recent window. History deeper than it can be
stored more coarsely, so a request reaching far back may resolve a coarser grid, which
the response and stream report and the echoed rowSizeValue follows.
The step follows how coarsely the stored data of the timeframe is packed, so it differs
between timeframes and securities and can grow over time - re-read it with the chart
rather than caching it.
404 (exchange not found) when the exchange is not served; 404 with the generic
requested resource was not found when the security is not served or the window
holds no stored data - unlike the profile endpoints, this one cannot tell the two apart.
Cost: 1000 credits per request (flat).
GET
/
api
/
v1
/
marketdata
/
footprint
/
row-size-scale
Get the volume footprint row size scale
curl --request GET \ --url https://public-api.takeprofit.com/api/v1/marketdata/footprint/row-size-scale \ --header 'x-api-key: <api-key>'
Public security symbol returned by /api/v1/marketdata/exchanges/{exchange}/securities.
TakeProfit security symbol as returned by /api/v1/marketdata/exchanges/{exchange}/securities. In a path segment a slash must be percent-encoded (BTC/USDT is requested as BTC%2FUSDT).
Minute (1m..59m), hour (1h..24h), day (1d..31d), week (1w..4w), or month (1M) timeframe id.
Timeframe id returned by /api/v1/marketdata/timeframes. Canonical suffixes include M for months and Q for quarters.
The quantum of the scale, in quote currency units. A rowSizeValue that is a whole multiple of this within [minRowSize, maxRowSize] comes back verbatim. The least common grid of the security's tick size and the coarsest stored price grid of the measured window; divided by the tick size it is always a whole number of ticks.
The smallest row size a request is answered with; anything below comes back as this. Equal to rowSizeStep unless the per-profile row limit binds on the widest profile period of the window.
Advisory upper end of the scale: the widest profile period's price range on the step grid. Larger values are served but render every profile as a single row.
Was this page helpful?
⌘I
Get the volume footprint row size scale
curl --request GET \ --url https://public-api.takeprofit.com/api/v1/marketdata/footprint/row-size-scale \ --header 'x-api-key: <api-key>'
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"TakeProfit","colors":{"primary":"#7700FF","light":"#9C7FFF","dark":"#6100D2"},"logo":{"light":"https://mintcdn.com/takeprofit-a5dc0462/jvUTtfKFqW_Ng0oL/logo/takeprofit-docs-black.svg?fit=max\u0026auto=format\u0026n=jvUTtfKFqW_Ng0oL\u0026q=85\u0026s=4a802567562fc8ca86c488b8f237bfa7","dark":"https://mintcdn.com/takeprofit-a5dc0462/jvUTtfKFqW_Ng0oL/logo/takeprofit-docs-white.svg?fit=max\u0026auto=format\u0026n=jvUTtfKFqW_Ng0oL\u0026q=85\u0026s=a2df0b1f5260696a27f2538e22cbf8e9"},"favicon":"https://mintcdn.com/takeprofit-a5dc0462/jvUTtfKFqW_Ng0oL/logo/favicon.svg?fit=max\u0026auto=format\u0026n=jvUTtfKFqW_Ng0oL\u0026q=85\u0026s=d86f23870f115668d1867ae4020842f3","appearance":{"default":"dark","strict":true},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://discord.gg/takeprofit","label":"Discord"}],"primary":{"type":"button","label":"Go to workspace","href":"https://takeprofit.com/platform?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs_navbar"}},"footer":{"socials":{"discord":"https://discord.gg/takeprofit","x":"https://twitter.com/TakeProfitHQ","instagram":"https://www.instagram.com/takeprofit","facebook":"https://www.facebook.com/TakeProfit"}},"seo":{"metatags":{"canonical":"https://takeprofit.com/docs"}},"integrations":{"ga4":{"measurementId":"G-70RJGQTFX6"},"posthog":{"apiKey":"phc_8FplvM95IBJRtOm8nvwRDwd43YeqKwR0lkIu5bfpU8b","apiHost":"https://a.takeprofit.com"}},"errors":{"404":{"redirect":true,"title":"Page not found","description":"What ever **happened** to this _page_?"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"takeprofit-a5dc0462","hasAudioNarration":false,"actualSubdomain":"takeprofit-a5dc0462","customDomains":["takeprofit.com"],"gitSource":{"type":"github","owner":"takeprofit-dev","repo":"indie-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb53dedc817acd47c1c328","collectionId":"e2e1cc17-c916-4c54-86cc-31c79f7081c4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb53dedc817acd47c1c328"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6adb53dedc817acd47c1c328","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Documentation","count":286},{"language":"default","tag":"Indie® Script","count":52},{"language":"default","tag":"Data \u0026 Execution Logic","count":24},{"language":"default","tag":"Library reference","count":18},{"language":"default","tag":"Platform API","count":15},{"language":"default","tag":"Drawing tools","count":11},{"language":"default","tag":"Charts","count":10},{"language":"default","tag":"Alerts","count":9},{"language":"default","tag":"REST API","count":9},{"language":"default","tag":"Getting started","count":8}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"support@takeprofit.com","showHelpButton":true}},"hasChatPermissions":false,"hasWebMcpPermissions":true,"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"docs-landing.css","content":":root{--tp-brand:#7700ff;--tp-brand-hover:#854dff;--tp-brand-active:#6100d2;--tp-brand-light:#9c7fff;--tp-action-secondary:#2a2e34;--tp-action-secondary-hover:#424852;--tp-action-secondary-active:#1f2226;--tp-action-secondary-translucent:rgb(179 200 224 / 0.08);--tp-action-secondary-translucent-hover:rgb(179 200 224 / 0.12);--tp-action-secondary-translucent-active:rgb(179 200 224 / 0.04);--tp-action-subscription:#ffe744;--tp-action-subscription-hover:#fff198;--tp-text-primary:#f0f3f7;--tp-text-secondary:#bac1cc;--tp-text-static-white:#ffffff;--tp-text-static-black:#000000}#sidebar-content h3.sidebar-title{display:none}@media (min-width:1024px){:root{--tp-sidebar-w:18rem}#sidebar-content{width:var(--tp-sidebar-w)}#body-content{padding-left:var(--tp-sidebar-w)}#content-area[class*='50vw-348px-14rem']{margin-left:max(0px,calc(50vw - 348px - var(--tp-sidebar-w)))}}body:has(.tp-hero) #header,ul:has(>li>button[aria-haspopup=menu])>li:has(>a){display:none}body:has(.tp-hero) #content-area{--tp-content-max:78rem;max-width:var(--tp-content-max)}.tp-hero{--tp-hero-pad-y:2.5rem;--tp-hero-pad-x:1.75rem;--tp-hero-title-size:2.25rem;--tp-badge-to-title:1.1rem;--tp-title-to-sub:0.85rem;--tp-sub-to-buttons:1.5rem;padding:var(--tp-hero-pad-y) var(--tp-hero-pad-x)}@media (min-width:640px){.tp-hero{--tp-hero-pad-y:3.25rem;--tp-hero-pad-x:2.5rem;--tp-hero-title-size:3.25rem}}.tp-hero-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border:1px solid rgba(156,127,255,.32);border-radius:9999px;background-color:rgba(156,127,255,.1);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#cbbaff}.tp-hero-title{margin:var(--tp-badge-to-title) 0 0;font-size:var(--tp-hero-title-size);font-weight:700;line-height:1.08;letter-spacing:-.02em;color:#fff}.tp-hero-sub{margin:var(--tp-title-to-sub) 0 0;max-width:40rem;font-size:1rem;line-height:1.6;color:rgba(255,255,255,.6)}.tp-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:var(--tp-sub-to-buttons)}.tp-hero{background-color:#0d0a17;background-image:radial-gradient(circle at 22% 18%,rgba(156,127,255,.18) 0,rgba(156,127,255,0) 55%),radial-gradient(circle at 78% 0,rgba(97,0,210,.22) 0,rgba(97,0,210,0) 60%),radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px);background-size:100% 100%,100% 100%,22px 22px;background-position:center,center,center}.tp-hero-accent{background-image:linear-gradient(100deg,#fff 0,#c9b3ff 38%,#9c7fff 68%,#6100d2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}body:has(.tp-hero) #pagination{display:none}.tp-endlinks{display:grid;gap:1rem;margin-top:3.5rem;padding-top:2.75rem;border-top:1px solid rgba(255,255,255,.07)}@media (min-width:768px){.tp-endlinks{grid-template-columns:repeat(3,minmax(0,1fr))}}.tp-endlink{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.85rem 1.35rem;border:1px solid rgba(255,255,255,.08);border-radius:1rem;background-color:rgba(255,255,255,.02);text-align:center;text-decoration:none;transition:border-color 150ms ease,background-color 150ms ease}.tp-endlink:hover{border-color:rgba(156,127,255,.45);background-color:rgba(156,127,255,.06)}.tp-endlink-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-bottom:.25rem;border-radius:.85rem;background-color:rgba(156,127,255,.14)}.tp-endlink-title{font-size:1rem;font-weight:600;color:#fff}.tp-endlink-text{max-width:17rem;font-size:.875rem;line-height:1.5;color:rgba(255,255,255,.55)}.tp-indie-hero{display:grid;gap:2rem;align-items:center}@media (min-width:1024px){.tp-indie-hero{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:2.5rem}}.tp-indie-title{margin-top:var(--tp-badge-to-title);font-size:var(--tp-hero-title-size);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:#fff}.tp-indie-sub{margin:var(--tp-title-to-sub) 0 0;max-width:34rem;font-size:1rem;line-height:1.6;color:rgba(255,255,255,.6)}.tp-indie-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--tp-sub-to-buttons)}.tp-btn,.tp-btn-m{border-radius:9999px}.tp-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:8px 20px;border:0;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;text-decoration:none;transition:border-color 150ms ease,background-color 150ms ease,color 150ms ease}.tp-btn svg.icon{background-color:currentColor}.tp-btn-m{height:32px;padding:4px 12px}.tp-btn-s,.tp-btn-xs{height:24px;padding:0 12px;border-radius:9999px}.tp-btn-xs{height:20px;padding:0 8px;gap:4px;font-size:12px;line-height:16px}.tp-btn-wide{width:100%}.tp-btn[aria-disabled=true]{opacity:.32;pointer-events:none}.tp-btn{border:1px solid var(--tp-action-secondary-translucent);background-color:transparent;color:var(--tp-text-primary)}.tp-btn:hover{border-color:var(--tp-action-secondary-translucent-hover);background-color:var(--tp-action-secondary-translucent-hover)}.tp-btn:active{border-color:var(--tp-action-secondary-translucent-active);background-color:var(--tp-action-secondary-translucent-active)}.tp-btn-brand,.tp-btn-primary{border-color:transparent;background-color:var(--tp-brand);color:var(--tp-text-static-white)}.tp-btn-brand:hover,.tp-btn-primary:hover{border-color:transparent;background-color:var(--tp-brand-hover)}.tp-btn-brand:active,.tp-btn-primary:active,.tp-btn-secondary:hover{border-color:transparent;background-color:var(--tp-brand-active)}.tp-btn-flat,.tp-btn-secondary{border-color:transparent;color:var(--tp-text-primary)}.tp-btn-secondary{background-color:var(--tp-action-secondary)}.tp-btn-secondary:hover{background-color:var(--tp-action-secondary-hover)}.tp-btn-flat:hover,.tp-btn-secondary:active{border-color:transparent;background-color:var(--tp-action-secondary-active)}.tp-btn-flat{background-color:transparent}.tp-btn-flat:hover{background-color:var(--tp-action-secondary-translucent-hover)}.tp-btn-flat:active,.tp-btn-gold,.tp-btn-gold:hover{border-color:transparent;background-color:var(--tp-action-secondary-translucent-active)}.tp-btn-gold{background-color:var(--tp-action-subscription);color:var(--tp-text-static-black)}.tp-btn-gold:hover{background-color:var(--tp-action-subscription-hover)}#topbar-cta-button>a{background-color:var(--tp-brand);opacity:1}#topbar-cta-button>a:hover{opacity:1}#topbar-cta-button>a span{color:var(--tp-text-static-white)}.tp-ribbon{border:1px solid var(--tp-action-secondary-translucent);border-radius:1rem;background-color:var(--tp-action-secondary-translucent);transition:border-color 150ms ease,background-color 150ms ease}.tp-ribbon:hover{border-color:var(--tp-action-secondary-translucent-hover);background-color:var(--tp-action-secondary-translucent-hover)}.tp-ribbon-badge{background-color:rgba(156,127,255,.18)}.tp-ribbon-badge svg{fill:var(--tp-brand-light)}.tp-ribbon-title{color:var(--tp-text-primary)}.tp-hero-search kbd,.tp-popular a,.tp-ribbon-text{color:var(--tp-text-secondary)}#topbar-cta-button>a:hover,.tp-ribbon:hover .tp-btn-brand{background-color:var(--tp-brand-hover)}.tp-indie-code{min-width:0}.tp-indie-code pre{margin:0;max-height:26rem}.tp-code-more{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;font-size:.8125rem;font-weight:500;color:rgba(255,255,255,.55);text-decoration:none;transition:color 150ms ease}.tp-code-more:hover{color:var(--tp-brand-light)}.tp-tile{display:flex;flex-direction:column;padding:1.15rem 1.25rem 1.3rem;border:1px solid rgba(255,255,255,.08);border-radius:1rem;background-color:rgba(255,255,255,.02);text-decoration:none;transition:border-color 150ms ease,background-color 150ms ease}.tp-hero-search:hover,.tp-tile:hover{border-color:rgba(156,127,255,.45);background-color:rgba(156,127,255,.06)}.tp-tile-head{display:flex;align-items:center;gap:.7rem}.tp-tile-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.15rem;height:2.15rem;border-radius:.6rem;background-color:rgba(156,127,255,.14)}.tp-tile-title{font-weight:600;font-size:1rem;line-height:1.3;color:#fff}.tp-tile-arrow{margin-left:auto;flex-shrink:0;color:rgba(255,255,255,.28);transition:color 150ms ease,transform 150ms ease}.tp-tile:hover .tp-tile-arrow{color:var(--tp-brand-light);transform:translateX(2px)}.tp-tile-text{margin:.8rem 0 0;font-size:.875rem;line-height:1.55;color:rgba(255,255,255,.58)}.tp-home-hero{display:grid;gap:2rem;align-items:center}@media (min-width:1024px){.tp-home-hero{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:2.5rem}}.tp-home-copy{min-width:0}.tp-hero-search,.tp-popular{display:flex;align-items:center}.tp-hero-search{justify-content:space-between;gap:1rem;width:100%;max-width:30rem;margin-top:1.25rem;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.14);border-radius:.75rem;background-color:rgba(255,255,255,.03);font-size:.875rem;color:rgba(255,255,255,.55);cursor:pointer;transition:border-color 150ms ease,background-color 150ms ease}.tp-hero-search kbd{padding:.1rem .4rem;border:1px solid rgba(255,255,255,.16);border-radius:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem}.tp-popular{flex-wrap:wrap;gap:.4rem .9rem;margin-top:.9rem;font-size:.8125rem}.tp-path-deeper-label,.tp-popular-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45)}.tp-popular a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.16)}.tp-fork a:hover,.tp-path-deeper a:hover,.tp-popular a:hover,.tp-step-links a:hover{color:#cbbaff;border-bottom-color:var(--tp-brand-light)}.tp-sketch{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:.6rem}@media (max-width:1023px){.tp-sketch{display:none}}.tp-sketch-pane{min-width:0;padding:.65rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:.9rem;background-color:rgba(18,16,25,.85)}.tp-sketch-chart{grid-row:span 2}.tp-sketch-label{display:flex;justify-content:space-between;font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45)}.tp-sketch-chart svg{display:block;width:100%;height:11.5rem;margin-top:.5rem}.tp-sketch line{stroke-width:1;vector-effect:non-scaling-stroke}.tp-sketch-grid{stroke:rgba(255,255,255,.05)}.tp-sketch-up line{stroke:#2ebd85}.tp-sketch-up rect{fill:#2ebd85}.tp-sketch-down line{stroke:#f06060}.tp-sketch-down rect{fill:#f06060}.tp-sketch-level{stroke:var(--tp-brand-light);stroke-dasharray:5 4}.tp-sketch-watch{display:grid;gap:.45rem;margin:.55rem 0 0;padding:0;list-style:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;color:var(--tp-text-secondary)}.tp-sketch-alert,.tp-sketch-watch li{display:flex;align-items:center;gap:.5rem}.tp-sketch-watch li{justify-content:space-between;margin:0}.tp-sketch-watch i{display:block;height:4px;border-radius:2px;background-color:rgba(255,255,255,.16)}.tp-sketch-alert{margin-top:.55rem;font-size:.78rem;color:var(--tp-text-secondary)}.tp-sketch-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background-color:var(--tp-brand-light);box-shadow:0 0 0 4px rgba(156,127,255,.18)}.tp-section{margin-top:3.5rem}.tp-paths-section{scroll-margin-top:6rem}.tp-section-title{margin:0;font-size:1.375rem;font-weight:600;letter-spacing:-.01em;color:#fff}.tp-section-sub{margin:.4rem 0 0;font-size:.9375rem;color:rgba(255,255,255,.6)}.tp-paths{margin-top:1.25rem}.tp-path-cards{display:grid;gap:.75rem}@media (min-width:768px){.tp-path-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.tp-path-card{display:grid;align-content:start;gap:.35rem;width:100%;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.08);border-radius:1rem;background-color:rgba(255,255,255,.02);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color 150ms ease,background-color 150ms ease}.tp-path-card:hover{border-color:rgba(156,127,255,.4)}.tp-path-card[aria-selected=true]{border-color:var(--tp-brand-light);background-color:rgba(119,0,255,.12)}.tp-path-card:focus-visible{outline:2px solid var(--tp-brand-light);outline-offset:2px}.tp-path-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.tp-path-card-title{font-size:1.0625rem;font-weight:600;color:#fff}.tp-path-card-count{font-size:.75rem;color:rgba(255,255,255,.45);white-space:nowrap}.tp-path-card-blurb{font-size:.875rem;line-height:1.5;color:rgba(255,255,255,.6)}.tp-path-panels{margin-top:.75rem}.tp-path-panels[data-active=analyze] [data-path]:not([data-path=analyze]),.tp-path-panels[data-active=build] [data-path]:not([data-path=build]),.tp-path-panels[data-active=trade] [data-path]:not([data-path=trade]){display:none}.tp-path-panel{padding:1.25rem;border:1px solid rgba(255,255,255,.08);border-radius:1.1rem;background-color:rgba(255,255,255,.02)}.tp-steps{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}@media (min-width:640px){.tp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.tp-steps-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tp-steps-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.tp-step{display:flex;flex-direction:column;gap:.45rem;min-width:0;margin:0;padding:.95rem 1rem 1.05rem;border:1px solid rgba(255,255,255,.07);border-radius:.9rem;background-color:rgba(255,255,255,.025)}.tp-step-num{font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--tp-brand-light)}.tp-step-title{font-size:1rem;font-weight:600;line-height:1.3;color:#fff}.tp-step-text{margin:0;font-size:.875rem;line-height:1.5;color:rgba(255,255,255,.6)}.tp-cat ul,.tp-step-links{display:grid;gap:.45rem;margin:.25rem 0 0;padding:.65rem 0 0;border-top:1px solid rgba(255,255,255,.07);list-style:none}.tp-step-links li{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin:0;font-size:.875rem}.tp-fork a,.tp-path-deeper a,.tp-step-links a{color:var(--tp-text-primary);text-decoration:none;border-bottom:1px solid rgba(156,127,255,.35)}.tp-chip-plan{display:inline-flex;align-items:center;padding:.05rem .45rem;border:1px solid rgba(255,231,68,.45);border-radius:9999px;font-size:.6875rem;line-height:1.4;color:var(--tp-action-subscription);white-space:nowrap}.tp-link-note{font-size:.75rem;color:rgba(255,255,255,.45)}.tp-fork{margin:auto 0 0;padding-top:.6rem;border-top:1px dashed rgba(255,255,255,.12);font-size:.8125rem;line-height:1.5;color:rgba(255,255,255,.55)}.tp-path-deeper,.tp-path-result{display:flex;flex-wrap:wrap;align-items:center}.tp-path-result{justify-content:space-between;gap:.6rem 1.5rem;margin-top:1rem}.tp-cat li a,.tp-path-result p{font-size:.875rem;color:rgba(255,255,255,.6)}.tp-path-result p{margin:0;max-width:40rem}.tp-path-result strong{font-weight:600;color:#fff}.tp-path-deeper{gap:.35rem .9rem;font-size:.875rem}.tp-cat-grid{display:grid;gap:1.75rem 1.5rem;margin-top:1.25rem}@media (min-width:640px){.tp-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.tp-cat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.tp-cat{min-width:0}.tp-cat-head{gap:.55rem;font-size:.9375rem;font-weight:600;color:#fff;text-decoration:none}.tp-cat-head:hover{color:#cbbaff}.tp-cat-head,.tp-cat-icon,.tp-discord-counts span{display:inline-flex;align-items:center}.tp-cat-icon{justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:.5rem;background-color:rgba(156,127,255,.14)}.tp-cat ul{gap:.4rem;margin:.7rem 0 0;padding:.7rem 0 0}.tp-cat li{margin:0}.tp-cat li a{text-decoration:none}.tp-cat li a:hover{color:#fff}.tp-help-grid{display:grid;gap:.75rem;margin-top:1.25rem}@media (min-width:640px){.tp-help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.tp-help-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.tp-help-item{display:grid;align-content:start;gap:.2rem;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:.9rem;background-color:rgba(255,255,255,.02);text-decoration:none;transition:border-color 150ms ease,background-color 150ms ease}.tp-help-item:hover{border-color:rgba(156,127,255,.45);background-color:rgba(156,127,255,.06)}.tp-help-title{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;color:#fff}.tp-help-text{font-size:.8125rem;color:rgba(255,255,255,.5)}.tp-discord{display:grid;gap:1.75rem;align-items:center;margin:2.5rem 0 1rem;padding:1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:1.25rem;background-color:#1b1a20;background-image:radial-gradient(circle at 0 100%,rgba(119,0,255,.22) 0,rgba(119,0,255,0) 55%),radial-gradient(circle at 60% 0,rgba(156,127,255,.08) 0,rgba(156,127,255,0) 50%)}@media (min-width:768px){.tp-discord{grid-template-columns:minmax(0,1fr) minmax(0,19rem);gap:2rem;padding:1.5rem 1.5rem 1.5rem 2.25rem}}.tp-discord-copy{display:flex;flex-direction:column;align-items:flex-start}.tp-discord-title{font-size:1.5rem;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:#fff}.tp-discord-text{display:block;margin:.5rem 0 0;max-width:34rem;font-size:1rem;line-height:1.6;color:var(--tp-text-secondary)}.tp-discord-cta{display:inline-flex;align-self:flex-start;align-items:center;gap:.6rem;margin-top:1.25rem;padding:.65rem 1.2rem;border-radius:.75rem;background-image:linear-gradient(100deg,var(--tp-brand) 0%,var(--tp-brand-light) 100%);font-size:1rem;font-weight:600;color:#fff;transition:filter 150ms ease,transform 150ms ease}.tp-discord-cta:hover{filter:brightness(1.12);transform:translateY(-1px)}.tp-discord-server{overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background-color:#0b0a10}.tp-discord-banner{display:block;aspect-ratio:16/5;background-color:#14121c}.tp-discord-banner img{display:block;width:100%;height:100%;object-fit:cover}.tp-discord-body{display:grid;gap:.8rem;padding:.9rem 1.1rem 1.1rem}.tp-discord-guild{display:flex;align-items:center;gap:.9rem}.tp-discord-icon{width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:.8rem}.tp-discord-name{font-size:1.05rem;font-weight:700;color:#fff}.tp-discord-counts{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin-top:.2rem;font-size:.875rem;color:var(--tp-text-secondary)}.tp-discord-counts span{gap:.4rem}.tp-discord-dot{width:.55rem;height:.55rem;border-radius:9999px;background-color:#80848e}.tp-discord-dot-online{background-color:#23a55a}.tp-discord-invite{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem .85rem;border:1px solid rgba(255,255,255,.12);border-radius:.6rem;background-color:rgba(255,255,255,.03);color:var(--tp-text-secondary);cursor:pointer;transition:border-color 150ms ease,color 150ms ease}.tp-discord-invite:hover{border-color:rgba(156,127,255,.45);color:#fff}.tp-discord-invite code{padding:0;background:0 0;font-size:.875rem;color:var(--tp-text-primary)}"}],"page":{"pagePath":"platform-api/rest/footprint/get-the-volume-footprint-row-size-scale","slug":"/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale","pageMetadata":{"title":"Get the volume footprint row size scale","description":"The row size scale a settings UI can offer for one security and timeframe, in absolute\nquote-currency units - the units `rowSizeValue` and every profile's `rowSize` speak, so\nscale values can be echoed back directly: the step every achievable row size is a\nmultiple of, and the bounds it stays within.\n\n- Measured over the most recent profile periods (a server-configured count, by default\n 100), ending at the security's newest stored candle - the window a chart opens on.\n- A `rowSizeValue` that is a whole multiple of the step within `[minRowSize, maxRowSize]`\n is answered verbatim by requests over that recent window. History deeper than it can be\n stored more coarsely, so a request reaching far back may resolve a coarser grid, which\n the response and stream report and the echoed `rowSizeValue` follows.\n- The step follows how coarsely the stored data of the timeframe is packed, so it differs\n between timeframes and securities and can grow over time - re-read it with the chart\n rather than caching it.\n- 404 (`exchange not found`) when the exchange is not served; 404 with the generic\n `requested resource was not found` when the security is not served or the window\n holds no stored data - unlike the profile endpoints, this one cannot tell the two apart.\n\n**Cost:** 1000 credits per request (flat).\n","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/footprint/row-size-scale","href":"/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"The row size scale a settings UI can offer for one security and timeframe, in absolute\\nquote-currency units - the units \", _jsx(_components.code, {\n children: \"rowSizeValue\"\n }), \" and every profile’s \", _jsx(_components.code, {\n children: \"rowSize\"\n }), \" speak, so\\nscale values can be echoed back directly: the step every achievable row size is a\\nmultiple of, and the bounds it stays within.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Measured over the most recent profile periods (a server-configured count, by default\\n100), ending at the security’s newest stored candle - the window a chart opens on.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A \", _jsx(_components.code, {\n children: \"rowSizeValue\"\n }), \" that is a whole multiple of the step within \", _jsx(_components.code, {\n children: \"[minRowSize, maxRowSize]\"\n }), \"\\nis answered verbatim by requests over that recent window. History deeper than it can be\\nstored more coarsely, so a request reaching far back may resolve a coarser grid, which\\nthe response and stream report and the echoed \", _jsx(_components.code, {\n children: \"rowSizeValue\"\n }), \" follows.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"The step follows how coarsely the stored data of the timeframe is packed, so it differs\\nbetween timeframes and securities and can grow over time - re-read it with the chart\\nrather than caching it.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"404 (\", _jsx(_components.code, {\n children: \"exchange not found\"\n }), \") when the exchange is not served; 404 with the generic\\n\", _jsx(_components.code, {\n children: \"requested resource was not found\"\n }), \" when the security is not served or the window\\nholds no stored data - unlike the profile endpoints, this one cannot tell the two apart.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Cost:\"\n }), \" 1000 credits per request (flat).\"]\n })]\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 the volume footprint row size scale","description":"The row size scale a settings UI can offer for one security and timeframe, in absolute\nquote-currency units - the units `rowSizeValue` and every profile's `rowSize` speak, so\nscale values can be echoed back directly: the step every achievable row size is a\nmultiple of, and the bounds it stays within.\n\n- Measured over the most recent profile periods (a server-configured count, by default\n 100), ending at the security's newest stored candle - the window a chart opens on.\n- A `rowSizeValue` that is a whole multiple of the step within `[minRowSize, maxRowSize]`\n is answered verbatim by requests over that recent window. History deeper than it can be\n stored more coarsely, so a request reaching far back may resolve a coarser grid, which\n the response and stream report and the echoed `rowSizeValue` follows.\n- The step follows how coarsely the stored data of the timeframe is packed, so it differs\n between timeframes and securities and can grow over time - re-read it with the chart\n rather than caching it.\n- 404 (`exchange not found`) when the exchange is not served; 404 with the generic\n `requested resource was not found` when the security is not served or the window\n holds no stored data - unlike the profile endpoints, this one cannot tell the two apart.\n\n**Cost:** 1000 credits per request (flat).\n","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/footprint/row-size-scale","href":"/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get the volume footprint row size scale","tags":["Footprint"],"description":"The row size scale a settings UI can offer for one security and timeframe, in absolute\nquote-currency units - the units `rowSizeValue` and every profile's `rowSize` speak, so\nscale values can be echoed back directly: the step every achievable row size is a\nmultiple of, and the bounds it stays within.\n\n- Measured over the most recent profile periods (a server-configured count, by default\n 100), ending at the security's newest stored candle - the window a chart opens on.\n- A `rowSizeValue` that is a whole multiple of the step within `[minRowSize, maxRowSize]`\n is answered verbatim by requests over that recent window. History deeper than it can be\n stored more coarsely, so a request reaching far back may resolve a coarser grid, which\n the response and stream report and the echoed `rowSizeValue` follows.\n- The step follows how coarsely the stored data of the timeframe is packed, so it differs\n between timeframes and securities and can grow over time - re-read it with the chart\n rather than caching it.\n- 404 (`exchange not found`) when the exchange is not served; 404 with the generic\n `requested resource was not found` when the security is not served or the window\n holds no stored data - unlike the profile endpoints, this one cannot tell the two apart.\n\n**Cost:** 1000 credits per request (flat).\n","operationId":"getFootprintRowSizeScale","security":["7d785aa3-d776-4cae-bac0-d09471c822f4"],"parameters":["29577e24-c3b6-46d0-a6ee-a85fb63ce0b9","e3a14d01-6973-4037-bfe9-e526562b5416","e8daa6af-01d6-4469-8a0d-bc385094d0c0","dd935558-05c6-4389-9e20-fb2c22fe84d6"],"responses":{"200":"a567c77b-9a72-4f05-8660-996e2fa16e5f","400":"9919d0d1-51c6-44b6-baae-aa4685123fcd","401":"00bd235c-efe6-42b6-8a37-927b3c131bce","403":"237bb675-1149-4fa4-8bd4-cb2cba152f2c","404":"74a85eac-ed55-465f-855c-123a2a79fab6","429":"d10839f9-96f4-4a63-b442-5bdadbd943d4"},"method":"get","type":"path","servers":["a4dca1bd-565b-46aa-8c00-9a48e54ddfa2"],"path":"/api/v1/marketdata/footprint/row-size-scale","baseUrlOptions":["https://public-api.takeprofit.com"],"title":"Get the volume footprint row size scale","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"29577e24-c3b6-46d0-a6ee-a85fb63ce0b9":{"name":"exchange","in":"query","required":true,"schema":{"type":"string","description":"TakeProfit exchange code as returned by /api/v1/marketdata/exchanges.","example":"BATS","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e3a14d01-6973-4037-bfe9-e526562b5416":{"name":"symbol","in":"query","required":true,"description":"Public security symbol returned by /api/v1/marketdata/exchanges/{exchange}/securities.","schema":{"type":"string","description":"Public security symbol returned by /api/v1/marketdata/exchanges/{exchange}/securities.\nTakeProfit security symbol as returned by /api/v1/marketdata/exchanges/{exchange}/securities. In a path segment a slash must be percent-encoded (BTC/USDT is requested as BTC%2FUSDT).","example":"AAPL","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e8daa6af-01d6-4469-8a0d-bc385094d0c0":{"name":"timeframe","in":"query","required":true,"description":"Minute (1m..59m), hour (1h..24h), day (1d..31d), week (1w..4w), or month (1M) timeframe id.","schema":{"type":"string","description":"Minute (1m..59m), hour (1h..24h), day (1d..31d), week (1w..4w), or month (1M) timeframe id.\nTimeframe id returned by /api/v1/marketdata/timeframes. Canonical suffixes include M for months and Q for quarters.","example":"1h","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"dd935558-05c6-4389-9e20-fb2c22fe84d6":{"name":"sessionType","in":"query","required":false,"description":"Optional session filter. Repeat this parameter or pass comma-separated values.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["MAINSESSION","PRE_MARKET","POST_MARKET"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"Optional session filter. Repeat this parameter or pass comma-separated values.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"}}},"responses":{"a567c77b-9a72-4f05-8660-996e2fa16e5f":{"description":"Volume footprint row size scale response.","headers":{"X-RateLimit-Limit":{"description":"Credits allowed per quota window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Credits still available in the current quota window after this request.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Epoch second at which the current quota window resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"type":"object","required":["meta","rowSizeStep","minRowSize","maxRowSize"],"example":{"meta":{"exchange":"CXBNCE","symbol":"BTC/USDT","timeframe":"1h"},"rowSizeStep":"100","minRowSize":"100","maxRowSize":"2600"},"properties":{"meta":{"type":"object","required":["exchange","symbol","timeframe"],"properties":{"exchange":{"type":"string","description":"TakeProfit exchange code as returned by /api/v1/marketdata/exchanges.","example":"BATS","isRequired":true,"uniqueKey":"meta.exchange","typeLabel":"string"},"symbol":{"type":"string","description":"TakeProfit security symbol as returned by /api/v1/marketdata/exchanges/{exchange}/securities. In a path segment a slash must be percent-encoded (BTC/USDT is requested as BTC%2FUSDT).","example":"AAPL","isRequired":true,"uniqueKey":"meta.symbol","typeLabel":"string"},"timeframe":{"type":"string","description":"Timeframe id returned by /api/v1/marketdata/timeframes. Canonical suffixes include M for months and Q for quarters.","example":"1h","isRequired":true,"uniqueKey":"meta.timeframe","typeLabel":"string"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"},"rowSizeStep":{"type":"string","description":"The quantum of the scale, in quote currency units. A rowSizeValue that is a whole multiple of this within [minRowSize, maxRowSize] comes back verbatim. The least common grid of the security's tick size and the coarsest stored price grid of the measured window; divided by the tick size it is always a whole number of ticks.","isRequired":true,"uniqueKey":"rowSizeStep","typeLabel":"string"},"minRowSize":{"type":"string","description":"The smallest row size a request is answered with; anything below comes back as this. Equal to rowSizeStep unless the per-profile row limit binds on the widest profile period of the window.","isRequired":true,"uniqueKey":"minRowSize","typeLabel":"string"},"maxRowSize":{"type":"string","description":"Advisory upper end of the scale: the widest profile period's price range on the step grid. Larger values are served but render every profile as a single row.","isRequired":true,"uniqueKey":"maxRowSize","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"meta":{"exchange":"CXBNCE","symbol":"BTC/USDT","timeframe":"1h"},"rowSizeStep":"100","minRowSize":"100","maxRowSize":"2600"}}},"exampleType":"generated"}},"exampleType":"generated"},"9919d0d1-51c6-44b6-baae-aa4685123fcd":{"description":"Invalid request (`invalid_argument`), or a request producing more data than can be served (`too_much_data`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable public error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable public error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_argument","message":"query parameter \"exchange\" is required"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_argument","message":"query parameter \"exchange\" is required"}}}},"exampleType":"examples"}},"exampleType":"examples"},"00bd235c-efe6-42b6-8a37-927b3c131bce":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable public error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable public error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthenticated","message":"authentication failed"}}}},"exampleType":"examples"}},"exampleType":"examples"},"237bb675-1149-4fa4-8bd4-cb2cba152f2c":{"description":"Permission denied.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable public error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable public error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"permission_denied","message":"permission denied"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"permission_denied","message":"permission denied"}}}},"exampleType":"examples"}},"exampleType":"examples"},"74a85eac-ed55-465f-855c-123a2a79fab6":{"description":"The exchange is not served, or the security is not served or the window holds no stored data (the two are indistinguishable here).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable public error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable public error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"not_found","message":"requested resource was not found"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"requested resource was not found"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d10839f9-96f4-4a63-b442-5bdadbd943d4":{"description":"The remaining credits of the quota window cannot cover this request; retry after the window resets.","headers":{"X-RateLimit-Limit":{"description":"Credits allowed per quota window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Credits still available in the current quota window after this request.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Epoch second at which the current quota window resets.","schema":{"type":"integer","format":"int64"}},"Retry-After":{"description":"Seconds until the quota window resets and the request can be retried.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable public error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable public error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"unauthenticated","message":"authentication failed"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"rate limit exceeded"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"rate limit exceeded"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"7d785aa3-d776-4cae-bac0-d09471c822f4":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]}}},"servers":{"a4dca1bd-565b-46aa-8c00-9a48e54ddfa2":{"url":"https://public-api.takeprofit.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"platform-api/specs/openapi.yaml"},"subdomain":"takeprofit-a5dc0462","siteName":"TakeProfit","title":"Get the volume footprint row size scale - TakeProfit","contextualStarterQuestions":[],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T19:32:02.913Z","originalFileLocation":"platform-api/rest/footprint/get-the-volume-footprint-row-size-scale.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"The row size scale a settings UI can offer for one security and timeframe, in absolute quote-currency units - the units rowSizeValue and every profile\u0026#x27;s rowSize speak, so scale values can be echoed back directly: the step every achievable row size is a multiple of, and the bounds it stays within. - Measured over the most recent profile periods (a server-configured count, by default 100), ending at the security\u0026#x27;s newest stored candle - the window a chart opens on. - A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize] is answered verbatim by requests over that recent window. History deeper than it can be stored more coarsely, so a request reaching far back may resolve a coarser grid, which the response and stream report and the echoed rowSizeValue follows. - The step follows how coarsely the stored data of the timeframe is packed, so it differs between timeframes and securities and can grow over time - re-read it with the chart rather than caching it. - 404 (exchange not found) when the exchange is not served; 404 with the generic requested resource was not found when the security is not served or the window holds no stored data - unlike the profile endpoints, this one cannot tell the two apart. Cost: 1000 credits per request (flat).\">\u003cmeta data-mint-head name=\"application-name\" content=\"TakeProfit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_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=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get the volume footprint row size scale - TakeProfit\">\u003cmeta data-mint-head property=\"og:description\" content=\"The row size scale a settings UI can offer for one security and timeframe, in absolute quote-currency units - the units rowSizeValue and every profile\u0026#x27;s rowSize speak, so scale values can be echoed back directly: the step every achievable row size is a multiple of, and the bounds it stays within. - Measured over the most recent profile periods (a server-configured count, by default 100), ending at the security\u0026#x27;s newest stored candle - the window a chart opens on. - A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize] is answered verbatim by requests over that recent window. History deeper than it can be stored more coarsely, so a request reaching far back may resolve a coarser grid, which the response and stream report and the echoed rowSizeValue follows. - The step follows how coarsely the stored data of the timeframe is packed, so it differs between timeframes and securities and can grow over time - re-read it with the chart rather than caching it. - 404 (exchange not found) when the exchange is not served; 404 with the generic requested resource was not found when the security is not served or the window holds no stored data - unlike the profile endpoints, this one cannot tell the two apart. Cost: 1000 credits per request (flat).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TakeProfit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://takeprofit-a5dc0462.mintlify.app/_mintlify/api/og/v2?division=Footprint\u0026amp;title=Get+the+volume+footprint+row+size+scale\u0026amp;description=The+row+size+scale+a+settings+UI+can+offer+for+one+security+and+timeframe%2C+in+absolute%0Aquote-currency+units+-+the+units+%60rowSizeValue%60+and+every+profile%27s+%60rowS\u0026amp;theme=ae5c92b739e408ff65cc0b22\u0026amp;signature=311625b222de8ed5cb0bfcd0fd863cc3855e93e1416ea0cfdc6a3541513a7288\">\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 the volume footprint row size scale - TakeProfit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The row size scale a settings UI can offer for one security and timeframe, in absolute quote-currency units - the units rowSizeValue and every profile\u0026#x27;s rowSize speak, so scale values can be echoed back directly: the step every achievable row size is a multiple of, and the bounds it stays within. - Measured over the most recent profile periods (a server-configured count, by default 100), ending at the security\u0026#x27;s newest stored candle - the window a chart opens on. - A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize] is answered verbatim by requests over that recent window. History deeper than it can be stored more coarsely, so a request reaching far back may resolve a coarser grid, which the response and stream report and the echoed rowSizeValue follows. - The step follows how coarsely the stored data of the timeframe is packed, so it differs between timeframes and securities and can grow over time - re-read it with the chart rather than caching it. - 404 (exchange not found) when the exchange is not served; 404 with the generic requested resource was not found when the security is not served or the window holds no stored data - unlike the profile endpoints, this one cannot tell the two apart. Cost: 1000 credits per request (flat).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://takeprofit-a5dc0462.mintlify.app/_mintlify/api/og/v2?division=Footprint\u0026amp;title=Get+the+volume+footprint+row+size+scale\u0026amp;description=The+row+size+scale+a+settings+UI+can+offer+for+one+security+and+timeframe%2C+in+absolute%0Aquote-currency+units+-+the+units+%60rowSizeValue%60+and+every+profile%27s+%60rowS\u0026amp;theme=ae5c92b739e408ff65cc0b22\u0026amp;signature=311625b222de8ed5cb0bfcd0fd863cc3855e93e1416ea0cfdc6a3541513a7288\">\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=\"/docs/mintlify-assets/_mintlify/favicons/takeprofit-a5dc0462/0VTEhXxHTVdZTWLi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TakeProfit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7700FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://takeprofit.com/#organization\",\"name\":\"TakeProfit\",\"url\":\"https://takeprofit.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/takeprofit-a5dc0462/jvUTtfKFqW_Ng0oL/logo/takeprofit-docs-black.svg?fit=max\u0026auto=format\u0026n=jvUTtfKFqW_Ng0oL\u0026q=85\u0026s=4a802567562fc8ca86c488b8f237bfa7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://takeprofit.com/docs#website\",\"name\":\"TakeProfit\",\"url\":\"https://takeprofit.com/docs\",\"publisher\":{\"@id\":\"https://takeprofit.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale#webpage\",\"url\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale\",\"name\":\"Get the volume footprint row size scale\",\"description\":\"The row size scale a settings UI can offer for one security and timeframe, in absolute quote-currency units - the units rowSizeValue and every profile's rowSize speak, so scale values can be echoed back directly: the step every achievable row size is a multiple of, and the bounds it stays within. - Measured over the most recent profile periods (a server-configured count, by default 100), ending at the security's newest stored candle - the window a chart opens on. - A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize] is answered verbatim by requests over that recent window. History deeper than it can be stored more coarsely, so a request reaching far back may resolve a coarser grid, which the response and stream report and the echoed rowSizeValue follows. - The step follows how coarsely the stored data of the timeframe is packed, so it differs between timeframes and securities and can grow over time - re-read it with the chart rather than caching it. - 404 (exchange not found) when the exchange is not served; 404 with the generic requested resource was not found when the security is not served or the window holds no stored data - unlike the profile endpoints, this one cannot tell the two apart. Cost: 1000 credits per request (flat).\",\"dateModified\":\"2026-10-02T19:32:02.913Z\",\"isPartOf\":{\"@id\":\"https://takeprofit.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https://takeprofit.com/docs/guide/getting-started/Registration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Platform API\",\"item\":\"https://takeprofit.com/docs/platform-api/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"REST API\",\"item\":\"https://takeprofit.com/docs/platform-api/rest/overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Footprint\",\"item\":\"https://takeprofit.com/docs/platform-api/rest/footprint/list-historical-volume-footprint-profiles\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Get the volume footprint row size scale\",\"item\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale#apireference\",\"headline\":\"Get the volume footprint row size scale\",\"name\":\"Get the volume footprint row size scale\",\"description\":\"The row size scale a settings UI can offer for one security and timeframe, in absolute quote-currency units - the units rowSizeValue and every profile's rowSize speak, so scale values can be echoed back directly: the step every achievable row size is a multiple of, and the bounds it stays within. - Measured over the most recent profile periods (a server-configured count, by default 100), ending at the security's newest stored candle - the window a chart opens on. - A rowSizeValue that is a whole multiple of the step within [minRowSize, maxRowSize] is answered verbatim by requests over that recent window. History deeper than it can be stored more coarsely, so a request reaching far back may resolve a coarser grid, which the response and stream report and the echoed rowSizeValue follows. - The step follows how coarsely the stored data of the timeframe is packed, so it differs between timeframes and securities and can grow over time - re-read it with the chart rather than caching it. - 404 (exchange not found) when the exchange is not served; 404 with the generic requested resource was not found when the security is not served or the window holds no stored data - unlike the profile endpoints, this one cannot tell the two apart. Cost: 1000 credits per request (flat).\",\"url\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale\",\"mainEntityOfPage\":{\"@id\":\"https://takeprofit.com/docs/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale#webpage\"},\"dateModified\":\"2026-10-02T19:32:02.913Z\",\"publisher\":{\"@id\":\"https://takeprofit.com/#organization\"},\"isPartOf\":{\"@id\":\"https://takeprofit.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TakeProfit\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TakeProfit","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open-cover","groups":[{"group":"Documentation","pages":[{"group":"Getting started","icon":"hand-wave","root":{"title":"Getting started","sidebarTitle":"Overview","mode":"wide","href":"/guide/getting-started/Overview"},"pages":[{"title":"Registration","href":"/guide/getting-started/Registration"},{"title":"Platform Navigation","href":"/guide/getting-started/Navigation"},{"title":"TakeProfit on your phone","sidebarTitle":"On your phone","href":"/guide/getting-started/Mobile"},{"title":"Workspaces","href":"/guide/getting-started/Workspaces"},{"title":"Platform Search","href":"/guide/getting-started/Platform-Search"},{"title":"Widget Hub","href":"/guide/getting-started/Widget-Hub"},{"title":"Profile Settings","href":"/guide/getting-started/Profile-settings"},{"title":"Two-Factor Authentication (2FA)","href":"/guide/getting-started/mfa"}]},{"group":"Trading","icon":"arrow-trend-up","root":{"title":"Trading","sidebarTitle":"Overview","mode":"wide","href":"/guide/trading/trading-overview"},"pages":[{"title":"Cashback: Trade \u0026 Earn","href":"/guide/rewards-tools/rebates"},{"title":"Using Order Entry","sidebarTitle":"Order Entry","href":"/guide/trading/order-form"},{"title":"Trading from the Chart","href":"/guide/trading/chart-trading"},{"title":"Market Depth","sidebarTitle":"Market Depth","href":"/guide/platform/orderbook-widget/market-depth-overview"},{"group":"Brokers","icon":"building-columns","root":{"title":"Brokers and exchanges","sidebarTitle":"All brokers","icon":"building-columns","href":"/guide/trading/brokers"},"pages":[{"title":"Connect or Create an Exchange Account","sidebarTitle":"Bybit","href":"/guide/trading/exchange-account"},{"title":"Trading with Lime","sidebarTitle":"Lime","href":"/guide/platform/lime-widget/lime-widget-overview"},{"title":"Binance","sidebarTitle":"Binance","tag":"Soon","href":"/guide/trading/binance"},{"title":"Exness","sidebarTitle":"Exness","tag":"Soon","href":"/guide/trading/exness"}]},{"title":"Track Your Account","href":"/guide/trading/account-tracking"}]},{"group":"Charts","icon":"chart-waterfall","root":{"title":"Charts","sidebarTitle":"Overview","mode":"wide","href":"/guide/platform/chart-widget/Chart-widget-overview"},"pages":[{"title":"Chart Intervals and Timeframes","href":"/guide/platform/chart-widget/Chart-timeframes"},{"group":"Chart Types","icon":"chart-candlestick","root":{"title":"Chart Types","href":"/guide/platform/chart-widget/Chart-types"},"pages":[{"title":"Candles, Line, and Bars","sidebarTitle":"Candles, Line, Bars","href":"/guide/platform/chart-widget/chart-types/Candles-line-bars"},{"title":"TPO Charts","sidebarTitle":"TPO Charts","href":"/guide/platform/chart-widget/chart-types/TPO-charts"},{"title":"Volume Footprint","sidebarTitle":"Volume Footprint","href":"/guide/platform/chart-widget/chart-types/Volume-Footprint"},{"title":"Renko Charts","sidebarTitle":"Renko","href":"/guide/platform/chart-widget/chart-types/Renko"}]},{"title":"Liquidity Heatmap","sidebarTitle":"Liquidity Heatmap","href":"/guide/platform/chart-widget/chart-types/Liquidity-heatmap"},{"title":"Order Book Profile","sidebarTitle":"Order Book Profile","href":"/guide/platform/chart-widget/chart-types/Order-book-profile"},{"title":"Chart Settings","href":"/guide/platform/chart-widget/Chart-settings"},{"title":"Chart Features","href":"/guide/platform/chart-widget/Chart-features"},{"title":"Sharing charts","href":"/guide/platform/chart-widget/Sharing-chart-widget"}]},{"group":"Drawing tools","icon":"pen-swirl","root":{"title":"Drawing Tools","sidebarTitle":"Overview","mode":"wide","href":"/guide/platform/chart-widget/Drawing-tools"},"pages":[{"title":"Measurement \u0026 Volume","href":"/guide/platform/chart-widget/Measurement-tools"},{"title":"Lines \u0026 Channels","href":"/guide/platform/chart-widget/Line-tools"},{"title":"Patterns \u0026 Waves","href":"/guide/platform/chart-widget/Pattern-tools"},{"title":"Shapes \u0026 Curves","href":"/guide/platform/chart-widget/Shapes"},{"title":"Brush \u0026 Path","href":"/guide/platform/chart-widget/Free-form-tools"},{"title":"Fibonacci \u0026 Gann","href":"/guide/platform/chart-widget/Fibonacci-tools"},{"title":"Text \u0026 Annotations","href":"/guide/platform/chart-widget/Text-tools"},{"title":"Utility Tools","href":"/guide/platform/chart-widget/Utility-tools"},{"title":"Drawing Tools Shortcuts","href":"/guide/platform/chart-widget/Drawing-Tools-Keybord-Shortcuts"},{"title":"Object Tree (Layers)","href":"/guide/platform/chart-widget/Object-tree"},{"title":"Drawing on Mobile","href":"/guide/platform/chart-widget/drawing-tools-mobile"}]},{"group":"Trading Indicators","icon":"chart-line","root":{"title":"Indicators","sidebarTitle":"Overview","icon":"chart-line","mode":"wide","href":"/guide/platform/indicators/indicators-overview"},"pages":[{"title":"Indicator Settings","href":"/guide/platform/ide-widget/indicator-settings"},{"title":"CVD and Delta Volume","sidebarTitle":"CVD \u0026 Delta Volume","href":"/guide/platform/indicators/cvd-delta-volume"}]},{"group":"Indie® Script","icon":"code","root":{"title":"Indie","sidebarTitle":"Indie®","mode":"wide","href":"/indie/Overview"},"pages":[{"group":"Core Concepts","icon":"lightbulb","pages":[{"title":"What is Indie?","mode":"wide","href":"/indie/What-is-Indie"},{"title":"Why a language of its own","sidebarTitle":"Why Indie","mode":"wide","href":"/indie/Why-Indie"},{"title":"What you can build with Indie","sidebarTitle":"What you can build","mode":"wide","href":"/indie/What-you-can-build"},{"title":null,"href":"/indie/Quick-start"},{"title":"Indie® vs. Python - Key Differences","href":"/indie/Language-differences-with-Python"}]},{"title":"Indicator code editor for Indie","sidebarTitle":"Indicator code editor","icon":"terminal","href":"/guide/platform/ide-widget/IDE-overview"},{"group":"Data \u0026 Execution Logic","icon":"diagram-project","pages":[{"title":"Indicator Code Structure","href":"/indie/Indicator-code-structure"},{"title":"How Indie's syntactic sugar works","href":"/indie/How-Indies-syntactic-sugar-works"},{"title":null,"href":"/indie/Data-types-in-Indie"},{"title":null,"href":"/indie/Algorithms-for-series-processing"},{"title":null,"href":"/indie/Input-parameters"},{"title":null,"href":"/indie/Schedules-and-Trading-Sessions"},{"group":"Plotting and drawing","icon":"chart-mixed","pages":[{"title":"Overview","mode":"wide","href":"/indie/Plotting-and-drawing/Plotting-and-drawing-overview"},{"title":"Data plotting - lines, columns, etc.","href":"/indie/Plotting-and-drawing/Data-plotting-lines-columns-etc"},{"title":"Fills, levels, and bands","href":"/indie/Plotting-and-drawing/Fills-levels-and-bands"},{"title":"Drawings - lines, labels, shapes, and tables","href":"/indie/Plotting-and-drawing/Drawings-lines-labels"}]},{"group":"Strategies and backtesting","icon":"money-bill-trend-up","pages":[{"title":"Strategies overview","href":"/indie/Strategies/Strategies-overview"},{"title":"Built-in trading bots","href":"/indie/Strategies/Built-in-trading-bots"},{"title":"Strategy mechanics","href":"/indie/Strategies/Strategy-mechanics"},{"title":"Orders","href":"/indie/Strategies/Orders"},{"title":"Strategy parameters","href":"/indie/Strategies/Strategy-params"}]},{"title":null,"href":"/indie/Request-additional-instruments"},{"group":"Profile data","icon":"chart-simple","pages":[{"title":"Time Price Opportunity profiles","icon":"chart-simple","href":"/indie/Profile-data/TPO-profiles"},{"title":"Volume Footprint profiles","icon":"chart-column","href":"/indie/Profile-data/Volume-Footprint-profiles"}]},{"group":"External data","icon":"database","pages":[{"icon":"database","title":null,"href":"/indie/External-data/External-data-overview"},{"icon":"chart-candlestick","title":null,"href":"/indie/External-data/External-candles-from-CSV"},{"icon":"table-list","title":null,"href":"/indie/External-data/Typed-external-data"},{"icon":"file-csv","title":null,"href":"/indie/External-data/CSV-format-and-limits"},{"icon":"tower-broadcast","title":null,"href":"/indie/External-data/Live-data-from-a-feed"},{"icon":"server","title":null,"href":"/indie/External-data/Feed-protocol-and-limits"}]}]},{"group":"Library reference","icon":"book","pages":[{"title":"Overview","mode":"wide","href":"/indie/Library-reference-overview"},{"title":"Compact Indie API reference","href":"/indie/Library-reference/compact-api"},{"title":"Package indie","href":"/indie/Library-reference/package-indie"},{"title":"Package indie.data","href":"/indie/Library-reference/package-indie-data"},{"title":"Package indie.data.sources","href":"/indie/Library-reference/package-indie-data-sources"},{"title":"Package indie.algorithms","href":"/indie/Library-reference/package-indie-algorithms"},{"title":"Package indie.strategies","href":"/indie/Library-reference/package-indie-strategies"},{"title":"Package indie.plot","href":"/indie/Library-reference/package-indie-plot"},{"title":"Package indie.drawings","href":"/indie/Library-reference/package-indie-drawings"},{"title":"Package indie.color","href":"/indie/Library-reference/package-indie-color"},{"title":"Package indie.math","href":"/indie/Library-reference/package-indie-math"},{"title":"Package indie.schedule","href":"/indie/Library-reference/package-indie-schedule"},{"title":"Package dataclasses","href":"/indie/Library-reference/package-dataclasses"},{"title":"Package datetime","href":"/indie/Library-reference/package-datetime"},{"title":"Package statistics","href":"/indie/Library-reference/package-statistics"},{"title":"Package sortedcontainers","href":"/indie/Library-reference/package-sortedcontainers"},{"title":"Package math","href":"/indie/Library-reference/package-math"},{"title":"Builtins","href":"/indie/Library-reference/builtins"}]},{"group":"Code examples","icon":"file-code","pages":[{"title":"Educational indicators","href":"/indie/Code-examples/educational-indicators"},{"title":"Common drawing patterns","href":"/indie/Code-examples/common-drawing-patterns"},{"title":"Built-in indicators","href":"/indie/Code-examples/built-in-indicators"},{"title":"Built-in strategies","href":"/indie/Code-examples/built-in-strategies"}]}]},{"group":"AI","icon":"sparkles","root":{"title":"TakeProfit AI","sidebarTitle":"Overview","mode":"wide","href":"/guide/platform/ai-assistant/AI-assistant-overview"},"pages":[{"title":"AI Chat Page","sidebarTitle":"AI Chat","href":"/guide/platform/ai-assistant/AI-chat-page"},{"title":"AI in Your Workspace","sidebarTitle":"In your workspace","href":"/guide/platform/ai-assistant/AI-in-workspace"},{"title":"Ask AI on the Chart","sidebarTitle":"On the chart","href":"/guide/platform/ai-assistant/Ask-AI-on-chart"},{"title":"AI Assistant in the IDE","sidebarTitle":"In the IDE","href":"/guide/platform/ai-assistant/AI-assistant-IDE"},{"title":"MCP Server Setup Guide","href":"/guide/platform/ai-assistant/Mcp-server-guide"},{"title":"How to Work with AI Tools","sidebarTitle":"Skills and prompts","href":"/guide/platform/ai-assistant/How-to-work-with-AI-tools"}]},{"title":"Strategy tester and backtesting","sidebarTitle":"Strategy tester","icon":"flask","href":"/guide/platform/backtesting-widget/backtest-widget"},{"group":"Alerts","icon":"bell","root":{"title":"Alerts","sidebarTitle":"Overview","mode":"wide","href":"/guide/alerts/Alerts"},"pages":[{"title":"Creating and Managing Alerts","href":"/guide/alerts/Alerts-overview"},{"title":"Telegram Notifications","href":"/guide/alerts/Telegram-alerts"},{"title":"Alert Trigger Criteria","href":"/guide/alerts/Alert-trigger-criteria"},{"title":"Using Variables in Alerts","href":"/guide/alerts/How-use-variable-InAlert"},{"title":"Alert Limitations, Delivery, and History","href":"/guide/alerts/Alert-limitations-delivery-history"},{"group":"Notifications via webhooks","icon":"webhook","pages":[{"title":"Webhook Notifications Basics","href":"/guide/alerts/Webhook-notifications"},{"title":"Discord Notifications via webhook","href":"/guide/alerts/Discord-webhook"},{"title":"Telegram Notifications via webhook","href":"/guide/alerts/Telegram-webhook"},{"title":"Automate TakeProfit Alerts via WunderTrading","href":"/guide/alerts/wundertrading-automation"}]}]},{"group":"Watchlists","icon":"eye","pages":[{"title":"Watchlist Features","href":"/guide/platform/watchlist-widget/Creating-and-managing-watchlist"},{"title":"Watchlist Display Options","href":"/guide/platform/watchlist-widget/Watchlist-display-options"}]},{"group":"Stock screener","icon":"radar","root":{"title":"Stock screener","sidebarTitle":"Overview","mode":"wide","href":"/guide/platform/stock-screener/Stock-screener-overview"},"pages":[{"title":"Managing Stock Screener Results","href":"/guide/platform/stock-screener/Managing-Stock-Screener-Results"},{"title":"Stock Screener Sharing","href":"/guide/platform/stock-screener/Stock-screener-sharing"}]},{"group":"Community","icon":"users","root":{"title":"Community","sidebarTitle":"Overview","mode":"wide","href":"/guide/community/Community-overview"},"pages":[{"title":"Creating and Publishing Posts","href":"/guide/community/Creating-publishing-posts"},{"title":"Unlocking Paid Posts","href":"/guide/community/Unlocking-paid-posts"},{"title":"Community feed","href":"/guide/platform/feed-widget/feed-widget"}]},{"group":"Cash Rewards","icon":"money-bill-trend-up","root":{"title":"Cash Rewards","sidebarTitle":"Overview","mode":"wide","href":"/guide/monetization-tools/Born-to-earn-overview"},"pages":[{"title":"Cashback: Trade \u0026 Earn","href":"/guide/rewards-tools/rebates"},{"title":"Invite Your Trader Friends","href":"/guide/monetization-tools/Referral-program"},{"title":"Monetizing Posts","href":"/guide/monetization-tools/Monetizing-posts"},{"title":"Sell Your Indicators","href":"/guide/monetization-tools/Sell-your-indicators"},{"title":"Invite-only Indicators","href":"/guide/monetization-tools/Invite-only-indicators"},{"title":"Maxx Rewards Program","href":"/guide/monetization-tools/Ambassador-rules"},{"title":"How Payouts Work","href":"/guide/monetization-tools/How-payouts-work"}]},{"group":"Financials","icon":"chart-simple","pages":[{"title":"Financials","href":"/guide/platform/financials-widget/financials-widget"},{"title":"Sharing financials","href":"/guide/platform/financials-widget/Sharing-financials-widget"}]},{"title":"Trading notes","sidebarTitle":"Notes","icon":"note-sticky","href":"/guide/platform/notes-widget/notes-widget-overview"},{"title":"Markets We Cover","icon":"globe","href":"/guide/market-data/Market-data-overview"},{"group":"Platform API","icon":"plug","root":{"title":"Platform API","sidebarTitle":"Overview","mode":"wide","href":"/platform-api/overview"},"pages":[{"title":"Quickstart","href":"/platform-api/quickstart"},{"title":"Authentication","href":"/platform-api/authentication"},{"title":"Credits and limits","href":"/platform-api/limits"},{"group":"REST API","icon":"server","root":{"title":"REST API","sidebarTitle":"Overview","href":"/platform-api/rest/overview"},"pages":[{"group":"Candles","pages":[{"title":"List historical candles","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/candles","href":"/platform-api/rest/candles/list-historical-candles"},{"title":"List supported candle timeframes","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/timeframes","href":"/platform-api/rest/candles/list-supported-candle-timeframes"}]},{"group":"Footprint","pages":[{"title":"List historical volume footprint profiles","description":"Provide `exchange`, `symbol`, and `timeframe`. Nothing else is required: the\nwindow defaults to the 100 timeframe periods before now.\n\n- With `from` the window starts there and runs forward, ending at `to` or after\n `period` seconds (100 timeframe periods by default).\n- Without `from` the window ends at `to` (now by default) and runs backwards over\n `period` seconds or the 100 timeframe periods before it.\n- The default is measured in wall-clock time, so on an exchange with trading sessions\n it holds fewer than 100 profiles, and none while the market has been closed for the\n whole window (a 1m frame outside trading hours); pass `from` or `period` to reach\n back further.\n- `period` cannot be added to an explicit `from`+`to` window.\n- The requested range is limited to at most 1000 profiles (a wider range is rejected\n with 400 `too_much_data`), and `rowSize` (price row height in ticks, 0 enables\n automatic detection) is bounded, so a single request cannot ask for an unbounded\n number of price levels.\n- Every profile in one response shares the same `rowSize` and every row price is a whole\n multiple of it. That grid is resolved from the requested range, so a different range\n can answer on a different grid; pass `rowSizeValue` to pin it.\n- History depth is limited per timeframe, counted back from the security's newest candle\n (from now while it trades): by default 30 days for minute frames below 5m, rising with\n the timeframe to 3 years for 1w and above. A `from` older than that limit is trimmed to\n it rather than rejected, so the response may start later than `from` (the first\n `profileStart` is the effective start) and a range ending before the limit is empty.\n\n**Cost:** 10 credits per returned profile, at least 1000 credits per request.\n","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/footprint","href":"/platform-api/rest/footprint/list-historical-volume-footprint-profiles"},{"title":"Get the volume footprint row size scale","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/footprint/row-size-scale","href":"/platform-api/rest/footprint/get-the-volume-footprint-row-size-scale"}]},{"group":"TPO","pages":[{"title":"List historical TPO (Market Profile) data","description":"Provide `exchange`, `symbol`, and `timeframe`. Nothing else is required: the\nwindow defaults to the 40 timeframe periods before now.\n\n- With `from` the window starts there and runs forward, ending at `to` or after\n `period` seconds (40 timeframe periods by default).\n- Without `from` the window ends at `to` (now by default) and runs backwards over\n `period` seconds or the 40 timeframe periods before it.\n- The default is measured in wall-clock time, so it holds fewer than 40 periods on an\n exchange with non-trading days (about 28 for a 1d frame on a weekday-only market).\n- `period` cannot be added to an explicit `from`+`to` window.\n- Supported timeframes are day, week, and month based (1d..31d, 1w..4w, 1M).\n- If `from` is not aligned to a timeframe period boundary, the beginning of the next\n period is used.\n- The requested range is limited to at most 400 profiles (with\n `mergeSessions=GROUP_BY_TYPE` every session type of a period counts as a profile); a\n wider range is rejected with 400 `too_much_data`.\n\n**Cost:** 25 credits per returned timeframe period (distinct `openTradingDay`), at least\n1000 credits per request. With `mergeSessions=GROUP_BY_TYPE` one profile per session\ntype is built for every period at no additional cost.\n","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/tpo","href":"/platform-api/rest/tpo/list-historical-tpo-market-profile-data"}]},{"group":"Securities","pages":[{"title":"Search securities","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/search","href":"/platform-api/rest/securities/search-securities"},{"title":"List exchanges with available securities","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/exchanges","href":"/platform-api/rest/securities/list-exchanges-with-available-securities"},{"title":"List securities available on an exchange","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/exchanges/{exchange}/securities","href":"/platform-api/rest/securities/list-securities-available-on-an-exchange"},{"title":"Get the specification of a security","deprecated":null,"version":null,"openapi":"/platform-api/specs/openapi.yaml get /api/v1/marketdata/exchanges/{exchange}/securities/{symbol}","href":"/platform-api/rest/securities/get-the-specification-of-a-security"}]}]},{"group":"WebSocket API","icon":"bolt","root":{"title":"WebSocket API","sidebarTitle":"Overview","href":"/platform-api/websocket/overview"},"pages":[{"title":"Live candle stream","asyncapi":"platform-api/specs/asyncapi.yaml candles","href":"/platform-api/websocket/candles"},{"title":"Live volume footprint stream","asyncapi":"platform-api/specs/asyncapi.yaml footprint","href":"/platform-api/websocket/footprint"},{"title":"Live order book stream","asyncapi":"platform-api/specs/asyncapi.yaml orderbook","href":"/platform-api/websocket/orderbook"}]}]},{"title":"Frequently Asked Questions","sidebarTitle":"FAQ","icon":"circle-question","href":"/guide/faq"},{"group":"Changelog","icon":"clock-rotate-left","pages":[{"sidebarTitle":"TakeProfit","title":null,"href":"/guide/changelog"},{"sidebarTitle":"Indie","title":null,"href":"/indie/Changelog"}]}]}]},{"tab":"Features","menu":[{"item":"Charting","icon":"chart-waterfall","href":"https://takeprofit.com/features/charting"},{"item":"Indicators","icon":"chart-line","href":"https://takeprofit.com/features/indicators"},{"item":"Cloud Alerts","icon":"bell","href":"https://takeprofit.com/features/alerts"},{"item":"Trading","icon":"arrow-trend-up","href":"https://takeprofit.com/features/trading"}]},{"tab":"Rewards","menu":[{"item":"Cashback","icon":"coins","href":"https://takeprofit.com/rewards/cashback"},{"item":"Invite Traders \u0026 Friends","icon":"user-plus","href":"https://takeprofit.com/rewards/invite-friends"},{"item":"Write Posts","icon":"pen-nib","href":"https://takeprofit.com/rewards/write-posts"},{"item":"Build Indicators","icon":"code","href":"https://takeprofit.com/rewards/build-indicators"},{"item":"Craft Widgets","icon":"table-cells-large","href":"https://takeprofit.com/rewards/craft-widgets"}]},{"tab":"Community","menu":[{"item":"Indicators","icon":"chart-line","href":"https://takeprofit.com/indicators"},{"item":"Posts","icon":"newspaper","href":"https://takeprofit.com/posts"},{"item":"Screeners","icon":"radar","href":"https://takeprofit.com/screens"}]},{"tab":"Resources","menu":[{"item":"TakeProfit Blog","icon":"rss","href":"https://takeprofit.com/@TakeProfit"},{"item":"Follow Us on X","icon":"x-twitter","href":"https://twitter.com/TakeProfitHQ"},{"item":"Request a Feature","icon":"lightbulb","href":"https://takeprofit.featureos.app/"},{"item":"Changelog","icon":"clock-rotate-left","href":"/guide/changelog"}]},{"tab":"Company","menu":[{"item":"Email us","icon":"envelope","href":"mailto:support@takeprofit.com"},{"item":"Manifesto","icon":"scroll","href":"https://takeprofit.com/manifesto"},{"item":"Reviews","icon":"star","href":"https://takeprofit.com/reviews"}]},{"tab":"Widget SDK","hidden":true,"pages":[{"title":"Widget SDK","href":"/sdk/introduction"}]},{"tab":"Partner API","hidden":true,"pages":[{"title":"Partner API","href":"/partner/introduction"}]}]},"title":"Get the volume footprint row size scale - TakeProfit","buildId":"dpl_3DJU2xKhT5gDPFQL5Tqv7AFnkWsF","deploymentId":"dpl_3DJU2xKhT5gDPFQL5Tqv7AFnkWsF","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DsGgv5pK.js","utils-B0h6ZXi-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-IgrnFwPw.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C49-TBER.js","snippetPresets-BPHn-9OB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BBU7roUf.js","ApiExamples-CGBwAHwX.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BjABHCCH.js","shallow-C0Uj5sOI.js","getApiPlaygroundDisplay-BnYiIeY4.js","CodeSnippet-BJWWrlBw.js","CodeSnippets-bxE5aDye.js","getPastedJson-BAjriezQ.js","icon-BqcS52QC.js","MethodPill-BPGyN9me.js","DuplicateIcon-CCf2giLL.js","createIcon-CVH8aNt2.js","DynamicMarkdown-BklwmxA6.js","SectionHeading-DYCZQFxh.js","axios-vUo_bRtp.js","Markdown-D26rHnOC.js","clsx-DkiOUx4h.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DI8jfVGc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DwJy-csb.js"]}