Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI’s depth chart — so you can show a fill price before submitting.
sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned.
Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one.
A plain GET: read-only, idempotent, and safe to cache for a second or two.
A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side’s availableNotionalUsd before presenting a quote as executable.
When a pair has no dynamic impact configured, or the size stays under the pair’s volume threshold, price is exactly the top of book — the spread is the only cost.
Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.
GET
/
v1
/
depth
/
{pair}
/
quote
Price for a given trade size
curl --request GET \
--url https://builder.prod.bedrock.ostium.io/v1/depth/{pair}/quote
One side of the book, named by the price a taker gets: ask is a taker buy — opening a long, or closing a short; bid is a taker sell — opening a short, or closing a long.
One side of the book, named by the price a taker gets: ask is a taker buy — opening a long, or closing a short; bid is a taker sell — opening a short, or closing a long.
Feed timestamp of the price this quote was derived from, in milliseconds — not the time the quote was served.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ostium","colors":{"primary":"#FF5A19","light":"#FF5A19","dark":"#FF5A19"},"logo":"https://mintcdn.com/ostium/rgKhfmKxgkO9O2aD/logo/ostium-logo.svg?fit=max\u0026auto=format\u0026n=rgKhfmKxgkO9O2aD\u0026q=85\u0026s=e2316b63df8fab1bbdb3c18daeff80e5","favicon":"https://mintcdn.com/ostium/PYRmOzvp-N2ht7oL/favicon.svg?fit=max\u0026auto=format\u0026n=PYRmOzvp-N2ht7oL\u0026q=85\u0026s=79bfadbe417502d9aec3c62a2a59d62e","navbar":{"links":[{"href":"https://discord.com/invite/ostiumlabs","label":"Support"}],"primary":{"type":"button","label":"Trade Now","href":"https://app.ostium.com"}},"footer":{"socials":{"x":"https://x.com/Ostium","github":"https://github.com/ostium-labs","linkedin":"https://linkedin.com/company/ostium"},"links":[{"header":"Legal","items":[{"label":"Terms of Use","href":"/legal/terms-of-use"},{"label":"Privacy Policy","href":"/legal/privacy-policy"},{"label":"Nasdaq Subscriber Agreement","href":"/legal/nasdaq-subscriber-agreement"},{"label":"OLP Recovery Plan Terms","href":"/legal/olp-recovery-plan-terms"}]}]},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://ostium.com"},{"anchor":"Developers","icon":"code","href":"/developer/sdk/overview"},{"anchor":"Blog","icon":"newspaper","href":"https://www.ostium.com/blog"},{"anchor":"X/Twitter","icon":"twitter","href":"https://www.x.com/Ostium"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ostium","hasAudioNarration":false,"actualSubdomain":"ostium","customDomains":["docs.ostium.com"],"gitSource":{"type":"github","owner":"0xostium","repo":"new-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6acc8e98e4af841eed2f1868","collectionId":"2ac89999-3290-4b13-920e-1ca75a2be88f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acc8e98e4af841eed2f1868"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6acc8e98e4af841eed2f1868","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Developers","count":63},{"language":"default","tag":"Read Methods","count":17},{"language":"default","tag":"API Reference","count":16},{"language":"default","tag":"Traders","count":13},{"language":"default","tag":"Helpers","count":10},{"language":"default","tag":"Client Modes","count":8},{"language":"default","tag":"Builder API","count":7},{"language":"default","tag":"Trading","count":6},{"language":"default","tag":"Write Methods","count":5},{"language":"default","tag":"Previews \u0026 Limits","count":5}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":[],"page":{"pagePath":"api-reference/liquidity/price-for-a-given-trade-size","slug":"/api-reference/liquidity/price-for-a-given-trade-size","pageMetadata":{"title":"Price for a given trade size","description":"Ostium has no central-limit order book. The price a trade actually gets comes from the **dynamic price-impact model**: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI's depth chart — so you can show a fill price before submitting.\n\n`sizeUsd` is **USD notional**, not collateral and not a quantity of the asset. There is no `direction` input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and `availableNotionalUsd` differs between them at all times. Both are always returned.\n\nEither pair spelling is accepted (`US500-USD` or the legacy `SPX-USD`); the response always echoes the public one.\n\nA plain GET: read-only, idempotent, and safe to cache for a second or two.\n\n**A price is returned even when the size cannot fill.** The impact curve stays defined beyond the open-interest cap, so compare `sizeUsd` against that side's `availableNotionalUsd` before presenting a quote as executable.\n\nWhen a pair has no dynamic impact configured, or the size stays under the pair's volume threshold, `price` is exactly the top of book — the spread is the only cost.\n\nRate limit: 100 requests per 10 seconds per IP. Read `x-ratelimit-*` for the live budget rather than assuming this figure.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/depth/{pair}/quote","href":"/api-reference/liquidity/price-for-a-given-trade-size","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 p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Ostium has no central-limit order book. The price a trade actually gets comes from the \", _jsx(_components.strong, {\n children: \"dynamic price-impact model\"\n }), \": quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI’s depth chart — so you can show a fill price before submitting.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"sizeUsd\"\n }), \" is \", _jsx(_components.strong, {\n children: \"USD notional\"\n }), \", not collateral and not a quantity of the asset. There is no \", _jsx(_components.code, {\n children: \"direction\"\n }), \" input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and \", _jsx(_components.code, {\n children: \"availableNotionalUsd\"\n }), \" differs between them at all times. Both are always returned.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Either pair spelling is accepted (\", _jsx(_components.code, {\n children: \"US500-USD\"\n }), \" or the legacy \", _jsx(_components.code, {\n children: \"SPX-USD\"\n }), \"); the response always echoes the public one.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"A plain GET: read-only, idempotent, and safe to cache for a second or two.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"A price is returned even when the size cannot fill.\"\n }), \" The impact curve stays defined beyond the open-interest cap, so compare \", _jsx(_components.code, {\n children: \"sizeUsd\"\n }), \" against that side’s \", _jsx(_components.code, {\n children: \"availableNotionalUsd\"\n }), \" before presenting a quote as executable.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When a pair has no dynamic impact configured, or the size stays under the pair’s volume threshold, \", _jsx(_components.code, {\n children: \"price\"\n }), \" is exactly the top of book — the spread is the only cost.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Rate limit: 100 requests per 10 seconds per IP. Read \", _jsx(_components.code, {\n children: \"x-ratelimit-*\"\n }), \" for the live budget rather than assuming this figure.\"]\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":"Price for a given trade size","description":"Ostium has no central-limit order book. The price a trade actually gets comes from the **dynamic price-impact model**: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI's depth chart — so you can show a fill price before submitting.\n\n`sizeUsd` is **USD notional**, not collateral and not a quantity of the asset. There is no `direction` input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and `availableNotionalUsd` differs between them at all times. Both are always returned.\n\nEither pair spelling is accepted (`US500-USD` or the legacy `SPX-USD`); the response always echoes the public one.\n\nA plain GET: read-only, idempotent, and safe to cache for a second or two.\n\n**A price is returned even when the size cannot fill.** The impact curve stays defined beyond the open-interest cap, so compare `sizeUsd` against that side's `availableNotionalUsd` before presenting a quote as executable.\n\nWhen a pair has no dynamic impact configured, or the size stays under the pair's volume threshold, `price` is exactly the top of book — the spread is the only cost.\n\nRate limit: 100 requests per 10 seconds per IP. Read `x-ratelimit-*` for the live budget rather than assuming this figure.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/depth/{pair}/quote","href":"/api-reference/liquidity/price-for-a-given-trade-size","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Price for a given trade size","description":"Ostium has no central-limit order book. The price a trade actually gets comes from the **dynamic price-impact model**: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI's depth chart — so you can show a fill price before submitting.\n\n`sizeUsd` is **USD notional**, not collateral and not a quantity of the asset. There is no `direction` input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and `availableNotionalUsd` differs between them at all times. Both are always returned.\n\nEither pair spelling is accepted (`US500-USD` or the legacy `SPX-USD`); the response always echoes the public one.\n\nA plain GET: read-only, idempotent, and safe to cache for a second or two.\n\n**A price is returned even when the size cannot fill.** The impact curve stays defined beyond the open-interest cap, so compare `sizeUsd` against that side's `availableNotionalUsd` before presenting a quote as executable.\n\nWhen a pair has no dynamic impact configured, or the size stays under the pair's volume threshold, `price` is exactly the top of book — the spread is the only cost.\n\nRate limit: 100 requests per 10 seconds per IP. Read `x-ratelimit-*` for the live budget rather than assuming this figure.","tags":["Liquidity"],"parameters":["21ef8292-fb63-4c2f-bf7c-78a4551b7162","5e2ebc39-d59b-48ef-a9e2-1e25cd57c311"],"responses":{"200":"27c7f6d8-fec6-4a53-a5f1-3a9e5a3b929a","400":"43543bd7-d2b0-441e-9909-1fdb5f26d31a","404":"4d5d22d4-0ad3-4f2d-8b30-8e100768497a","503":"9143787c-3de8-401a-b335-052423f01a4d"},"method":"get","type":"path","servers":["35ccf0da-4e4c-4ce1-a160-3dfb930fa193","14a6e080-29f2-4577-ab29-a205a0e38f12"],"security":[],"path":"/v1/depth/{pair}/quote","baseUrlOptions":["https://builder.prod.bedrock.ostium.io","https://builder.stage.bedrock.ostium.io"],"title":"Price for a given trade size","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"21ef8292-fb63-4c2f-bf7c-78a4551b7162":{"schema":{"type":"string","pattern":"^[A-Z0-9]+-[A-Z0-9]+$","description":"Trading pair as BASE-QUOTE, e.g. BTC-USD or FTSE-GBP","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Trading pair as BASE-QUOTE, e.g. BTC-USD or FTSE-GBP","name":"pair","in":"path"},"5e2ebc39-d59b-48ef-a9e2-1e25cd57c311":{"schema":{"type":"number","exclusiveMinimum":0,"minimum":0.000001,"maximum":1000000000000,"description":"Trade size as USD notional (not asset units)","isRequired":true,"uniqueKey":"","typeLabel":"number"},"required":true,"description":"Trade size as USD notional (not asset units)","name":"sizeUsd","in":"query"}},"responses":{"27c7f6d8-fec6-4a53-a5f1-3a9e5a3b929a":{"description":"Quote for both sides","headers":{"x-request-id":{"schema":{"type":"string"},"description":"Always present, and always generated by the service — a value sent on the request is ignored. Use it to correlate a response with your own logs, and quote it when reporting a problem."},"x-ratelimit-limit":{"schema":{"type":"string"},"description":"Requests allowed per window."},"x-ratelimit-remaining":{"schema":{"type":"string"},"description":"Requests left in the current window."},"x-ratelimit-reset":{"schema":{"type":"string"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"pair":{"type":"string","isRequired":true,"uniqueKey":"pair","typeLabel":"string"},"sizeUsd":{"type":"number","isRequired":true,"uniqueKey":"sizeUsd","typeLabel":"number"},"mid":{"type":"number","description":"Unimpacted mid from the live feed","isRequired":true,"uniqueKey":"mid","typeLabel":"number"},"bid":{"type":"object","properties":{"price":{"type":"number","description":"Volume-weighted average fill price for the whole size, after impact — the quantity the trading UI labels \"Avg Price\". Not the marginal price at that depth.","example":0.183092,"isRequired":true,"uniqueKey":"bid.price","typeLabel":"number"},"impactBps":{"type":"number","description":"Impact in basis points (1% = 100bps). The model derives the impacted price from mid, so this is also exactly how far `price` sits from `mid`.","example":5.6,"isRequired":true,"uniqueKey":"bid.impactBps","typeLabel":"number"},"availableNotionalUsd":{"type":"number","description":"Remaining open-interest capacity on this side, in USD notional. A taker buy opens a long, so `ask` is bounded by the long side and `bid` by the short side — the two differ, and neither is the raw cap. A `sizeUsd` past this is still priced, but no such trade could open: compare the two before treating a quote as executable.","example":99952,"isRequired":true,"uniqueKey":"bid.availableNotionalUsd","typeLabel":"number"}},"required":["price","impactBps","availableNotionalUsd"],"description":"One side of the book, named by the price a taker gets: `ask` is a taker buy — opening a long, or closing a short; `bid` is a taker sell — opening a short, or closing a long.","isRequired":true,"uniqueKey":"bid","typeLabel":"object"},"ask":{"type":"object","properties":{"price":{"type":"number","description":"Volume-weighted average fill price for the whole size, after impact — the quantity the trading UI labels \"Avg Price\". Not the marginal price at that depth.","example":0.183092,"isRequired":true,"uniqueKey":"ask.price","typeLabel":"number"},"impactBps":{"type":"number","description":"Impact in basis points (1% = 100bps). The model derives the impacted price from mid, so this is also exactly how far `price` sits from `mid`.","example":5.6,"isRequired":true,"uniqueKey":"ask.impactBps","typeLabel":"number"},"availableNotionalUsd":{"type":"number","description":"Remaining open-interest capacity on this side, in USD notional. A taker buy opens a long, so `ask` is bounded by the long side and `bid` by the short side — the two differ, and neither is the raw cap. A `sizeUsd` past this is still priced, but no such trade could open: compare the two before treating a quote as executable.","example":99952,"isRequired":true,"uniqueKey":"ask.availableNotionalUsd","typeLabel":"number"}},"required":["price","impactBps","availableNotionalUsd"],"description":"One side of the book, named by the price a taker gets: `ask` is a taker buy — opening a long, or closing a short; `bid` is a taker sell — opening a short, or closing a long.","isRequired":true,"uniqueKey":"ask","typeLabel":"object"},"topOfBook":{"type":"object","properties":{"bid":{"type":"number","example":0.18291,"isRequired":true,"uniqueKey":"topOfBook.bid","typeLabel":"number"},"ask":{"type":"number","example":0.18306,"isRequired":true,"uniqueKey":"topOfBook.ask","typeLabel":"number"}},"required":["bid","ask"],"isRequired":true,"uniqueKey":"topOfBook","typeLabel":"object"},"priceTimestampMs":{"type":"integer","description":"Feed timestamp of the price this quote was derived from, in milliseconds — not the time the quote was served.","isRequired":true,"uniqueKey":"priceTimestampMs","typeLabel":"integer"}},"required":["pair","sizeUsd","mid","bid","ask","topOfBook","priceTimestampMs"],"uniqueKey":"","typeLabel":"object"},"example":{"pair":"ADA-USD","sizeUsd":50000,"mid":0.18299,"bid":{"price":0.182888,"impactBps":5.6,"availableNotionalUsd":99851},"ask":{"price":0.183092,"impactBps":5.6,"availableNotionalUsd":99952},"topOfBook":{"bid":0.18291,"ask":0.18306},"priceTimestampMs":1787198161000},"examples":{"Example":{"title":"Example","value":{"pair":"ADA-USD","sizeUsd":50000,"mid":0.18299,"bid":{"price":0.182888,"impactBps":5.6,"availableNotionalUsd":99851},"ask":{"price":0.183092,"impactBps":5.6,"availableNotionalUsd":99952},"topOfBook":{"bid":0.18291,"ask":0.18306},"priceTimestampMs":1787198161000}}},"exampleType":"examples"}},"exampleType":"examples"},"43543bd7-d2b0-441e-9909-1fdb5f26d31a":{"description":"Validation failed (bad pair format, missing or non-positive sizeUsd)","headers":{"x-request-id":{"schema":{"type":"string"},"description":"Always present, and always generated by the service — a value sent on the request is ignored. Use it to correlate a response with your own logs, and quote it when reporting a problem."},"x-ratelimit-limit":{"schema":{"type":"string"},"description":"Requests allowed per window."},"x-ratelimit-remaining":{"schema":{"type":"string"},"description":"Requests left in the current window."},"x-ratelimit-reset":{"schema":{"type":"string"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"HTTP status name, e.g. \"Bad Request\"","example":"Bad Request","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"issues":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"issues.items.[INDEX]","typeLabel":"any"},"description":"Raw zod issue array — present on validation failures only","uniqueKey":"issues","typeLabel":"any[]"},"details":{"description":"Optional structured detail from the thrower","uniqueKey":"details","typeLabel":"any"}},"required":["error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Bad Request","message":"Validation failed","issues":["\u003cunknown>"],"details":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4d5d22d4-0ad3-4f2d-8b30-8e100768497a":{"description":"The pair is not priced right now, or is not a listed market","headers":{"x-request-id":{"schema":{"type":"string"},"description":"Always present, and always generated by the service — a value sent on the request is ignored. Use it to correlate a response with your own logs, and quote it when reporting a problem."},"x-ratelimit-limit":{"schema":{"type":"string"},"description":"Requests allowed per window."},"x-ratelimit-remaining":{"schema":{"type":"string"},"description":"Requests left in the current window."},"x-ratelimit-reset":{"schema":{"type":"string"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"HTTP status name, e.g. \"Bad Request\"","example":"Bad Request","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"issues":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"issues.items.[INDEX]","typeLabel":"any"},"description":"Raw zod issue array — present on validation failures only","uniqueKey":"issues","typeLabel":"any[]"},"details":{"description":"Optional structured detail from the thrower","uniqueKey":"details","typeLabel":"any"}},"required":["error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Bad Request","message":"Validation failed","issues":["\u003cunknown>"],"details":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"9143787c-3de8-401a-b335-052423f01a4d":{"description":"Temporarily unable to price the pair — no usable live quote, or the market parameters behind the model are unavailable. Retry rather than fail.","headers":{"x-request-id":{"schema":{"type":"string"},"description":"Always present, and always generated by the service — a value sent on the request is ignored. Use it to correlate a response with your own logs, and quote it when reporting a problem."},"x-ratelimit-limit":{"schema":{"type":"string"},"description":"Requests allowed per window."},"x-ratelimit-remaining":{"schema":{"type":"string"},"description":"Requests left in the current window."},"x-ratelimit-reset":{"schema":{"type":"string"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"HTTP status name, e.g. \"Bad Request\"","example":"Bad Request","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"issues":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"issues.items.[INDEX]","typeLabel":"any"},"description":"Raw zod issue array — present on validation failures only","uniqueKey":"issues","typeLabel":"any[]"},"details":{"description":"Optional structured detail from the thrower","uniqueKey":"details","typeLabel":"any"}},"required":["error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Bad Request","message":"Validation failed","issues":["\u003cunknown>"],"details":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"35ccf0da-4e4c-4ce1-a160-3dfb930fa193":{"url":"https://builder.prod.bedrock.ostium.io","description":"Production (Arbitrum One)"},"14a6e080-29f2-4577-ab29-a205a0e38f12":{"url":"https://builder.stage.bedrock.ostium.io","description":"Staging (Arbitrum Sepolia)"}}},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"ostium","siteName":"Ostium","title":"Price for a given trade size - Ostium","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-17T13:14:46.692Z","originalFileLocation":"api-reference/liquidity/price-for-a-given-trade-size.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=\"description\" content=\"Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI\u0026#x27;s depth chart — so you can show a fill price before submitting. sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned. Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one. A plain GET: read-only, idempotent, and safe to cache for a second or two. A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side\u0026#x27;s availableNotionalUsd before presenting a quote as executable. When a pair has no dynamic impact configured, or the size stays under the pair\u0026#x27;s volume threshold, price is exactly the top of book — the spread is the only cost. Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ostium\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_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/ostium/YrHQiGdYpiT2HO80/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Price for a given trade size - Ostium\">\u003cmeta data-mint-head property=\"og:description\" content=\"Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI\u0026#x27;s depth chart — so you can show a fill price before submitting. sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned. Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one. A plain GET: read-only, idempotent, and safe to cache for a second or two. A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side\u0026#x27;s availableNotionalUsd before presenting a quote as executable. When a pair has no dynamic impact configured, or the size stays under the pair\u0026#x27;s volume threshold, price is exactly the top of book — the spread is the only cost. Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ostium\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ostium.mintlify.app/_mintlify/api/og/v2?division=Liquidity\u0026amp;title=Price+for+a+given+trade+size\u0026amp;description=Ostium+has+no+central-limit+order+book.+The+price+a+trade+actually+gets+comes+from+the+**dynamic+price-impact+model**%3A+quotes+widen+as+net+directional+volume+pu\u0026amp;theme=4c59edf2484b017f3ed2d875\u0026amp;signature=8019feea36e05b08831da17ff5bce1feab0091291a19eb847bf2183060a35987\">\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=\"Price for a given trade size - Ostium\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI\u0026#x27;s depth chart — so you can show a fill price before submitting. sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned. Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one. A plain GET: read-only, idempotent, and safe to cache for a second or two. A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side\u0026#x27;s availableNotionalUsd before presenting a quote as executable. When a pair has no dynamic impact configured, or the size stays under the pair\u0026#x27;s volume threshold, price is exactly the top of book — the spread is the only cost. Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ostium.mintlify.app/_mintlify/api/og/v2?division=Liquidity\u0026amp;title=Price+for+a+given+trade+size\u0026amp;description=Ostium+has+no+central-limit+order+book.+The+price+a+trade+actually+gets+comes+from+the+**dynamic+price-impact+model**%3A+quotes+widen+as+net+directional+volume+pu\u0026amp;theme=4c59edf2484b017f3ed2d875\u0026amp;signature=8019feea36e05b08831da17ff5bce1feab0091291a19eb847bf2183060a35987\">\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/ostium/YrHQiGdYpiT2HO80/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ostium\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5A19\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/liquidity/price-for-a-given-trade-size.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ostium.com/#organization\",\"name\":\"Ostium\",\"url\":\"https://docs.ostium.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ostium/rgKhfmKxgkO9O2aD/logo/ostium-logo.svg?fit=max\u0026auto=format\u0026n=rgKhfmKxgkO9O2aD\u0026q=85\u0026s=e2316b63df8fab1bbdb3c18daeff80e5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ostium.com#website\",\"name\":\"Ostium\",\"url\":\"https://docs.ostium.com\",\"publisher\":{\"@id\":\"https://docs.ostium.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size#webpage\",\"url\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size\",\"name\":\"Price for a given trade size\",\"description\":\"Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI's depth chart — so you can show a fill price before submitting. sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned. Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one. A plain GET: read-only, idempotent, and safe to cache for a second or two. A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side's availableNotionalUsd before presenting a quote as executable. When a pair has no dynamic impact configured, or the size stays under the pair's volume threshold, price is exactly the top of book — the spread is the only cost. Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.\",\"dateModified\":\"2026-09-17T13:14:46.692Z\",\"isPartOf\":{\"@id\":\"https://docs.ostium.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ostium\",\"item\":\"https://docs.ostium.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Price for a given trade size\",\"item\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size#apireference\",\"headline\":\"Price for a given trade size\",\"name\":\"Price for a given trade size\",\"description\":\"Ostium has no central-limit order book. The price a trade actually gets comes from the dynamic price-impact model: quotes widen as net directional volume pushes past a per-pair threshold, and that volume decays over time. This prices a given size against the live model — the same one behind the trading UI's depth chart — so you can show a fill price before submitting. sizeUsd is USD notional, not collateral and not a quantity of the asset. There is no direction input: the model reads buy volume for a long and sell volume for a short, so the two sides can diverge after a large one-sided trade, and availableNotionalUsd differs between them at all times. Both are always returned. Either pair spelling is accepted (US500-USD or the legacy SPX-USD); the response always echoes the public one. A plain GET: read-only, idempotent, and safe to cache for a second or two. A price is returned even when the size cannot fill. The impact curve stays defined beyond the open-interest cap, so compare sizeUsd against that side's availableNotionalUsd before presenting a quote as executable. When a pair has no dynamic impact configured, or the size stays under the pair's volume threshold, price is exactly the top of book — the spread is the only cost. Rate limit: 100 requests per 10 seconds per IP. Read x-ratelimit-* for the live budget rather than assuming this figure.\",\"url\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ostium.com/api-reference/liquidity/price-for-a-given-trade-size#webpage\"},\"dateModified\":\"2026-09-17T13:14:46.692Z\",\"publisher\":{\"@id\":\"https://docs.ostium.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ostium.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ostium\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ostium","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://ostium.com"},{"anchor":"Developers","icon":"code","href":"/developer/sdk/overview"},{"anchor":"Blog","icon":"newspaper","href":"https://www.ostium.com/blog"},{"anchor":"X/Twitter","icon":"twitter","href":"https://www.x.com/Ostium"}]},"tabs":[{"tab":"Traders","pages":[{"title":"Traders","href":"/traders/welcome"}]},{"tab":"Vault","pages":[{"title":"Vault","href":"/vault/overview"}]},{"tab":"Protocol","pages":[{"title":"Protocol","href":"/protocol/how-ostium-works"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developer/sdk/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/api-reference/overview"}]},{"group":"Prices","pages":[{"title":"Latest price for every pair","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/prices","href":"/api-reference/prices/latest-price-for-every-pair"},{"title":"Latest price for one pair","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/prices/{pair}","href":"/api-reference/prices/latest-price-for-one-pair"},{"title":"OHLC candles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ohlc","href":"/api-reference/prices/ohlc-candles"},{"title":"Price Stream","description":"Live prices over a WebSocket.","href":"/api-reference/price-stream"}]},{"group":"Liquidity","pages":[{"title":"Price for a given trade size","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/depth/{pair}/quote","href":"/api-reference/liquidity/price-for-a-given-trade-size"},{"title":"Price across a range of trade sizes","description":"The same impact model as `/v1/depth/{pair}/quote`, walked into a ladder so it reads like an order book. `asks` is buying (long), `bids` is selling (short); both ascend in notional out to `maxNotionalUsd`.\n\n`cumSizeUsd` is **cumulative**: each level prices one trade of that full size, not an increment on the level below. Summing levels is meaningless.\n\n`maxNotionalUsd` is the pair's max open interest, or its current OI where that is larger — the same extent the trading UI's depth chart draws.\n\n`levels` only sets sampling density. The underlying curve is piecewise linear — flat until volume crosses the pair's threshold, then a straight line — so a higher count draws a smoother chart but adds almost no information. Some pairs return one repeated price, when their threshold exceeds their own OI cap.\n\nEither pair spelling is accepted, as with the quote route.\n\nRate limit: 100 requests per 10 seconds per IP. Read `x-ratelimit-*` for the live budget rather than assuming this figure.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/depth/{pair}","href":"/api-reference/liquidity/price-across-a-range-of-trade-sizes"}]},{"group":"Markets","pages":[{"title":"Markets","href":"/api-reference/markets"},{"title":"Every listed pair and its live state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/pairs","href":"/api-reference/markets/every-listed-pair-and-its-live-state"},{"title":"When each market is open","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/market-hours","href":"/api-reference/markets/when-each-market-is-open"}]},{"group":"Portfolio","pages":[{"title":"Open positions for a wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/trades","href":"/api-reference/portfolio/open-positions-for-a-wallet"},{"title":"Limit/stop orders for a wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/limits","href":"/api-reference/portfolio/limitstop-orders-for-a-wallet"},{"title":"Order history for a wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/orders","href":"/api-reference/portfolio/order-history-for-a-wallet"}]},{"group":"Orders","pages":[{"title":"One-time onboarding (gasless)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/onboard","href":"/api-reference/orders/one-time-onboarding-gasless"},{"title":"Submit an order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/orders","href":"/api-reference/orders/submit-an-order"}]},{"group":"Status","pages":[{"title":"Service status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/status","href":"/api-reference/status/service-status"}]}]}]},"title":"Price for a given trade size - Ostium","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}