> ## 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.

# Discover advanced routes

> Returns ranked route plans with explicit steps. These routes are estimates; call `/v1/advanced/stepTransaction` for each selected step to get live executable transaction data.

Use this endpoint when your integration needs route-level control instead of a single packaged transaction from `/v1/quotes`.


## OpenAPI

````yaml POST /v1/advanced/routes
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: ''
  - name: V1
    description: ''
paths:
  /v1/advanced/routes:
    post:
      tags:
        - Advanced
      summary: Discover advanced route plans
      description: >-
        Returns ranked route plans with explicit steps. These routes are
        estimates; call `/v1/advanced/stepTransaction` for each selected step to
        get live executable transaction data.
      operationId: getAdvancedRoutes
      parameters:
        - name: x-api-key
          in: header
          description: Optional API key for higher rate limits and fee rules.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdvancedRoutesRequestDto'
            examples:
              routeDiscovery:
                summary: Discover advanced routes
                value:
                  senderAddress: '0x1111111111111111111111111111111111111111'
                  receiverAddress: '0x2222222222222222222222222222222222222222'
                  originChainId: 8453
                  destinationChainId: 42161
                  amount: '1000000'
                  originCurrency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                  destinationCurrency: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
                  includeBridges: RELAY
                  maxRoutes: 2
      responses:
        '200':
          description: Ranked advanced route plans.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedRoutesResponseDto'
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorResponseDto'
        '422':
          description: No advanced route could be built for the requested transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorResponseDto'
        '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/advanced/routes
