---
title: "Preview a bridge quote before depositing"
method: POST
path: "/quotes/preview"
tags: ["Processing"]
---

# Preview a bridge quote before depositing

`POST /quotes/preview`

Returns the fees and expected output for bridging `amount` of `sourceToken` from `sourceChainId` to the account's registered target, before any funds are deposited. The orchestrator quotes against the supplied amount as if the deposit wallet already held it; the result is indicative and may differ from the quote applied once a real deposit lands. EVM source chains only. Scoped to the caller's tenant.

## Headers

- `x-api-key` string — API key for authentication (omit when sending Authorization)
- `authorization` string — Bearer platform token (e.g. forwarded by user-service). Takes precedence over `x-api-key` when both are present.

## Request body

- QuotePreviewRequest
  - `account` string, required — Ethereum address (0x followed by 40 hex characters)
  - `sourceChainId` string, required — CAIP-2 chain identifier (e.g. "eip155:8453")
  - `sourceToken` string, required — Ethereum address (0x followed by 40 hex characters)
  - `amount` string, required — Numeric string representing a bigint value

## Response `200`

Indicative quote for the requested route

- QuotePreviewResponse
  - `settlementLayer` string, required
  - `expiresAt` integer, required
  - `estimatedFillTimeSeconds` integer, required
  - `fees` object, required
    - `total` object, required
      - `usd` number, required
    - `totalUsd` number
    - `breakdown` object, required
      - `gas` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
      - `bridge` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
      - `swap` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
      - `app` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
      - `protocol` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
      - `sponsorSurcharge` PreviewFeeLine, required
        - `usd` number, required
        - `sponsored` boolean, required
        - `label` string
        - `internal` boolean
  - `output` object, required
    - `token` string, required
    - `amount` string, required
    - `symbol` string, nullable, required
    - `decimals` integer, nullable, required

## Other responses

- `400` — Malformed request body or unsupported source chain
- `401` — Missing/invalid API key or expired platform bearer token
- `403` — API key lacks required deposits scope
- `404` — Account not found or not owned by the caller
- `422` — Route cannot be quoted (token/amount not allowed by the client whitelist, unsupported token route, no session for the source chain, or no available routes)

---

[API](https://skmtc.net/rhinestonewtf/apis/deposit-service-api.md) · [All operations](https://skmtc.net/rhinestonewtf/apis/deposit-service-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhinestonewtf/deposit-service-api/versions/ce4e0abfe33a/schema)
