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

# Transfer route availability

> GET /api/transfers/v1/routes

`GET /api/transfers/v1/routes`

Authenticated live estimates. API access is issued privately; transfer creation and deposits remain disabled. Estimates reserve a 20 bps (0.20%) Route fee from the input; fee collection is not enabled. Route retains existing provider-paid partner commission, included in estimates; the rate is unverified. The legacy routeFeeBps field covers only the direct surcharge; fees provides the full disclosure. Quotes support ETH and USDG on Robinhood; each provider may decline a pair or amount. Omitted assets default to ETH. Funding remains disabled. Route/provider records may link endpoints. No fixed delivery time or anonymity guarantee. Reports per-route launch blockers and supported delay (zero only).

Use a server-side `X-Route-Api-Key`.

[Setup, limits and recovery](/concepts/private-transfer-api) · [Full schemas](/api-reference/openapi)


## OpenAPI

````yaml openapi.json GET /api/transfers/v1/routes
openapi: 3.1.0
info:
  title: route
  version: 2.15.0
  description: >-
    Route compares swap paths offchain and executes swaps on Robinhood Chain.
    The API returns quotes and unsigned transactions. It does not sign or submit
    for you. Route charges no platform fee; pool fees, provider charges and gas
    may still apply. Contracts are experimental and unaudited. The production
    API is public and requires no API key. Use the documented /api/v2 endpoints
    for integrations.
servers:
  - url: https://api.route.fun
    description: Railway-hosted Route API
  - url: https://www.route.fun
    description: Swap website API
security: []
paths:
  /api/transfers/v1/routes:
    get:
      summary: Transfer route availability
      description: >-
        Authenticated live estimates. API access is issued privately; transfer
        creation and deposits remain disabled. Estimates reserve a 20 bps
        (0.20%) Route fee from the input; fee collection is not enabled. Route
        retains existing provider-paid partner commission, included in
        estimates; the rate is unverified. The legacy routeFeeBps field covers
        only the direct surcharge; fees provides the full disclosure. Quotes
        support ETH and USDG on Robinhood; each provider may decline a pair or
        amount. Omitted assets default to ETH. Funding remains disabled.
        Route/provider records may link endpoints. No fixed delivery time or
        anonymity guarantee. Reports per-route launch blockers and supported
        delay (zero only).
      operationId: privateTransferRoutes
      responses:
        '200':
          description: >-
            Transfer result or current state. Floating estimates are not
            guaranteed payouts. Execution availability is false until launch
            evidence and runtime are configured.
          content:
            application/json:
              schema:
                type: object
                properties:
                  routeFeeBps:
                    type: integer
                    const: 20
                    description: >-
                      Reserved direct fee in basis points, charged once on gross
                      input when collection is activated.
                  inputAsset:
                    type: string
                    enum:
                      - ETH:robinhood
                      - USDG:robinhood
                  outputAsset:
                    type: string
                    enum:
                      - ETH:robinhood
                      - USDG:robinhood
                  inputAmount:
                    type: string
                    pattern: ^(0|[1-9][0-9]{0,20})(\.[0-9]{1,18})?$
                  routeFeeAmount:
                    type: string
                    pattern: ^(0|[1-9][0-9]{0,20})(\.[0-9]{1,18})?$
                  providerInputAmount:
                    type: string
                    pattern: ^(0|[1-9][0-9]{0,20})(\.[0-9]{1,18})?$
                  estimatedOutput:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Selected path estimated payout after reserving the Route
                      fee and provider costs. Null when unavailable.
                  status:
                    type: string
                    enum:
                      - quoted
                      - unavailable
                  expiresAt:
                    type: integer
                    description: >-
                      Unix milliseconds when this display estimate needs
                      refreshing. Not a provider funding deadline.
                  liveEnabled:
                    type: boolean
                    const: false
                  fees:
                    $ref: '#/components/schemas/TransferFees'
        '400':
          description: >-
            Invalid request, changed immutable terms, unknown capability or
            failed verification. Retain the same order key after an uncertain
            request.
        '401':
          description: Missing, disabled, expired or invalid API key.
        '403':
          description: Missing scope, browser Origin/cookies or access rejected.
        '404':
          description: Unknown endpoint or unsupported query parameters at gateway.
        '408':
          description: Request body timed out.
        '413':
          description: Request body exceeds 4096 bytes.
        '415':
          description: Use application/json.
        '422':
          description: >-
            PAYOUT_DELAY_UNAVAILABLE: only zero additional payout delay is
            supported.
        '429':
          description: >-
            Durable customer quota or global concurrency limit reached.
            Retry-After is 60 seconds.
        '503':
          description: >-
            Service or live intake unavailable. After an uncertain create
            response retry identical terms with the SAME X-Route-Order-Key;
            never create a replacement.
      security:
        - transferApiKey: []
components:
  schemas:
    TransferFees:
      type: object
      required:
        - directRouteFeeBps
        - partnerCommissionPolicy
        - partnerCommissionIncludedInEstimate
        - partnerCommissionBps
        - partnerCommissionRateVerified
        - disclosure
      properties:
        directRouteFeeBps:
          type: integer
          const: 20
          description: Direct surcharge only; excludes provider-paid Route commission.
        collectionEnabled:
          type: boolean
          const: false
          description: Quotes reserve the fee; collection is not enabled.
        treasury:
          type: string
          const: '0x3b9C7bC09FF64F554480f30Ad40286cFc09d2F80'
        partnerCommissionPolicy:
          type: string
          const: retain-existing-provider-settings
        partnerCommissionIncludedInEstimate:
          type: boolean
          const: true
        partnerCommissionBps:
          type: 'null'
          description: Unknown rate; not zero and not a combined two-leg percentage.
        partnerCommissionRateVerified:
          type: boolean
          const: false
        disclosure:
          type: string
          description: >-
            Route earns partner commission included in the provider estimate.
            Estimates reserve a 20 bps (0.20%) Route fee from the input; fee
            collection is not enabled. Sender gas is additional.
  securitySchemes:
    transferApiKey:
      type: apiKey
      in: header
      name: X-Route-Api-Key
      description: >-
        Customer API key. Server-side only. Separate from provider credentials.
        Issued out of band; scoped, expiring and revocable.

````