components:
  schemas:
    AdvancedRoutesRequestDto:
      type: object
      properties:
        senderAddress:
          type: string
          example: '0x1111111111111111111111111111111111111111'
          description: Sender wallet address on the origin chain.
        receiverAddress:
          type: string
          example: '0x2222222222222222222222222222222222222222'
          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`).
        originChainId:
          type: number
          example: 8453
          description: Origin chain ID.
        destinationChainId:
          type: number
          example: 42161
          description: Destination chain ID.
        amount:
          type: string
          example: '1000000'
          description: >-
            Exact input amount in token base units as a positive integer string,
            before Delora and integrator fees.
        originCurrency:
          type: string
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          description: >-
            Origin token address, or native asset marker supported by the
            backend.
        destinationCurrency:
          type: string
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
          description: >-
            Destination token address, or native asset marker supported by the
            backend.
        integrator:
          type: string
          example: partner-app
          description: >-
            Integrator identifier used for fee attribution. Required when `fee`
            is provided.
        fee:
          type: number
          minimum: 0
          maximum: 0.1
          example: 0.01
          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`.
        slippage:
          type: number
          minimum: 0
          maximum: 1
          example: 0.005
          description: Optional slippage fraction. `0.005` means 0.5%.
        includeBridges:
          type: string
          description: >-
            Comma-separated bridge adapter keys from `/v1/tools` to include.
            Only bridge-capable or multi-capability adapters are valid.
          example: RELAY,ACROSS
        includeExchanges:
          type: string
          description: >-
            Comma-separated exchange adapter keys from `/v1/tools` to include.
            Only exchange-capable or multi-capability adapters are valid.
          example: OPENOCEAN,OKX
        excludeBridges:
          type: string
          description: >-
            Comma-separated bridge adapter keys from `/v1/tools` to exclude.
            Only bridge-capable or multi-capability adapters are valid.
          example: MAYAN_FAST_MCTP
        excludeExchanges:
          type: string
          description: >-
            Comma-separated exchange adapter keys from `/v1/tools` to exclude.
            Only exchange-capable or multi-capability adapters are valid.
          example: OKX
        maxRoutes:
          type: number
          minimum: 1
          example: 2
          description: Maximum number of ranked advanced routes to return.
      required:
        - senderAddress
        - originChainId
        - destinationChainId
        - amount
        - originCurrency
        - destinationCurrency
    AdvancedRoutesResponseDto:
      type: object
      properties:
        routes:
          type: array
          description: Ranked route plans. Each route contains one or more estimated steps.
          items:
            $ref: '#/components/schemas/AdvancedRouteDto'
      required:
        - routes
    StandardErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        code:
          enum:
            - NO_AVAILABLE_QUOTES
            - WRONG_ADDRESS
            - RATE_LIMIT
            - 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.

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

            - RATE_LIMIT: The request exceeded the configured rate limit for the
            IP address or API key.

            - 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.
            - >-
              A wallet address is missing, malformed, or incompatible with the
              requested chain type.
            - >-
              The request exceeded the configured rate limit for the IP address
              or API key.
            - >-
              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
    AdvancedRouteDto:
      type: object
      properties:
        id:
          type: string
        routeKind:
          type: string
          enum:
            - single-step
            - multistep
        inputAmount:
          type: string
        outputAmount:
          type: string
        minOutputAmount:
          type: string
        estimatedTimeSec:
          type: number
        fees:
          $ref: '#/components/schemas/ParsedFeesDto'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/QuoteWarningDto'
        adapter:
          type: string
          example: RELAY
        isMultistep:
          type: boolean
        steps:
          type: array
          description: >-
            Ordered route steps. Pass the selected step to `POST
            /v1/advanced/stepTransaction` immediately before signing.
          items:
            $ref: '#/components/schemas/AdvancedRouteStepDto'
        simulation:
          $ref: '#/components/schemas/SimulationDto'
      required:
        - id
        - routeKind
        - inputAmount
        - outputAmount
        - minOutputAmount
        - fees
        - adapter
        - isMultistep
        - steps
    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
    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
    AdvancedRouteStepDto:
      type: object
      properties:
        id:
          type: string
        routeId:
          type: string
        type:
          type: string
          enum:
            - swap
            - bridge
        tool:
          type: string
          example: RELAY
        action:
          $ref: '#/components/schemas/AdvancedStepActionDto'
        estimate:
          $ref: '#/components/schemas/AdvancedStepEstimateDto'
          description: >-
            Estimated result for this route step. Treat it as planning data;
            call `POST /v1/advanced/stepTransaction` before execution.
        integrator:
          type: string
        fee:
          type: number
        execution:
          $ref: '#/components/schemas/AdvancedStepExecutionOptionsDto'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/QuoteWarningDto'
        bridgeScan:
          $ref: '#/components/schemas/BridgeScanMetadataDto'
          description: >-
            Bridge tracking metadata returned when the selected bridge adapter
            provides it.
        transactionRequest:
          $ref: '#/components/schemas/AdvancedTransactionRequestDto'
          description: >-
            Executable transaction payload returned on a populated step from
            `POST /v1/advanced/stepTransaction`.
      required:
        - id
        - routeId
        - type
        - tool
        - action
        - estimate
        - execution
    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
    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
    AdvancedStepActionDto:
      type: object
      properties:
        fromChainId:
          type: number
        toChainId:
          type: number
        fromToken:
          $ref: '#/components/schemas/AdvancedTokenRefDto'
        toToken:
          $ref: '#/components/schemas/AdvancedTokenRefDto'
        fromAmount:
          type: string
        slippage:
          type: number
        fromAddress:
          type: string
        toAddress:
          type: string
      required:
        - fromChainId
        - toChainId
        - fromToken
        - toToken
        - fromAmount
    AdvancedStepEstimateDto:
      type: object
      properties:
        fromAmount:
          type: string
        quoteFromAmount:
          type: string
        toAmount:
          type: string
        toAmountMin:
          type: string
        estimatedTimeSec:
          type: number
        fees:
          $ref: '#/components/schemas/ParsedFeesDto'
        approvalAddress:
          type: string
        simulatedToAmount:
          type: string
        simulation:
          $ref: '#/components/schemas/SimulationDto'
      required:
        - fromAmount
        - toAmount
        - toAmountMin
        - fees
    AdvancedStepExecutionOptionsDto:
      type: object
      properties:
        applyFee:
          type: boolean
        requiresPreviousStepAmount:
          type: boolean
        quoteRequest:
          type: object
          additionalProperties: true
        routeRequest:
          type: object
          additionalProperties: true
      required:
        - applyFee
    BridgeScanMetadataDto:
      type: object
      additionalProperties: true
    AdvancedTransactionRequestDto:
      type: object
      properties:
        to:
          type: string
        data:
          type: string
        value:
          type: string
        gas:
          $ref: '#/components/schemas/GasEstimationDto'
        transactionSize:
          type: object
          properties:
            raw:
              type: number
            encoded:
              type: number
      required:
        - to
        - value
    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
    AdvancedTokenRefDto:
      type: object
      properties:
        address:
          type: string
        symbol:
          type: string
        decimals:
          type: number
        chainId:
          type: number
      required:
        - address
        - symbol
        - decimals
        - chainId
    GasEstimationDto:
      type: object
      properties:
        gasPrice:
          type: string
          example: '0x3b9aca00'
        maxFeePerGas:
          type: string
          example: '0x59682f00'
        maxPriorityFeePerGas:
          type: string
          example: '0x3b9aca00'

````