> ## Documentation Index
> Fetch the complete documentation index at: https://docs.delora.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a quote for a token transfer

> Returns the best available route for an exact-input transfer or swap, including estimated output, executable calldata, fee breakdown, optional gas data, and non-blocking warnings.

Request an exact-input quote for a same-chain swap or cross-chain transfer. The response includes estimated output amounts, executable `calldata`, fees, and optional non-blocking `warnings`.

## Automatic slippage

Set `slippageMode=auto` to use Delora's route-specific automatic slippage policy. When it is supplied, it takes precedence over a numeric `slippage` value.


## OpenAPI

````yaml GET /v1/quotes
openapi: 3.1.1
info:
  title: Delora API
  description: Delora API
  version: 1.0.0
servers:
  - url: https://api.delora.build
security: []
tags:
  - name: Health
    description: Service health endpoints.
  - name: V1
    description: Routing and metadata endpoints.
  - name: Transaction Tracking
    description: Read-only, integrator-scoped transaction tracking.
paths:
  /v1/quotes:
    get:
      tags:
        - V1
      summary: Get the best executable quote
      description: >-
        Returns the best available route for an exact-input transfer or swap,
        including estimated output, executable calldata, fee breakdown, optional
        gas data, and non-blocking warnings.
      operationId: getQuote
      parameters:
        - name: x-api-key
          in: header
          description: Optional API key for higher rate limits and fee rules.
          required: false
          schema:
            type: string
        - name: senderAddress
          required: true
          in: query
          description: Sender wallet address on the origin chain.
          schema:
            type: string
            example: '0x1111111111111111111111111111111111111111'
        - name: receiverAddress
          required: false
          in: query
          description: >-
            Receiver wallet address. Defaults to `senderAddress` for same
            chain-type routes (`EVM -> EVM` or `SVM -> SVM`) and is required
            when crossing chain types (`EVM -> SVM` or `SVM -> EVM`).
          schema:
            example: '0x2222222222222222222222222222222222222222'
            type: string
        - name: originChainId
          required: true
          in: query
          description: Origin chain ID.
          schema:
            type: number
            example: 8453
        - name: destinationChainId
          required: true
          in: query
          description: Destination chain ID.
          schema:
            type: number
            example: 8453
        - name: amount
          required: true
          in: query
          description: >-
            Exact input amount in token base units as a positive integer string,
            before Delora and integrator fees.
          schema:
            type: string
            example: '1000000'
        - name: originCurrency
          required: true
          in: query
          description: >-
            Origin token address, or native asset marker supported by the
            backend.
          schema:
            type: string
            example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        - name: destinationCurrency
          required: true
          in: query
          description: >-
            Destination token address, or native asset marker supported by the
            backend.
          schema:
            example: '0x4200000000000000000000000000000000000006'
            type: string
        - name: integrator
          required: false
          in: query
          description: >-
            Integrator identifier used for fee attribution. Required when `fee`
            is provided.
          schema:
            example: partner-app
            type: string
        - name: fee
          required: false
          in: query
          description: >-
            Optional integrator fee fraction taken from the input amount. `0.01`
            means 1%. Must be between `0` and `0.1` inclusive and can be
            provided only with `integrator`.
          schema:
            minimum: 0
            maximum: 0.1
            example: 0.01
            type: number
        - name: slippage
          required: false
          in: query
          description: Optional slippage fraction. `0.005` means 0.5%.
          schema:
            minimum: 0
            maximum: 1
            example: 0.005
            type: number
        - name: slippageMode
          required: false
          in: query
          description: >-
            Automatic slippage policy. Set to `auto` to let Delora choose the
            route-specific slippage; when supplied, it takes precedence over
            `slippage`.
          schema:
            enum:
              - auto
            example: auto
            type: string
        - name: includeBridges
          required: false
          in: query
          description: >-
            Comma-separated bridge adapter keys from `/v1/tools` to include, for
            example `RELAY,ACROSS`. Only bridge-capable or multi-capability
            adapters are valid.
          schema:
            example: RELAY,ACROSS
            type: string
        - name: includeExchanges
          required: false
          in: query
          description: >-
            Comma-separated exchange adapter keys from `/v1/tools` to include,
            for example `OPENOCEAN,OKX`. Only exchange-capable or
            multi-capability adapters are valid.
          schema:
            example: OPENOCEAN,OKX
            type: string
        - name: excludeBridges
          required: false
          in: query
          description: >-
            Comma-separated bridge adapter keys from `/v1/tools` to exclude, for
            example `RELAY,ACROSS`. Only bridge-capable or multi-capability
            adapters are valid.
          schema:
            example: RELAY,ACROSS
            type: string
        - name: excludeExchanges
          required: false
          in: query
          description: >-
            Comma-separated exchange adapter keys from `/v1/tools` to exclude,
            for example `OPENOCEAN,OKX`. Only exchange-capable or
            multi-capability adapters are valid.
          schema:
            example: OPENOCEAN,OKX
            type: string
      responses:
        '200':
          description: Best executable quote response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteResponseDto'
              examples:
                success:
                  summary: Executable quote response
                  value:
                    inputAmount: '1000000'
                    outputAmount: '997321'
                    minOutputAmount: '992334'
                    adapter: OPENOCEAN
                    calldata:
                      to: '0x1111111111111111111111111111111111111111'
                      value: '0x0'
                      data: '0xabcdef'
                    fees:
                      total:
                        amount: '2679'
                        currencySymbol: USDC
                        currencyAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                        chainId: 8453
                        decimals: 6
                      breakdown:
                        - type: gas
                          amount: '2679'
                          currencySymbol: USDC
                          currencyAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                          chainId: 8453
                          decimals: 6
                          amountUsd: '0.01'
                      totalUsd: '0.01'
                    gas:
                      gasPrice: '0x3b9aca00'
                      maxFeePerGas: '0x59682f00'
                      maxPriorityFeePerGas: '0x3b9aca00'
                    warnings:
                      - code: SOLANA_INSUFFICIENT_BALANCE
                        message: Solana simulation reported insufficient balance.
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorResponseDto'
              examples:
                validationErrors:
                  summary: Validation errors
                  value:
                    statusCode: 400
                    code: VALIDATION_ERROR
                    message: Invalid request parameters
                    details:
                      message:
                        - senderAddress should not be empty
                        - senderAddress must be a string
                    timestamp: '2026-05-15T16:58:45.603Z'
                    path: /v1/quotes
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorResponseDto'
              examples:
                rateLimitExceeded:
                  summary: Rate limit exceeded
                  value:
                    statusCode: 429
                    code: RATE_LIMIT
                    message: Rate limit exceeded. Please try again later.
                    details:
                      message: Rate limit exceeded. Please try again later.
                    timestamp: '2026-05-15T16:58:45.603Z'
                    path: /v1/quotes
