> ## 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 token prices

> Returns cached token price snapshots for one token or up to 50 requested token entries. Stale prices are returned immediately and marked with `stale` and `refreshing` metadata when a background refresh is scheduled.

Use this endpoint to read cached USD price snapshots for one token or a small batch of tokens.


## OpenAPI

````yaml GET /v1/prices
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/prices:
    get:
      tags:
        - V1
      summary: Get token price snapshots
      description: >-
        Returns cached token price snapshots for one token or up to 50 requested
        token entries. Stale prices are returned immediately and marked with
        `stale` and `refreshing` metadata when a background refresh is
        scheduled.
      operationId: getPrices
      parameters:
        - name: x-api-key
          in: header
          description: Optional API key for higher rate limits and fee rules.
          required: false
          schema:
            type: string
        - name: chainId
          required: false
          in: query
          description: >-
            Chain ID for a single token price lookup. Required with `token` when
            `tokens` is not provided.
          schema:
            example: '8453'
            type: string
        - name: token
          required: false
          in: query
          description: >-
            Token address or symbol for a single token price lookup. Required
            with `chainId` when `tokens` is not provided.
          schema:
            type: string
            example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        - name: tokens
          required: false
          in: query
          description: >-
            Comma-separated batch of `chainId:token` entries. Maximum 50
            requested entries. When provided, `tokens` is used instead of the
            single-token `chainId` and `token` parameters.
          schema:
            example: >-
              8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,1:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
            type: string
      responses:
        '200':
          description: Token price snapshot response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPricesResponseDto'
              examples:
                success:
                  summary: Token price snapshots
                  value:
                    prices:
                      - chainId: 8453
                        token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                        priceUSD: '1.00'
                        source: dexscreener
                        updatedAt: '2026-06-22T12:00:00.000Z'
                        stale: false
                        tier: hot
                        refreshing: false
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorResponseDto'
              examples:
                missingTokenRequest:
                  summary: Missing token request
                  value:
                    statusCode: 400
                    code: VALIDATION_ERROR
                    message: >-
                      Either tokens=chainId:token,... or both chainId and token
                      are required.
                    details:
                      message: >-
                        Either tokens=chainId:token,... or both chainId and
                        token are required.
                    timestamp: '2026-06-22T12:00:00.000Z'
                    path: /v1/prices
                tooManyTokens:
                  summary: Too many token price requests
                  value:
                    statusCode: 400
                    code: VALIDATION_ERROR
                    message: Too many token price requests. Max is 50.
                    details:
                      message: Too many token price requests. Max is 50.
                    timestamp: '2026-06-22T12:00:00.000Z'
                    path: /v1/prices
        '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/prices
components:
  schemas:
    TokenPricesResponseDto:
      type: object
      properties:
        prices:
          type: array
          items:
            $ref: '#/components/schemas/TokenPriceResultDto'
      required:
        - prices
    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
    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

````