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

# Currency Search (Typeahead)

> Token search / typeahead for source and destination pickers. Filtered to chains we can quote against. Cacheable for 5 minutes (Cache-Control: max-age=300). Queries shorter than 2 characters return an empty list.



## OpenAPI

````yaml https://api.coinvoyage.io/v2/openapi.json get /search/currencies
openapi: 3.1.0
info:
  title: CoinVoyage API
  description: Cryptocurrency payment processing API
  version: 2.2.0
servers:
  - url: https://api.coinvoyage.io/v2
security: []
paths:
  /search/currencies:
    get:
      tags:
        - search
      summary: Currency Search (Typeahead)
      description: >-
        Token search / typeahead for source and destination pickers. Filtered to
        chains we can quote against. Cacheable for 5 minutes (Cache-Control:
        max-age=300). Queries shorter than 2 characters return an empty list.
      operationId: currencySearch
      parameters:
        - description: API key for authentication
          in: header
          name: X-API-KEY
          required: true
          schema:
            type: string
        - description: >-
            Search query (symbol, name fragment, or address prefix). Minimum 2
            characters.
          in: query
          name: q
          required: true
          schema:
            minLength: 2
            type: string
        - description: >-
            Comma-separated ChainID filter; intersected with the set of chains
            we can route across.
          in: query
          name: chain_ids
          required: false
          schema:
            type: string
        - description: Maximum results to return (default 20, max 50).
          in: query
          name: limit
          required: false
          schema:
            default: 20
            maximum: 50
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencySearchResponse'
          description: >-
            Ranked currency matches (exact symbol → prefix → name → substring →
            address-prefix). May be empty.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Per-IP rate-limit exceeded
      security:
        - APIKeyHeader: []
components:
  schemas:
    CurrencySearchResponse:
      example:
        currencies:
          - address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
            chain_id: 1
            decimals: 6
            id: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:1
            image_uri: https://...
            name: USD Coin
            price_usd: 1
            symbol: USDC
      properties:
        currencies:
          items:
            $ref: '#/components/schemas/CurrencySearchItem'
          type: array
      required:
        - currencies
      type: object
    ErrorResponse:
      example:
        code: 400
        error: Bad Request
        message: Invalid request parameters
      properties:
        error:
          example: Bad Request
          type: string
        message:
          example: Invalid request parameters
          type: string
        code:
          example: 400
          format: int64
          type: integer
        details:
          anyOf:
            - type: string
            - type: number
            - type: object
      required:
        - error
        - message
        - code
      type: object
    CurrencySearchItem:
      example:
        address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
        chain_id: 1
        decimals: 6
        id: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:1
        image_uri: https://...
        name: USD Coin
        price_usd: 1
        symbol: USDC
      properties:
        id:
          example: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:1
          type: string
        chain_id:
          $ref: '#/components/schemas/ChainID'
          example: 1
        address:
          example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
          type:
            - string
            - 'null'
        symbol:
          example: USDC
          type: string
        name:
          example: USD Coin
          type: string
        decimals:
          example: 6
          format: int64
          type: integer
        image_uri:
          example: https://...
          type:
            - string
            - 'null'
        price_usd:
          example: 1
          type:
            - number
            - 'null'
      required:
        - id
        - chain_id
        - symbol
        - name
        - decimals
      type: object
    ChainID:
      enum:
        - 1
        - 10
        - 56
        - 137
        - 8453
        - 42161
        - 20000000000001
        - 30000000000001
        - 30000000000002
      example: 1
      format: int64
      type: integer
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-KEY
      type: apiKey

````