components:
  schemas:
    QuoteResponseDto:
      type: object
      properties:
        inputAmount:
          type: string
          example: '1000000'
        outputAmount:
          type: string
          example: '997321'
        minOutputAmount:
          type: string
          example: '992334'
        estimatedTimeSec:
          type: number
          example: 120
          description: >-
            Estimated bridge completion time in seconds. Returned only for
            bridge routes.
        adapter:
          enum:
            - ACROSS
            - RELAY
            - GASZIP
            - OPENOCEAN
            - JUPITER
            - SYMBIOSIS
            - MAYAN
            - MAYAN_WORMHOLE
            - MAYAN_SWIFT
            - MAYAN_MCTP
            - MAYAN_FAST_MCTP
            - OKX
            - RISE
            - NORDSTERN
            - KYBERSWAP
            - DFLOW
            - NEAR_INTENTS
          type: string
          example: OPENOCEAN
        calldata:
          $ref: '#/components/schemas/QuoteCalldataDto'
        fees:
          $ref: '#/components/schemas/ParsedFeesDto'
        gas:
          $ref: '#/components/schemas/GasEstimationDto'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/QuoteWarningDto'
        approvalAddress:
          type: string
          example: '0x1111111111111111111111111111111111111111'
          description: Approval spender address for EVM-origin routes.
        transactionSize:
          type: object
          properties:
            raw:
              type: number
              example: 812
            encoded:
              type: number
              example: 1084
          description: Serialized Solana transaction size when available.
        bridgeScan:
          $ref: '#/components/schemas/BridgeScanMetadataDto'
          description: >-
            Bridge tracking metadata returned when the selected bridge adapter
            provides it.
        simulation:
          $ref: '#/components/schemas/SimulationDto'
          description: >-
            Best-effort transaction simulation metadata returned when simulation
            is enabled for the selected route.
        usd:
          $ref: '#/components/schemas/QuoteUsdPricesDto'
          description: >-
            Cached USD price snapshots for the origin and destination quote
            tokens.
      required:
        - inputAmount
        - outputAmount
        - adapter
        - calldata
        - fees
    StandardErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        code:
          enum:
            - NO_AVAILABLE_QUOTES
            - AMOUNT_TOO_LOW
            - WRONG_ADDRESS
            - RATE_LIMIT
            - SLIPPAGE_EXCEEDED
            - ADAPTER_BAD_REQUEST
            - ADAPTER_UNAUTHORIZED
            - ADAPTER_INTERNAL
            - VALIDATION_ERROR
            - NOT_FOUND
            - UNKNOWN
          type: string
          description: >-
            Machine-readable Delora error code.

            - NO_AVAILABLE_QUOTES: No bridge or exchange adapter returned an
            executable quote for the requested transfer.

            - AMOUNT_TOO_LOW: The requested input amount is below the minimum
            supported by the available bridge route.

            - WRONG_ADDRESS: A wallet address is missing, malformed, or
            incompatible with the requested chain type.

            - RATE_LIMIT: The request exceeded the configured rate limit.

            - SLIPPAGE_EXCEEDED: The expected output amount fell below the
            route's permitted minimum.

            - ADAPTER_BAD_REQUEST: An upstream bridge or exchange adapter
            rejected the request as invalid.

            - ADAPTER_UNAUTHORIZED: An upstream bridge or exchange adapter
            rejected the request because credentials are missing or invalid.

            - ADAPTER_INTERNAL: An upstream bridge or exchange adapter failed
            with an internal error.

            - VALIDATION_ERROR: The request failed Delora API validation,
            including invalid query parameters, body fields, or address formats.

            - NOT_FOUND: The requested chain, token, or resource was not found.

            - UNKNOWN: The request failed with an unexpected error that does not
            map to a more specific code.
          x-enumDescriptions:
            - >-
              No bridge or exchange adapter returned an executable quote for the
              requested transfer.
            - >-
              The requested input amount is below the minimum supported by the
              available bridge route.
            - >-
              A wallet address is missing, malformed, or incompatible with the
              requested chain type.
            - The request exceeded the configured rate limit.
            - >-
              The expected output amount fell below the route's permitted
              minimum.
            - >-
              An upstream bridge or exchange adapter rejected the request as
              invalid.
            - >-
              An upstream bridge or exchange adapter rejected the request
              because credentials are missing or invalid.
            - >-
              An upstream bridge or exchange adapter failed with an internal
              error.
            - >-
              The request failed Delora API validation, including invalid query
              parameters, body fields, or address formats.
            - The requested chain, token, or resource was not found.
            - >-
              The request failed with an unexpected error that does not map to a
              more specific code.
          example: VALIDATION_ERROR
        message:
          type: string
          example: Invalid request parameters
        details:
          description: >-
            Optional error details. When details is an object, `message` can be
            either a string or an array of strings.
          oneOf:
            - type: object
              additionalProperties: true
              properties:
                message:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: >-
                    Human-readable details. Validation errors may return
                    multiple messages.
                errorCode:
                  type: string
                code:
                  oneOf:
                    - type: string
                    - type: number
                status:
                  oneOf:
                    - type: string
                    - type: number
            - type: string
            - type: array
              items:
                type: string
          example:
            message:
              - One or more request parameters are invalid.
        timestamp:
          type: string
          example: '2026-05-13T18:00:00.000Z'
        path:
          type: string
          example: /v1/...
      required:
        - statusCode
        - code
        - message
        - timestamp
    QuoteCalldataDto:
      type: object
      properties:
        to:
          type: string
          example: '0x1111111111111111111111111111111111111111'
        value:
          type: string
          example: '0x0'
        data:
          type: string
          example: '0xabcdef'
      required:
        - to
        - value
        - data
    ParsedFeesDto:
      type: object
      properties:
        total:
          $ref: '#/components/schemas/ParsedFeesTotalCurrencyDto'
        breakdown:
          type: array
          items:
            $ref: '#/components/schemas/ParsedFeesBreakdownItemDto'
        totalUsd:
          type: string
          example: '0.01'
      required:
        - total
        - breakdown
    GasEstimationDto:
      type: object
      properties:
        gasPrice:
          type: string
          example: '0x3b9aca00'
        maxFeePerGas:
          type: string
          example: '0x59682f00'
        maxPriorityFeePerGas:
          type: string
          example: '0x3b9aca00'
    QuoteWarningDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INTEGRATOR_SOLANA_WALLET_NOT_ACTIVATED_FEE_SKIPPED
            - INTEGRATOR_WALLET_NOT_CONFIGURED_FEE_SKIPPED
            - SOLANA_SYSTEM_ACCOUNT_SKIPPED
            - SOLANA_INSUFFICIENT_BALANCE
            - SOLANA_SIMULATION_FAILED
          example: SOLANA_INSUFFICIENT_BALANCE
        message:
          type: string
          example: Solana simulation reported insufficient balance.
      required:
        - code
        - message
    BridgeScanMetadataDto:
      type: object
      additionalProperties: true
    SimulationDto:
      type: object
      properties:
        source:
          type: string
          enum:
            - TENDERLY
            - RPC
            - SOLANA_RUNTIME
            - NONE
          example: TENDERLY
        executionStatus:
          type: string
          enum:
            - SUCCESS
            - REVERTED
            - TIMEOUT
            - SKIPPED
            - UNSUPPORTED
            - ERROR
          example: SUCCESS
        outputValidation:
          type: string
          enum:
            - VERIFIED
            - UNVERIFIABLE
            - NOT_SIMULATED
          example: VERIFIED
        simulatedOutputAmount:
          type: string
          example: '996100'
        advertisedOutputAmount:
          type: string
          example: '997321'
        deviation:
          $ref: '#/components/schemas/SimulationDeviationDto'
        gasUsed:
          type: string
          example: '142331'
        reason:
          type: string
          example: Simulation exceeded budget
        latencyMs:
          type: number
          example: 712
        providerResults:
          type: array
          items:
            $ref: '#/components/schemas/SimulationProviderResultDto'
      required:
        - source
        - executionStatus
        - outputValidation
        - advertisedOutputAmount
        - latencyMs
        - providerResults
    QuoteUsdPricesDto:
      type: object
      properties:
        originCurrency:
          $ref: '#/components/schemas/TokenPriceResultDto'
        destinationCurrency:
          $ref: '#/components/schemas/TokenPriceResultDto'
      required:
        - originCurrency
        - destinationCurrency
    ParsedFeesTotalCurrencyDto:
      type: object
      properties:
        amount:
          type: string
          example: '2679'
        currencySymbol:
          type: string
          example: USDC
        currencyAddress:
          type: string
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        chainId:
          type: number
          example: 8453
        decimals:
          type: number
          example: 6
      required:
        - amount
        - currencySymbol
        - currencyAddress
        - chainId
    ParsedFeesBreakdownItemDto:
      type: object
      properties:
        amount:
          type: string
          example: '2679'
        currencySymbol:
          type: string
          example: USDC
        currencyAddress:
          type: string
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        chainId:
          type: number
          example: 8453
        decimals:
          type: number
          example: 6
        type:
          type: string
          enum:
            - gas
            - relayer
            - relayerGas
            - relayerService
            - capital
            - lp
            - app
            - total
          example: gas
        amountUsd:
          type: string
          example: '0.01'
      required:
        - amount
        - currencySymbol
        - currencyAddress
        - chainId
        - type
    SimulationDeviationDto:
      type: object
      properties:
        absolute:
          type: string
          example: '-1200'
          description: Simulated output minus advertised output in raw units.
        bps:
          type: number
          example: -12
          description: Signed basis points. Negative means the adapter overstated output.
        percent:
          type: string
          example: '-0.12%'
      required:
        - absolute
        - bps
        - percent
    SimulationProviderResultDto:
      type: object
      properties:
        source:
          type: string
          enum:
            - TENDERLY
            - RPC
            - SOLANA_RUNTIME
            - NONE
          example: TENDERLY
        executionStatus:
          type: string
          enum:
            - SUCCESS
            - REVERTED
            - TIMEOUT
            - SKIPPED
            - UNSUPPORTED
            - ERROR
          example: SUCCESS
        outputValidation:
          type: string
          enum:
            - VERIFIED
            - UNVERIFIABLE
            - NOT_SIMULATED
          example: VERIFIED
        simulatedOutputAmount:
          type: string
          example: '996100'
        deviation:
          $ref: '#/components/schemas/SimulationDeviationDto'
        gasUsed:
          type: string
          example: '142331'
        reason:
          type: string
          example: Exceeded 700ms
        latencyMs:
          type: number
          example: 312
      required:
        - source
        - executionStatus
        - outputValidation
        - latencyMs
    TokenPriceResultDto:
      type: object
      properties:
        chainId:
          type: number
          example: 8453
        token:
          type: string
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        priceUSD:
          type: string
          example: '1.00'
          description: Cached USD price as a decimal string, when available.
        source:
          type: string
          example: dexscreener
          description: Price source used for this cached value, when available.
        updatedAt:
          type: string
          example: '2026-06-22T12:00:00.000Z'
          description: Timestamp of the cached token price, when available.
        stale:
          type: boolean
          example: false
          description: Whether this cached value is outside Delora's freshness window.
        tier:
          type: string
          enum:
            - hot
            - cold
          example: hot
          description: >-
            Price refresh tier. `hot` entries are prioritized for fresher cached
            prices; `cold` entries refresh less aggressively.
        refreshing:
          type: boolean
          example: false
          description: >-
            Whether a background refresh for this price is scheduled or already
            running.
      required:
        - chainId
        - token
        - stale
        - tier
        - refreshing

````