Uniswap SwappableTokens API

The SwappableTokens API from Uniswap — 1 operation(s) for swappabletokens.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

uniswap-swappabletokens-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Token Trading Approval SwappableTokens API
  description: 'Uniswap Labs trading APIs.


    Each operation may include the vendor extension `x-public-endpoint` (boolean): `true` when the operation is available on the public gateway for standard API keys, `false` when it is not publicly exposed. See the [OpenAPI specification extensions](https://swagger.io/docs/specification/v3_0/openapi-extensions/) definition of `x-` fields.'
servers:
- description: Uniswap Trading API
  url: https://trade-api.gateway.uniswap.org/v1
security:
- apiKey: []
tags:
- name: SwappableTokens
paths:
  /swappable_tokens:
    get:
      tags:
      - SwappableTokens
      summary: Get bridgable tokens
      description: Returns the list of destination bridge chains for a given token on a given chain.
      operationId: get_swappable_tokens
      security:
      - apiKey: []
      parameters:
      - $ref: '#/components/parameters/tokenInParam'
      - $ref: '#/components/parameters/bridgeTokenInChainIdParam'
      responses:
        '200':
          $ref: '#/components/responses/GetSwappableTokensSuccess200'
        '400':
          $ref: '#/components/responses/BadRequest400'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/QuoteNotFound404'
        '429':
          $ref: '#/components/responses/RateLimitedErr429'
        '500':
          $ref: '#/components/responses/InternalErr500'
        '504':
          $ref: '#/components/responses/Timeout504'
      x-public-endpoint: true
components:
  schemas:
    GetSwappableTokensResponse:
      type: object
      properties:
        requestId:
          $ref: '#/components/schemas/RequestId'
        tokens:
          type: array
          items:
            type: object
            properties:
              address:
                $ref: '#/components/schemas/Address'
              chainId:
                $ref: '#/components/schemas/ChainId'
              name:
                type: string
                description: The name of the token.
              symbol:
                $ref: '#/components/schemas/tokenSymbol'
              project:
                $ref: '#/components/schemas/TokenProject'
              isSpam:
                $ref: '#/components/schemas/isSpam'
              decimals:
                type: number
                description: The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation.
            required:
            - address
            - chainId
            - name
            - symbol
            - project
            - decimals
      required:
      - requestId
      - tokens
    ChainId:
      description: The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://api-docs.uniswap.org/guides/faqs).
      type: number
      enum:
      - 1
      - 10
      - 56
      - 130
      - 137
      - 143
      - 196
      - 324
      - 480
      - 1868
      - 4217
      - 8453
      - 10143
      - 42161
      - 42220
      - 43114
      - 59144
      - 81457
      - 7777777
      - 1301
      - 84532
      - 11155111
      default: 1
    Err500:
      type: object
      properties:
        errorCode:
          default: InternalServerError
          type: string
        detail:
          type: string
    SafetyLevel:
      type: string
      enum:
      - BLOCKED
      - MEDIUM_WARNING
      - STRONG_WARNING
      - VERIFIED
    RequestId:
      type: string
      description: A unique ID for the request.
    isSpam:
      type: boolean
      description: Whether the token is considered a spam token.
    Err404:
      type: object
      properties:
        errorCode:
          enum:
          - ResourceNotFound
          - QuoteAmountTooLowError
          - TokenBalanceNotAvailable
          - InsufficientBalance
          type: string
        detail:
          type: string
    Address:
      type: string
      pattern: ^(0x)?[0-9a-fA-F]{40}$
    Err504:
      type: object
      properties:
        errorCode:
          default: Timeout
          type: string
        detail:
          type: string
    TokenProject:
      type: object
      properties:
        logo:
          $ref: '#/components/schemas/TokenProjectLogo'
          nullable: true
        safetyLevel:
          $ref: '#/components/schemas/SafetyLevel'
        isSpam:
          $ref: '#/components/schemas/isSpam'
      required:
      - logo
      - safetyLevel
      - isSpam
    tokenSymbol:
      type: string
      description: The symbol of the token.
    Err400:
      type: object
      properties:
        errorCode:
          default: RequestValidationError
          type: string
        detail:
          type: string
    TokenProjectLogo:
      type: object
      properties:
        url:
          type: string
      required:
      - url
    Err401:
      type: object
      properties:
        errorCode:
          default: UnauthorizedError
          type: string
        detail:
          type: string
    Err429:
      type: object
      properties:
        errorCode:
          default: Ratelimited
          type: string
        detail:
          type: string
  parameters:
    tokenInParam:
      name: tokenIn
      in: query
      schema:
        $ref: '#/components/schemas/Address'
      example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
      required: true
    bridgeTokenInChainIdParam:
      name: tokenInChainId
      in: query
      schema:
        $ref: '#/components/schemas/ChainId'
      example: 1
      required: true
  responses:
    RateLimitedErr429:
      description: Ratelimited
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err429'
    QuoteNotFound404:
      description: ResourceNotFound eg. No quotes available or Gas fee/price not available
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err404'
    Unauthorized401:
      description: UnauthorizedError eg. Account is blocked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err401'
    BadRequest400:
      description: RequestValidationError, Bad Input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err400'
    GetSwappableTokensSuccess200:
      description: Get swappable tokens successful.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetSwappableTokensResponse'
          example:
            requestId: cL_1ih66iYcEJ2g=
            tokens:
            - name: USD Coin
              symbol: USDC
              address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85'
              chainId: 10
              project:
                logo:
                  url: https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602
                safetyLevel: VERIFIED
                isSpam: false
              decimals: 6
            - name: Bridged USDC
              symbol: USDC.e
              address: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607'
              chainId: 10
              project:
                logo:
                  url: https://coin-images.coingecko.com/coins/images/31580/large/USDC-icon.png?1696530397
                safetyLevel: VERIFIED
                isSpam: false
              decimals: 6
            - name: USD Coin
              symbol: USDC
              address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
              chainId: 137
              project:
                logo:
                  url: https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602
                safetyLevel: VERIFIED
                isSpam: false
              decimals: 6
    Timeout504:
      description: Request duration limit reached.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err504'
    InternalErr500:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Err500'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key