Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.
Stateless: no deposit address is minted and no transfer is created. Use this while the end user is
choosing an amount, then call POST /api/v1/bridging/address once they confirm.
amount is denominated in the origin asset (what will be sent to the deposit address).
The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount
(the provider’s indicative minimum for this quote at the configured slippage, when reported), and the fee
lines that produced the estimate. The quote is not bound to a later /address call, which obtains a
fresh quote that may differ.
constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset);
an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted,
and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is
the platform USD cap converted at the current price; an amount above it, or above the provider’s available
liquidity, is rejected with 400 amountExceedsMaximum.
Important: the estimate is indicative. The deposit address accepts any amount and the bridge is
priced on what actually arrives, so fees and rates can move between quoting and settlement.
POST
/
api
/
v1
/
bridging
/
quote
Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.
Prices a bridge for a caller-supplied pay-in amount without minting a deposit address or creating a
transfer. Call it while the end user is still choosing an amount; call POST /api/v1/bridging/address
only once they confirm.
The result is indicative. The deposit address returned by /address accepts any amount and the
bridge provider prices what actually arrives at fill time.
The payout leg: network, asset, and the address that will receive the bridged funds.
Must match a route from deposit or withdrawal route discovery together with origin.
Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.
Format: 2-character code (e.g., "7K", "M2"). Use for alerting/routing, not display.
Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.
All possible error types are available in the documentation.
An indicative price for bridging origin into destination. Nothing is
persisted and no deposit address is created. Amounts are in the respective leg's asset.
Show child attributes
Was this page helpful?
⌘I
Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Mesh","colors":{"primary":"#F9FF4D","light":"#F9FF4D","dark":"#F9FF4D"},"logo":{"light":"https://mintcdn.com/mesh-40/xC8T3jgyIbITRgDa/logo/yellow-logo.svg?fit=max\u0026auto=format\u0026n=xC8T3jgyIbITRgDa\u0026q=85\u0026s=1cd02a0ba4a7d0f45f959161701ec02d","dark":"https://mintcdn.com/mesh-40/xC8T3jgyIbITRgDa/logo/yellow-logo.svg?fit=max\u0026auto=format\u0026n=xC8T3jgyIbITRgDa\u0026q=85\u0026s=1cd02a0ba4a7d0f45f959161701ec02d"},"favicon":"https://mintcdn.com/mesh-40/AvjtqKCGv95_YUUc/favicon-new.png?fit=max\u0026auto=format\u0026n=AvjtqKCGv95_YUUc\u0026q=85\u0026s=932699c8f94d0f777bdd1b1ac6f17f23","api":{"openapi":"https://integration-api.meshconnect.com/swagger/v1/swagger.json"},"appearance":{"default":"dark","strict":true},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.meshconnect.com/login"}},"footer":{"socials":{"twitter":"https://twitter.com/meshconnectapi","linkedin":"https://www.linkedin.com/company/meshconnectapi"}},"integrations":{"ga4":{"measurementId":"G-1QG55ZYBHD"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you're looking for doesn't exist or has been moved. Try using the **search bar** above, or head back to the [Quickstart guide](/build/15min-quickstart) to get started."}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mesh-40","hasAudioNarration":false,"actualSubdomain":"mesh-40","customDomains":["docs.meshconnect.com"],"gitSource":{"type":"github","owner":"frontfin","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4d5376d5cc223f79e1a1b","collectionId":"64165158-1254-4b07-854c-eb141b68933c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4d5376d5cc223f79e1a1b"},"feedback":{"thumbs":true,"issues":false,"edits":false,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4d5376d5cc223f79e1a1b","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":35},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Further resources","count":16},{"language":"default","tag":"Account Management endpoints","count":10},{"language":"default","tag":"Build your integration","count":8},{"language":"default","tag":"Registered Clients","count":7},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Core endpoints","count":6},{"language":"default","tag":"Headless bridging endpoints","count":5},{"language":"default","tag":"User account endpoints","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes not-found-appear{0%{opacity:0}to{opacity:1}}.sdk-badge{display:inline-block;padding:.125rem .5rem;border-radius:.375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:500;line-height:1rem;white-space:nowrap;vertical-align:baseline;text-align:center}.sdk-live{color:#86efac;background-color:rgba(74,222,128,.1)}.sdk-backlog{color:#fca5a5;background-color:rgba(248,113,113,.1)}.sdk-coming-soon{color:#fcd34d;background-color:rgba(251,191,36,.1)}.sdk-default{color:#93c5fd;background-color:rgba(96,165,250,.1)}body:has(.not-found-container) #sidebar,body:has(.not-found-container) #table-of-contents{display:none!important}.not-found-container{position:fixed!important;top:64px!important;left:0!important;right:0!important;bottom:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:1.5rem!important;pointer-events:none;z-index:0;animation:not-found-appear .15s ease both}.not-found-container>*{pointer-events:auto;max-width:36rem;width:100%}#error-badge,.not-found-status-code{font-size:8rem!important;font-weight:900!important;line-height:1!important;color:#f9ff4d!important;opacity:.4!important;margin-bottom:.5rem!important;padding:0!important}#error-title,.not-found-title{font-size:1.75rem!important;font-weight:700!important;margin-bottom:.5rem!important}.not-found-description{font-size:1.05rem;color:rgba(229,229,231,.7);max-width:28rem;margin:0 auto 2.5rem;line-height:1.7}.not-found-recommended-page-link,.sidebar-group-header{color:#f9ff4d!important;font-weight:500}.sidebar-group-header{font-size:1rem!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;opacity:1!important;margin-top:1.75rem!important}#navigation-items,#sidebar-content{padding-top:0!important}li[data-group-tag]>button{font-weight:700!important}.parameter-reference{background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.28);border-radius:.75rem;padding:.25rem .9rem;margin:.75rem 0 1.25rem}.parameter-reference [class*=accordion],.parameter-reference details,.parameter-reference>div:first-child{background:0 0!important;border:0!important;box-shadow:none!important}.parameter-reference button,.parameter-reference summary{background:0 0!important;position:relative;padding-left:1.75rem!important}.parameter-reference button::before,.parameter-reference summary::before{content:\"📋\";position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:1rem;line-height:1}.platform-list{display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.08);border-radius:.75rem;overflow:hidden;margin:1rem 0}.platform-list .platform-row{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}.param-list .param-row:last-child,.platform-list .platform-row:last-child{border-bottom:none}.platform-list .platform-row img{width:18px;height:18px;flex-shrink:0;margin:0}.platform-list .platform-row span{font-weight:600}.param-list{display:flex;flex-direction:column;margin:1rem 0 .5rem}.param-list .param-row{padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.07)}.param-list .param-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .65rem;margin-bottom:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;font-weight:600;color:#f9ff4d;background:0 0}.param-list .param-name code{background:0 0;padding:0;border:0;font-size:inherit;font-weight:inherit;color:inherit}.param-list .param-name strong{font-weight:700}.param-list .param-body{font-size:.9em;color:rgba(229,229,231,.85);line-height:1.6}.param-list .param-body p{margin:0}.param-list .param-body p+p{margin-top:.55em}.param-list .param-body code{font-size:.88em}.param-list .param-tag{font-size:.7em;padding:.08em .5em}.parameter-reference table td:first-child,.parameter-reference table th:first-child{white-space:nowrap;min-width:14rem;vertical-align:top}.parameter-reference table td{vertical-align:top;padding-top:.6em;padding-bottom:.6em}.param-tag{display:inline-block;padding:.125rem .5rem;border-radius:.375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:500;line-height:1rem;white-space:nowrap;vertical-align:baseline;margin-bottom:.5rem}.param-tag-required{color:#86efac;background-color:rgba(74,222,128,.1)}.param-tag-optional{color:#fcd34d;background-color:rgba(251,191,36,.1)}:root{--sidebar-width:18rem;--content-edge-buffer:4.5rem;--content-max-width:56rem}@media (min-width:1024px){#sidebar-content{width:var(--sidebar-width)!important}#body-content{padding-left:var(--sidebar-width)!important}[class*=\"max-w-[696px]\"]{box-sizing:border-box!important;width:100%!important;max-width:min(var(--content-max-width),calc(100vw - var(--sidebar-width) - var(--content-edge-buffer)),100%)!important;margin-left:auto!important;margin-right:auto!important}}@media (min-width:1280px){:root{--content-edge-buffer:6.5rem}}@media (min-width:1520px){:root{--content-max-width:80rem}}#body-content :is(.frame, [class*=\"frame\"]){max-width:min(100%,48rem);margin-left:auto;margin-right:auto}#body-content :is(.frame, [class*=\"frame\"]) :is(img, picture, source){max-width:100%;height:auto;margin-left:auto;margin-right:auto;border-radius:.5rem}img.inline-icon{display:inline-block;width:1em;height:1em;max-width:none;margin:0 .3em 0 0;vertical-align:-.15em}"}],"page":{"pagePath":"api-reference/headless-bridging/get-quote","slug":"/api-reference/headless-bridging/get-quote","pageMetadata":{"openapi":"post /api/v1/bridging/quote","title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.","description":"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is\r\nchoosing an amount, then call `POST /api/v1/bridging/address` once they confirm.\r\n \r\n`amount` is denominated in the `origin` asset (what will be sent to the deposit address).\r\nThe response returns `destination.estimatedAmount` (net of provider fees), `destination.minimumAmount`\r\n(the provider's indicative minimum for this quote at the configured slippage, when reported), and the fee\r\nlines that produced the estimate. The quote is not bound to a later `/address` call, which obtains a\r\nfresh quote that may differ.\r\n \r\n`constraints.minimumAmount` is the smallest pay-in Mesh accepts on this route (in the origin asset);\r\nan `amount` below it is rejected with `400 amountBelowMinimum` before the provider is consulted,\r\nand the same value is returned by `POST /api/v1/bridging/address`. `constraints.maximumAmount` is\r\nthe platform USD cap converted at the current price; an amount above it, or above the provider's available\r\nliquidity, is rejected with `400 amountExceedsMaximum`.\r\n \r\n**Important:** the estimate is indicative. The deposit address accepts any amount and the bridge is\r\npriced on what actually arrives, so fees and rates can move between quoting and settlement.","href":"/api-reference/headless-bridging/get-quote"},"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: [\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is\\r\\nchoosing an amount, then call \", _jsx(_components.code, {\n children: \"POST /api/v1/bridging/address\"\n }), \" once they confirm.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"amount\"\n }), \" is denominated in the \", _jsx(_components.code, {\n children: \"origin\"\n }), \" asset (what will be sent to the deposit address).\\r\\nThe response returns \", _jsx(_components.code, {\n children: \"destination.estimatedAmount\"\n }), \" (net of provider fees), \", _jsx(_components.code, {\n children: \"destination.minimumAmount\"\n }), \"\\r\\n(the provider’s indicative minimum for this quote at the configured slippage, when reported), and the fee\\r\\nlines that produced the estimate. The quote is not bound to a later \", _jsx(_components.code, {\n children: \"/address\"\n }), \" call, which obtains a\\r\\nfresh quote that may differ.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"constraints.minimumAmount\"\n }), \" is the smallest pay-in Mesh accepts on this route (in the origin asset);\\r\\nan \", _jsx(_components.code, {\n children: \"amount\"\n }), \" below it is rejected with \", _jsx(_components.code, {\n children: \"400 amountBelowMinimum\"\n }), \" before the provider is consulted,\\r\\nand the same value is returned by \", _jsx(_components.code, {\n children: \"POST /api/v1/bridging/address\"\n }), \". \", _jsx(_components.code, {\n children: \"constraints.maximumAmount\"\n }), \" is\\r\\nthe platform USD cap converted at the current price; an amount above it, or above the provider’s available\\r\\nliquidity, is rejected with \", _jsx(_components.code, {\n children: \"400 amountExceedsMaximum\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Important:\"\n }), \" the estimate is indicative. The deposit address accepts any amount and the bridge is\\r\\npriced on what actually arrives, so fees and rates can move between quoting and settlement.\"]\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":{"openapi":"post /api/v1/bridging/quote","title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.","description":"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is\r\nchoosing an amount, then call `POST /api/v1/bridging/address` once they confirm.\r\n \r\n`amount` is denominated in the `origin` asset (what will be sent to the deposit address).\r\nThe response returns `destination.estimatedAmount` (net of provider fees), `destination.minimumAmount`\r\n(the provider's indicative minimum for this quote at the configured slippage, when reported), and the fee\r\nlines that produced the estimate. The quote is not bound to a later `/address` call, which obtains a\r\nfresh quote that may differ.\r\n \r\n`constraints.minimumAmount` is the smallest pay-in Mesh accepts on this route (in the origin asset);\r\nan `amount` below it is rejected with `400 amountBelowMinimum` before the provider is consulted,\r\nand the same value is returned by `POST /api/v1/bridging/address`. `constraints.maximumAmount` is\r\nthe platform USD cap converted at the current price; an amount above it, or above the provider's available\r\nliquidity, is rejected with `400 amountExceedsMaximum`.\r\n \r\n**Important:** the estimate is indicative. The deposit address accepts any amount and the bridge is\r\npriced on what actually arrives, so fees and rates can move between quoting and settlement.","href":"/api-reference/headless-bridging/get-quote"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Headless Bridging"],"summary":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.","description":"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is\r\nchoosing an amount, then call `POST /api/v1/bridging/address` once they confirm.\r\n \r\n`amount` is denominated in the `origin` asset (what will be sent to the deposit address).\r\nThe response returns `destination.estimatedAmount` (net of provider fees), `destination.minimumAmount`\r\n(the provider's indicative minimum for this quote at the configured slippage, when reported), and the fee\r\nlines that produced the estimate. The quote is not bound to a later `/address` call, which obtains a\r\nfresh quote that may differ.\r\n \r\n`constraints.minimumAmount` is the smallest pay-in Mesh accepts on this route (in the origin asset);\r\nan `amount` below it is rejected with `400 amountBelowMinimum` before the provider is consulted,\r\nand the same value is returned by `POST /api/v1/bridging/address`. `constraints.maximumAmount` is\r\nthe platform USD cap converted at the current price; an amount above it, or above the provider's available\r\nliquidity, is rejected with `400 amountExceedsMaximum`.\r\n \r\n**Important:** the estimate is indicative. The deposit address accepts any amount and the bridge is\r\npriced on what actually arrives, so fees and rates can move between quoting and settlement.","requestBody":"cab59e6f-16b1-428d-9a19-29ff7200deea","responses":{"200":"bb3d1a78-f5b5-4387-8ef9-594c1c5ab805","400":"6865f129-97f6-49ce-8304-2e3cabaf4264","401":"bd01a8e5-67a1-48b6-bf6f-1de8de81b6f5","403":"f9eae9ab-286a-4492-8cb2-4c0c9953698d","503":"a8486df3-99c1-4cdc-b138-d7bacdec4223"},"method":"post","type":"path","servers":["8208eed4-8164-4d93-b101-01f89c9bee01","2408a598-01ce-463c-ac8c-2da0b07f067d"],"security":["d76c5d14-23f1-4b2e-8ebf-5430952f53df"],"path":"/api/v1/bridging/quote","baseUrlOptions":["https://integration-api.meshconnect.com","https://sandbox-integration-api.meshconnect.com"],"title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/bridging/quote`.\r\n\n\r\nPrices a bridge for a caller-supplied pay-in amount without minting a deposit address or creating a\r\ntransfer. Call it while the end user is still choosing an amount; call `POST /api/v1/bridging/address`\r\nonly once they confirm.\r\n\n\r\nThe result is indicative. The deposit address returned by `/address` accepts any amount and the\r\nbridge provider prices what actually arrives at fill time.\r\n","required":["amount","destination","origin"],"properties":{"origin":{"type":"object","description":"The pay-in leg: network and asset that will be sent to the bridging address.\r\nMust match a configured route from deposit or withdrawal route discovery.","required":["asset","network"],"properties":{"network":{"minLength":1,"type":"string","description":"CAIP-2 network identifier for the token's network.\r\n\nExamples: `eip155:1` (Ethereum Mainnet), `eip155:137` (Polygon),\r\n`eip155:8453` (Base), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` (Solana Mainnet).","isRequired":true,"uniqueKey":"origin.network","typeLabel":"string"},"asset":{"minLength":1,"type":"string","description":"Token symbol, case-insensitive (e.g. `USDC`, `ETH`, `MATIC`).","isRequired":true,"uniqueKey":"origin.asset","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"origin","typeLabel":"object"},"destination":{"type":"object","description":"The payout leg: network, asset, and the address that will receive the bridged funds.\r\nMust match a route from deposit or withdrawal route discovery together with `origin`.","required":["address","asset","network"],"properties":{"network":{"minLength":1,"type":"string","description":"CAIP-2 network identifier for the token's network.\r\n\nExamples: `eip155:1` (Ethereum Mainnet), `eip155:137` (Polygon),\r\n`eip155:8453` (Base), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` (Solana Mainnet).","isRequired":true,"uniqueKey":"destination.network","typeLabel":"string"},"asset":{"minLength":1,"type":"string","description":"Token symbol, case-insensitive (e.g. `USDC`, `ETH`, `MATIC`).","isRequired":true,"uniqueKey":"destination.asset","typeLabel":"string"},"address":{"maxLength":200,"minLength":1,"type":"string","description":"On-chain wallet address on the destination network that will receive the bridged funds.\r\nMust be a valid address for the specified `network`.","isRequired":true,"uniqueKey":"destination.address","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"destination","typeLabel":"object"},"amount":{"maximum":1000000000,"minimum":1e-18,"type":"number","description":"Amount to be sent, denominated in the `origin` asset (e.g. `100` for 100 USDC).\r\nMust be greater than zero and at most 1,000,000,000.","format":"double","isRequired":true,"uniqueKey":"amount","typeLabel":"number\u003cdouble>"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"origin":{"network":"\u003cstring>","asset":"\u003cstring>"},"destination":{"network":"\u003cstring>","asset":"\u003cstring>","address":"\u003cstring>"},"amount":500000000}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"bb3d1a78-f5b5-4387-8ef9-594c1c5ab805":{"description":"Quote produced.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","serverFailure","permissionDenied","badRequest","notFound","conflict","tooManyRequest","locked","unavailableForLegalReasons","serviceUnavailable"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"oneOf":[{"type":"string","description":"A message generated by the API","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"A message generated by the API","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"displayMessage":{"oneOf":[{"type":"string","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"displayMessage","typeLabel":"string | null"},"errorHash":{"oneOf":[{"type":"string","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorHash","typeLabel":"string | null"},"teamCode":{"oneOf":[{"type":"string","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"teamCode","typeLabel":"string | null"},"errorType":{"oneOf":[{"type":"string","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.0","typeLabel":"string"},{"type":"null","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorType","typeLabel":"string | null"},"errorData":{"oneOf":[{"readOnly":true},{"readOnly":true,"type":"null","uniqueKey":"errorData.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorData","typeLabel":"null"},"content":{"oneOf":[{"type":"object","description":"Response body for `POST /api/v1/bridging/quote`.\r\n\n\r\nAn indicative price for bridging `origin` into `destination`. Nothing is\r\npersisted and no deposit address is created. Amounts are in the respective leg's asset.\r\n","required":["constraints","destination","fees","origin","warnings"],"properties":{"origin":{"oneOf":[{"type":"object","description":"The pay-in leg with the amount the quote was priced for.","required":["asset","network"],"properties":{"network":{"oneOf":[{"type":"string","description":"CAIP-2 network identifier of the pay-in network.","isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.network.oneOf.0","typeLabel":"string"},{"type":"null","description":"CAIP-2 network identifier of the pay-in network.","isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.network.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.network","typeLabel":"string | null"},"asset":{"oneOf":[{"type":"string","description":"Pay-in asset symbol.","isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.asset.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pay-in asset symbol.","isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.asset.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0.asset","typeLabel":"string | null"},"amount":{"type":"number","description":"Amount the quote was priced for, in the pay-in asset.","format":"double","uniqueKey":"content.oneOf.0.origin.oneOf.0.amount","typeLabel":"number\u003cdouble>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"content.oneOf.0.origin.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.origin","typeLabel":"object | null"},"destination":{"oneOf":[{"type":"object","description":"The payout leg with the estimated and minimum amounts the recipient should receive.","required":["address","asset","network"],"properties":{"network":{"oneOf":[{"type":"string","description":"CAIP-2 network identifier of the payout network.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.network.oneOf.0","typeLabel":"string"},{"type":"null","description":"CAIP-2 network identifier of the payout network.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.network.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.network","typeLabel":"string | null"},"asset":{"oneOf":[{"type":"string","description":"Payout asset symbol.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.asset.oneOf.0","typeLabel":"string"},{"type":"null","description":"Payout asset symbol.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.asset.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.asset","typeLabel":"string | null"},"address":{"oneOf":[{"type":"string","description":"Recipient address the quote was priced for.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Recipient address the quote was priced for.","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0.address","typeLabel":"string | null"},"estimatedAmount":{"type":"number","description":"Estimated amount the recipient receives, in the payout asset, net of provider fees.\r\nIndicative only; the fill is priced on the amount that actually arrives.","format":"double","uniqueKey":"content.oneOf.0.destination.oneOf.0.estimatedAmount","typeLabel":"number\u003cdouble>"},"minimumAmount":{"oneOf":[{"type":"number","description":"Indicative minimum for this quote at the configured slippage tolerance, when the provider reports one.\r\nThis quote is not bound to a later `POST /api/v1/bridging/address` call, which obtains a fresh quote\r\nthat may differ; treat it as a snapshot, not a committed floor for settlement.","format":"double","uniqueKey":"content.oneOf.0.destination.oneOf.0.minimumAmount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Indicative minimum for this quote at the configured slippage tolerance, when the provider reports one.\r\nThis quote is not bound to a later `POST /api/v1/bridging/address` call, which obtains a fresh quote\r\nthat may differ; treat it as a snapshot, not a committed floor for settlement.","format":"double","uniqueKey":"content.oneOf.0.destination.oneOf.0.minimumAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.oneOf.0.destination.oneOf.0.minimumAmount","typeLabel":"number\u003cdouble> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"content.oneOf.0.destination.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.destination","typeLabel":"object | null"},"fees":{"oneOf":[{"type":"object","description":"Provider fees that produce `destination.estimatedAmount`.","required":["items"],"properties":{"items":{"oneOf":[{"type":"array","items":{"required":["asset","label"],"type":"object","properties":{"label":{"oneOf":[{"type":"string","description":"Provider label for this fee.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Provider label for this fee.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].label","typeLabel":"string | null"},"asset":{"oneOf":[{"type":"string","description":"Symbol the fee is denominated in.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].asset.oneOf.0","typeLabel":"string"},{"type":"null","description":"Symbol the fee is denominated in.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].asset.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].asset","typeLabel":"string | null"},"kind":{"type":"string","description":"Fee category.","enum":["originGas","destinationGas","providerRelayerService","providerRelayerGas","providerLP","providerPlatformFixed","integrator","subsidized","providerAggregate","other"],"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"amount":{"oneOf":[{"type":"number","description":"Fee amount in `asset` units, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amount.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Fee amount in `asset` units, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amount","typeLabel":"number\u003cdouble> | null"},"amountUsd":{"oneOf":[{"type":"number","description":"Fee amount in USD, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amountUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Fee amount in USD, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amountUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].amountUsd","typeLabel":"number\u003cdouble> | null"},"includedInEstimate":{"type":"boolean","description":"`true` when this fee is already deducted from\r\n `destination.estimatedAmount`; `false` when it is informational\r\n (e.g. origin gas paid by the sender).","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX].includedInEstimate","typeLabel":"boolean"}},"additionalProperties":false,"description":"One fee line of a headless bridging quote.","uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Individual fee lines reported by the bridge provider.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"required":["asset","label"],"type":"object","properties":{"kind":{"type":"string","description":"Fee category.","enum":["originGas","destinationGas","providerRelayerService","providerRelayerGas","providerLP","providerPlatformFixed","integrator","subsidized","providerAggregate","other"]},"label":{"oneOf":[{"type":"string","description":"Provider label for this fee."},{"type":"null","description":"Provider label for this fee."}]},"amount":{"oneOf":[{"type":"number","description":"Fee amount in `asset` units, when the provider reports it.","format":"double"},{"type":"null","description":"Fee amount in `asset` units, when the provider reports it.","format":"double"}]},"asset":{"oneOf":[{"type":"string","description":"Symbol the fee is denominated in."},{"type":"null","description":"Symbol the fee is denominated in."}]},"amountUsd":{"oneOf":[{"type":"number","description":"Fee amount in USD, when the provider reports it.","format":"double"},{"type":"null","description":"Fee amount in USD, when the provider reports it.","format":"double"}]},"includedInEstimate":{"type":"boolean","description":"`true` when this fee is already deducted from\r\n `destination.estimatedAmount`; `false` when it is informational\r\n (e.g. origin gas paid by the sender)."}},"additionalProperties":false,"description":"One fee line of a headless bridging quote."},"description":"Individual fee lines reported by the bridge provider.","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0.\\items","typeLabel":"object[] | null"},"totalUsd":{"oneOf":[{"type":"number","description":"Total provider fees in USD that are deducted from the payout, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.totalUsd.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Total provider fees in USD that are deducted from the payout, when the provider reports it.","format":"double","uniqueKey":"content.oneOf.0.fees.oneOf.0.totalUsd.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.oneOf.0.fees.oneOf.0.totalUsd","typeLabel":"number\u003cdouble> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"content.oneOf.0.fees.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.fees","typeLabel":"object | null"},"constraints":{"oneOf":[{"type":"object","description":"Pay-in amount limits for this route. The same values are returned as `constraints` by\r\n`POST /api/v1/bridging/address`; a quote below `constraints.minimumAmount`\r\nis rejected with `amountBelowMinimum` before the provider is consulted.","required":["minimumAmount"],"properties":{"minimumAmount":{"oneOf":[{"type":"string","description":"Minimum pay-in amount as a decimal string in the origin asset: the stricter of the route minimum and the\r\nplatform USD floor converted at the current price. `\"0\"` when neither applies.","isRequired":true,"uniqueKey":"content.oneOf.0.constraints.oneOf.0.minimumAmount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Minimum pay-in amount as a decimal string in the origin asset: the stricter of the route minimum and the\r\nplatform USD floor converted at the current price. `\"0\"` when neither applies.","isRequired":true,"uniqueKey":"content.oneOf.0.constraints.oneOf.0.minimumAmount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.constraints.oneOf.0.minimumAmount","typeLabel":"string | null"},"maximumAmount":{"oneOf":[{"type":"string","description":"Maximum pay-in amount as a decimal string in the origin asset: the platform USD cap converted at the current\r\nprice. An `amount` above it is rejected with `amountExceedsMaximum`; the provider's available\r\nliquidity may be lower and is reported the same way. `null` when no platform maximum can be expressed\r\n(serialized as JSON `null` despite global omit-null settings).","uniqueKey":"content.oneOf.0.constraints.oneOf.0.maximumAmount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Maximum pay-in amount as a decimal string in the origin asset: the platform USD cap converted at the current\r\nprice. An `amount` above it is rejected with `amountExceedsMaximum`; the provider's available\r\nliquidity may be lower and is reported the same way. `null` when no platform maximum can be expressed\r\n(serialized as JSON `null` despite global omit-null settings).","uniqueKey":"content.oneOf.0.constraints.oneOf.0.maximumAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.oneOf.0.constraints.oneOf.0.maximumAmount","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"content.oneOf.0.constraints.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"content.oneOf.0.constraints.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.constraints","typeLabel":"object | null"},"warnings":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"content.oneOf.0.warnings.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Human-readable caveats to surface alongside the estimate.","isRequired":true,"uniqueKey":"content.oneOf.0.warnings.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Human-readable caveats to surface alongside the estimate.","isRequired":true,"uniqueKey":"content.oneOf.0.warnings.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"content.oneOf.0.warnings","typeLabel":"string[] | null"},"rate":{"type":"number","description":"Destination units per one origin unit, net of fees (`estimatedAmount / amount`).","format":"double","uniqueKey":"content.oneOf.0.rate","typeLabel":"number\u003cdouble>"},"quotedAt":{"type":"integer","description":"Unix timestamp (seconds) at which this quote was produced. Re-quote if the user lingers.","format":"int64","uniqueKey":"content.oneOf.0.quotedAt","typeLabel":"integer\u003cint64>"}},"additionalProperties":false,"uniqueKey":"content.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"content.oneOf.1","typeLabel":"null"}],"uniqueKey":"content","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"ok","message":"\u003cstring>","displayMessage":"\u003cstring>","errorHash":"\u003cstring>","teamCode":"\u003cstring>","errorType":"\u003cstring>","errorData":"\u003cunknown>","content":{"origin":{"network":"\u003cstring>","asset":"\u003cstring>","amount":123},"destination":{"network":"\u003cstring>","asset":"\u003cstring>","address":"\u003cstring>","estimatedAmount":123,"minimumAmount":123},"fees":{"items":[{"label":"\u003cstring>","asset":"\u003cstring>","kind":"originGas","amount":123,"amountUsd":123,"includedInEstimate":true}],"totalUsd":123},"constraints":{"minimumAmount":"\u003cstring>","maximumAmount":"\u003cstring>"},"warnings":["\u003cstring>"],"rate":123,"quotedAt":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"6865f129-97f6-49ce-8304-2e3cabaf4264":{"description":"Request is missing required fields, the network is unknown, the bridging provider rejected the destination address as not valid for the destination network (`invalidDestinationAddress`), no route exists for the given pair, or the amount is below the minimum (`amountBelowMinimum`) or above the maximum / provider's available liquidity (`amountExceedsMaximum`).","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","serverFailure","permissionDenied","badRequest","notFound","conflict","tooManyRequest","locked","unavailableForLegalReasons","serviceUnavailable"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"oneOf":[{"type":"string","description":"A message generated by the API","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"A message generated by the API","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"displayMessage":{"oneOf":[{"type":"string","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"displayMessage","typeLabel":"string | null"},"errorHash":{"oneOf":[{"type":"string","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorHash","typeLabel":"string | null"},"teamCode":{"oneOf":[{"type":"string","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"teamCode","typeLabel":"string | null"},"errorType":{"oneOf":[{"type":"string","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.0","typeLabel":"string"},{"type":"null","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorType","typeLabel":"string | null"},"errorData":{"oneOf":[{"readOnly":true},{"readOnly":true,"type":"null","uniqueKey":"errorData.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorData","typeLabel":"null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""},"examples":{"Example":{"title":"Example","value":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""}}},"exampleType":"examples"}},"exampleType":"examples"},"bd01a8e5-67a1-48b6-bf6f-1de8de81b6f5":{"description":"Unauthorized — Client ID or Client Secret are missing or incorrect.","content":{"application/json":{"schema":{}}},"exampleType":"generated"},"f9eae9ab-286a-4492-8cb2-4c0c9953698d":{"description":"Headless bridging is not enabled for this client (`permissionDenied`).","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","serverFailure","permissionDenied","badRequest","notFound","conflict","tooManyRequest","locked","unavailableForLegalReasons","serviceUnavailable"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"oneOf":[{"type":"string","description":"A message generated by the API","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"A message generated by the API","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"displayMessage":{"oneOf":[{"type":"string","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"displayMessage","typeLabel":"string | null"},"errorHash":{"oneOf":[{"type":"string","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorHash","typeLabel":"string | null"},"teamCode":{"oneOf":[{"type":"string","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"teamCode","typeLabel":"string | null"},"errorType":{"oneOf":[{"type":"string","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.0","typeLabel":"string"},{"type":"null","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorType","typeLabel":"string | null"},"errorData":{"oneOf":[{"readOnly":true},{"readOnly":true,"type":"null","uniqueKey":"errorData.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorData","typeLabel":"null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""},"examples":{"Example":{"title":"Example","value":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""}}},"exampleType":"examples"}},"exampleType":"examples"},"a8486df3-99c1-4cdc-b138-d7bacdec4223":{"description":"The bridging provider cannot price this route right now (`serverFailureRetryable`), typically a temporary liquidity gap — BTC routes in particular can be intermittently unavailable. Retry after a short delay.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","serverFailure","permissionDenied","badRequest","notFound","conflict","tooManyRequest","locked","unavailableForLegalReasons","serviceUnavailable"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"oneOf":[{"type":"string","description":"A message generated by the API","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"A message generated by the API","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"displayMessage":{"oneOf":[{"type":"string","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-friendly display message that can be presented to the end user","uniqueKey":"displayMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"displayMessage","typeLabel":"string | null"},"errorHash":{"oneOf":[{"type":"string","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping","readOnly":true,"uniqueKey":"errorHash.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorHash","typeLabel":"string | null"},"teamCode":{"oneOf":[{"type":"string","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display.","readOnly":true,"uniqueKey":"teamCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"teamCode","typeLabel":"string | null"},"errorType":{"oneOf":[{"type":"string","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.0","typeLabel":"string"},{"type":"null","description":"Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation.","uniqueKey":"errorType.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorType","typeLabel":"string | null"},"errorData":{"oneOf":[{"readOnly":true},{"readOnly":true,"type":"null","uniqueKey":"errorData.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorData","typeLabel":"null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""},"examples":{"Example":{"title":"Example","value":{"status":"ok","message":"","errorHash":"014bffeb","teamCode":"Q9","errorType":""}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d76c5d14-23f1-4b2e-8ebf-5430952f53df":{"Client-Secret":{"type":"apiKey","description":"Contact Mesh to get client Secret","name":"X-Client-Secret","in":"header","scopes":[],"schemeName":"Client-Secret"},"Client-Id":{"type":"apiKey","description":"Contact Mesh to get client Id","name":"X-Client-Id","in":"header","scopes":[],"schemeName":"Client-Id"}}},"servers":{"8208eed4-8164-4d93-b101-01f89c9bee01":{"url":"https://integration-api.meshconnect.com"},"2408a598-01ce-463c-ac8c-2da0b07f067d":{"url":"https://sandbox-integration-api.meshconnect.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","description":"Contact Mesh to get client Secret","name":"X-Client-Secret","in":"header","scopes":[],"schemeName":"Client-Secret"},"schema":{"title":"X-Client-Secret","type":"string","description":"Contact Mesh to get client Secret","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"Client-Secret","name":"X-Client-Secret"},{"scheme":{"type":"apiKey","description":"Contact Mesh to get client Id","name":"X-Client-Id","in":"header","scopes":[],"schemeName":"Client-Id"},"schema":{"title":"X-Client-Id","type":"string","description":"Contact Mesh to get client Id","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"Client-Id","name":"X-Client-Id"}],"title":"Client-Secret \u0026 Client-Id"}]},"originalFileLocation":"https://integration-api.meshconnect.com/swagger/v1/swagger.json"},"subdomain":"mesh-40","siteName":"Mesh","title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route. - Mesh","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T22:51:56.233Z","originalFileLocation":"api-reference/headless-bridging/get-quote.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=\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is choosing an amount, then call POST /api/v1/bridging/address once they confirm. amount is denominated in the origin asset (what will be sent to the deposit address). The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount (the provider\u0026#x27;s indicative minimum for this quote at the configured slippage, when reported), and the fee lines that produced the estimate. The quote is not bound to a later /address call, which obtains a fresh quote that may differ. constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset); an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted, and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is the platform USD cap converted at the current price; an amount above it, or above the provider\u0026#x27;s available liquidity, is rejected with 400 amountExceedsMaximum. Important: the estimate is indicative. The deposit address accepts any amount and the bridge is priced on what actually arrives, so fees and rates can move between quoting and settlement.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mesh\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_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/mesh-40/p00HcmipLgvMhble/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route. - Mesh\">\u003cmeta data-mint-head property=\"og:description\" content=\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is choosing an amount, then call POST /api/v1/bridging/address once they confirm. amount is denominated in the origin asset (what will be sent to the deposit address). The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount (the provider\u0026#x27;s indicative minimum for this quote at the configured slippage, when reported), and the fee lines that produced the estimate. The quote is not bound to a later /address call, which obtains a fresh quote that may differ. constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset); an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted, and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is the platform USD cap converted at the current price; an amount above it, or above the provider\u0026#x27;s available liquidity, is rejected with 400 amountExceedsMaximum. Important: the estimate is indicative. The deposit address accepts any amount and the bridge is priced on what actually arrives, so fees and rates can move between quoting and settlement.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mesh\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mesh-40.mintlify.app/_mintlify/api/og/v2?division=Headless+bridging+endpoints\u0026amp;title=Get+an+indicative+quote+for+bridging+a+given+pay-in+amount+on+a+configured+origin%E2%86%92destination+route.\u0026amp;description=Stateless%3A+no+deposit+address+is+minted+and+no+transfer+is+created.+Use+this+while+the+end+user+is%0D%0Achoosing+an+amount%2C+then+call+%60POST+%2Fapi%2Fv1%2Fbridging%2Faddress\u0026amp;theme=9eeaacc453403c39c4dc5090\u0026amp;signature=2137405693d2c8393181b26ce6e83e813b363193864ef5535c1c452a83dfb1e5\">\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 an indicative quote for bridging a given pay-in amount on a configured origin→destination route. - Mesh\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is choosing an amount, then call POST /api/v1/bridging/address once they confirm. amount is denominated in the origin asset (what will be sent to the deposit address). The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount (the provider\u0026#x27;s indicative minimum for this quote at the configured slippage, when reported), and the fee lines that produced the estimate. The quote is not bound to a later /address call, which obtains a fresh quote that may differ. constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset); an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted, and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is the platform USD cap converted at the current price; an amount above it, or above the provider\u0026#x27;s available liquidity, is rejected with 400 amountExceedsMaximum. Important: the estimate is indicative. The deposit address accepts any amount and the bridge is priced on what actually arrives, so fees and rates can move between quoting and settlement.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mesh-40.mintlify.app/_mintlify/api/og/v2?division=Headless+bridging+endpoints\u0026amp;title=Get+an+indicative+quote+for+bridging+a+given+pay-in+amount+on+a+configured+origin%E2%86%92destination+route.\u0026amp;description=Stateless%3A+no+deposit+address+is+minted+and+no+transfer+is+created.+Use+this+while+the+end+user+is%0D%0Achoosing+an+amount%2C+then+call+%60POST+%2Fapi%2Fv1%2Fbridging%2Faddress\u0026amp;theme=9eeaacc453403c39c4dc5090\u0026amp;signature=2137405693d2c8393181b26ce6e83e813b363193864ef5535c1c452a83dfb1e5\">\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/mesh-40/p00HcmipLgvMhble/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mesh\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F9FF4D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/headless-bridging/get-quote.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.meshconnect.com/#organization\",\"name\":\"Mesh\",\"url\":\"https://docs.meshconnect.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mesh-40/xC8T3jgyIbITRgDa/logo/yellow-logo.svg?fit=max\u0026auto=format\u0026n=xC8T3jgyIbITRgDa\u0026q=85\u0026s=1cd02a0ba4a7d0f45f959161701ec02d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.meshconnect.com#website\",\"name\":\"Mesh\",\"url\":\"https://docs.meshconnect.com\",\"publisher\":{\"@id\":\"https://docs.meshconnect.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote#webpage\",\"url\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote\",\"name\":\"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.\",\"description\":\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is choosing an amount, then call POST /api/v1/bridging/address once they confirm. amount is denominated in the origin asset (what will be sent to the deposit address). The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount (the provider's indicative minimum for this quote at the configured slippage, when reported), and the fee lines that produced the estimate. The quote is not bound to a later /address call, which obtains a fresh quote that may differ. constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset); an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted, and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is the platform USD cap converted at the current price; an amount above it, or above the provider's available liquidity, is rejected with 400 amountExceedsMaximum. Important: the estimate is indicative. The deposit address accepts any amount and the bridge is priced on what actually arrives, so fees and rates can move between quoting and settlement.\",\"dateModified\":\"2026-10-14T22:51:56.233Z\",\"isPartOf\":{\"@id\":\"https://docs.meshconnect.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.meshconnect.com/api-reference/managed-account-authentication/get-link-token-with-parameters\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Headless bridging endpoints\",\"item\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-deposit-routes\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.\",\"item\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote#apireference\",\"headline\":\"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.\",\"name\":\"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.\",\"description\":\"Stateless: no deposit address is minted and no transfer is created. Use this while the end user is choosing an amount, then call POST /api/v1/bridging/address once they confirm. amount is denominated in the origin asset (what will be sent to the deposit address). The response returns destination.estimatedAmount (net of provider fees), destination.minimumAmount (the provider's indicative minimum for this quote at the configured slippage, when reported), and the fee lines that produced the estimate. The quote is not bound to a later /address call, which obtains a fresh quote that may differ. constraints.minimumAmount is the smallest pay-in Mesh accepts on this route (in the origin asset); an amount below it is rejected with 400 amountBelowMinimum before the provider is consulted, and the same value is returned by POST /api/v1/bridging/address. constraints.maximumAmount is the platform USD cap converted at the current price; an amount above it, or above the provider's available liquidity, is rejected with 400 amountExceedsMaximum. Important: the estimate is indicative. The deposit address accepts any amount and the bridge is priced on what actually arrives, so fees and rates can move between quoting and settlement.\",\"url\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote\",\"mainEntityOfPage\":{\"@id\":\"https://docs.meshconnect.com/api-reference/headless-bridging/get-quote#webpage\"},\"dateModified\":\"2026-10-14T22:51:56.233Z\",\"publisher\":{\"@id\":\"https://docs.meshconnect.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.meshconnect.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mesh\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mesh","nav":{"global":null,"groups":[{"group":"Guides","pages":[{"group":"Build your integration","pages":[{"title":"15min Quickstart","href":"/build/15min-quickstart"},{"title":"Prepare to build","href":"/build/prepare-to-build"},{"title":"Fetch a Link Token","href":"/build/fetch-link-token"},{"title":"Launch the Mesh SDK","href":"/build/launch-sdk"},{"title":"Use Mesh's callback functions","href":"/build/callbacks"},{"title":"Supercharge return-users","href":"/build/return-users"},{"title":"Polish the experience","href":"/build/polish"},{"title":"Prepare for go-live","href":"/build/go-live"}]},{"group":"Extend your integration","pages":[{"title":"Add Mesh onramp integrations to your \"Buy\" lineup","href":"/extend/onramp"},{"title":"Add Mesh to your withdrawal flow","href":"/extend/withdrawal"},{"title":"Verify self-hosted wallets","href":"/extend/verify-wallets"}]},{"group":"Further resources","pages":[{"title":"How it all fits together","href":"/resources/how-it-fits"},{"title":"Concepts","href":"/resources/concepts"},{"title":"SDK release notes \u0026 versioning","href":"/resources/sdk-release-notes"},{"title":"Transfer status webhooks","href":"/resources/webhooks"},{"title":"Multi-language support","href":"/resources/multi-language"},{"title":"Fiat currency support","href":"/resources/fiat-currency"},{"title":"Mesh SDK events","href":"/resources/sdk-events"},{"title":"Manual deposits","href":"/resources/manual-deposits"},{"title":"Headless bridging","href":"/resources/headless-bridging"},{"title":"SDK backup mode","href":"/resources/sdk-backup-mode"},{"title":"Just-in-time address fetching","href":"/resources/jit-address-fetching"},{"title":"Managing sub-clients","href":"/resources/sub-clients"},{"title":"Intelligent catalog filtering","href":"/resources/catalog-filtering"},{"title":"Sandbox \u0026 Testnets","href":"/resources/sandbox-testnets"},{"title":"Network and token support","href":"/resources/supported-tokens"},{"title":"Common errors","href":"/resources/common-errors"}]}]},{"group":"API Reference","pages":[{"group":"Core endpoints","pages":[{"openapi":"post /api/v1/linktoken","title":"Get Link token","href":"/api-reference/managed-account-authentication/get-link-token-with-parameters"},{"openapi":"get /api/v1/transfers/managed/mesh","title":"Get Mesh transfers","href":"/api-reference/managed-transfers/get-transfers-initiated-by-mesh"},{"openapi":"get /api/v1/transfers/managed/networks","title":"Get networks","href":"/api-reference/managed-transfers/get-networks"},{"openapi":"get /api/v1/transfers/managed/integrations","title":"Get integrations","href":"/api-reference/managed-transfers/get-integrations"},{"openapi":"get /api/v1/transfers/managed/tokens","title":"Get supported tokens","href":"/api-reference/managed-transfers/get-supported-tokens-list"},{"openapi":"post /api/v1/transfers/managed/quote","title":"Get quote","href":"/api-reference/managed-transfers/quote-transfer"}]},{"group":"Headless bridging endpoints","pages":[{"openapi":"post /api/v1/bridging/routes/deposit","title":"Discover pay-in (source) bridging routes for one or more payout destinations.","href":"/api-reference/headless-bridging/get-deposit-routes"},{"openapi":"post /api/v1/bridging/routes/withdrawal","title":"Discover payout (destination) bridging routes for fixed omnibus (source) legs.","description":"Provide at least one `sources` entry (CAIP-2 network + asset). When `optimized` is `true` (default),\r\nreturns at most one source per distinct destination. Set `optimized` to `false`\r\nto list every matching origin→destination pair for those sources.","href":"/api-reference/headless-bridging/get-withdrawal-routes"},{"openapi":"post /api/v1/bridging/quote","title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route.","href":"/api-reference/headless-bridging/get-quote"},{"openapi":"post /api/v1/bridging/address","title":"Create a one-time bridging deposit address for a selected origin→destination pair.","description":"Returns a single-use address on the \u003cb>origin\u003c/b> network for the \u003cb>origin\u003c/b> asset. Funds must be\r\nsent to that address on that chain; Mesh detects the deposit, executes the bridge, and delivers\r\nto `destination.address` on the destination network.\r\n \r\n**Deposit-style (user pay-in):** discover routes with `POST /api/v1/bridging/routes/deposit`.\r\nThe end user sends from their wallet to the returned deposit address.\r\n \r\n**Withdrawal-style (platform pay-in):** discover routes with `POST /api/v1/bridging/routes/withdrawal`\r\nto pair an omnibus `origin` with the user’s chosen destination. Your platform sends the origin\r\nasset from that omnibus wallet to the deposit address; the user’s withdrawal address is `destination.address`.\r\n \r\n**Idempotency:** a `transactionId` is single-use per `userId`. While the transfer is still\r\npending, re-submitting the same `transactionId` + `userId` with the same origin, destination and\r\naddress returns the previously created address unchanged (same `transferId`, same\r\n`expirationTime`) rather than generating a new one, so network-error retries are safe. Re-submitting\r\nwith a different origin, destination or address is a `400`. Once the transfer has reached a terminal\r\nstate (succeeded, failed or expired), the same `transactionId` returns `409`; use a new\r\n`transactionId` for a new address.\r\n \r\n**Expiry:** `constraints.expirationTime` is fixed at creation (6 hours by default) and is the point at\r\nwhich Mesh stops tracking the address. A transfer that has not been funded by then is marked failed; a\r\npay-in that arrives before then is bridged and the transfer moves to succeeded as soon as it settles. Do\r\nnot display or use the address after `expirationTime`: the provider may still bridge funds sent\r\nlater, but Mesh will not track them automatically.\r\n \r\n**Minimum amount:** `constraints.minimumAmount` is the smallest pay-in (in the origin asset) Mesh\r\naccepts on this route: the stricter of the route's configured minimum and the platform USD floor\r\nconverted at the current price. It is the same value `POST /api/v1/bridging/quote` returns in its\r\n`constraints` and enforces with `amountBelowMinimum`. `constraints.maximumAmount` is the\r\nplatform USD cap converted at the current price (enforced on `/quote` with `amountExceedsMaximum`);\r\nthe provider's available liquidity may be lower and surfaces at quote time the same way.\r\n \r\n**Typical flow:**\r\n1. Discover routes (`routes/deposit` or `routes/withdrawal`) and fix `origin` + `destination`\r\n (destination includes the recipient withdrawal address when applicable).\r\n2. Call this endpoint with those values.\r\n3. Show the deposit address, constraints (`minimumAmount`, `expirationTime`, `singleUseAddress`),\r\n and warnings to whoever will broadcast the pay-in (end user or your custody system).\r\n4. After the pay-in is sent on-chain, Mesh completes the bridge to the destination address.\r\n5. Use `transferId` from `tracking` for webhooks or the transfer status API.\r\n \r\n**Important:** the deposit address is single-use; do not reuse it.","href":"/api-reference/headless-bridging/create-bridged-address"},{"openapi":"post /api/v1/bridging/notify","title":"Report a native (non-bridged) deposit your platform has already detected on one of its own deposit addresses.","href":"/api-reference/headless-bridging/notify-native-deposit"}]},{"group":"User account endpoints","pages":[{"openapi":"post /api/v1/transfers/managed/address/list","title":"Get deposit addresses","href":"/api-reference/managed-transfers/get-list-of-deposit-addresses"},{"openapi":"post /api/v1/holdings/get","title":"Get crypto holdings","href":"/api-reference/portfolio/get-holdings"},{"openapi":"post /api/v1/holdings/value","title":"Get holdings values","href":"/api-reference/portfolio/get-holdings-values"},{"openapi":"post /api/v1/balance/get","title":"Get fiat holdings","href":"/api-reference/balance/get-account-balance"}]},{"group":"Verify endpoints","pages":[{"openapi":"post /api/v1/exchange/verify","title":"Get profile data","href":"/api-reference/verify/verify"},{"openapi":"get /api/v1/wallets/verify","title":"Get verified addresses","href":"/api-reference/verify/wallet"}]},{"group":"Token management endpoints","pages":[{"openapi":"post /api/v1/token/refresh","title":"Refresh auth token","href":"/api-reference/managed-account-authentication/refresh-auth-token"},{"openapi":"delete /api/v1/account","title":"Remove connection","href":"/api-reference/managed-account-authentication/remove-connection"}]},{"group":"Account Management endpoints","pages":[{"group":"Auth Token","pages":[{"title":"Generate Auth token","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json post /admin/api/v1/Token","href":"/api-reference/auth-token/generate-auth-token"}]},{"group":"Main Clients","pages":[{"title":"Get Main Client callback urls","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json get /admin/api/v1/Client/callbackUrls","href":"/api-reference/main-clients/get-main-client-callback-urls"},{"title":"Update Main Client callback urls","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json post /admin/api/v1/Client/callbackUrls","href":"/api-reference/main-clients/update-main-client-callback-urls"}]},{"group":"Registered Clients","pages":[{"title":"Get all Registered clients","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json get /admin/api/v1/SubClient","href":"/api-reference/registered-clients/get-all-registered-clients"},{"title":"Add new Registered client","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json post /admin/api/v1/SubClient","href":"/api-reference/registered-clients/add-new-registered-client"},{"title":"Get Registered client","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json get /admin/api/v1/SubClient/{id}","href":"/api-reference/registered-clients/get-registered-client"},{"title":"Update Registered client","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json put /admin/api/v1/SubClient/{id}","href":"/api-reference/registered-clients/update-registered-client"},{"title":"Delete Registered client","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json delete /admin/api/v1/SubClient/{id}","href":"/api-reference/registered-clients/delete-registered-client"},{"title":"Update Registered client Logo","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json post /admin/api/v1/SubClient/{id}/logo","href":"/api-reference/registered-clients/update-registered-client-logo"},{"title":"Remove Registered client Logo","deprecated":null,"version":null,"openapi":"https://admin-api.meshconnect.com/swagger/AdminAPI/swagger.json delete /admin/api/v1/SubClient/{id}/logo","href":"/api-reference/registered-clients/remove-registered-client-logo"}]}]},{"group":"Deprecated","pages":[{"openapi":"get /api/v1/integrations","title":"Get available integrations","href":"/api-reference/managed-account-authentication/retrieve-the-list-of-all-available-integrations"},{"openapi":"get /api/v1/status","title":"Get integrations health status","href":"/api-reference/managed-account-authentication/get-health-status"},{"openapi":"post /api/v1/transfers/managed/address/get","title":"Get deposit address","href":"/api-reference/managed-transfers/get-deposit-address"},{"openapi":"post /api/v1/transfers/address/get","title":"Get deposit address","href":"/api-reference/transfers/get-deposit-address"},{"openapi":"get /api/v1/holdings/portfolio","title":"Get aggregated portfolio","href":"/api-reference/portfolio/get-aggregated-portfolio"},{"openapi":"get /api/v1/balance/portfolio","title":"Get aggregated portfolio fiat balances","href":"/api-reference/balance/get-aggregated-portfolio-fiat-balances"}]}]}]},"basePath":"","title":"Get an indicative quote for bridging a given pay-in amount on a configured origin→destination route. - Mesh","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Bevw23-4.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}