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

# Get Pool

> Pool-level detail for an indexed Uniswap V3 or Aerodrome Slipstream pool. `protocol` is `uniswapV3` or `aerodrome`. Prices follow `orientation`: `token1_per_token0` (the default, token1 per token0) or `token0_per_token1`. `base` and `quote` say which token is which side of `1 base = price quote`. A 24h change under the inverted quote is `1 / (1 + r) - 1`, not `-r`.

`recentSwaps`, `history`, and `ticks` are omitted unless `include` lists them. Each `history` day includes `volumeTvl`, volume divided by that day's TVL. `avgDailyVolumeUsd`, `feeTierPct`, and `range7d` are always returned. `avgDailyVolumeUsd` is null when `swapsIndexed` is false. A window is null when no snapshot day falls in it; otherwise it is the mean of the days present, so a gap is not counted as zero volume.

Orca pools are not on this route.

**Credits:** 10 per successful call.



## OpenAPI

````yaml /openapi.yaml get /v1/pools/{chain_id}/{pool_address}
openapi: 3.1.0
info:
  title: DeFi Orbit API
  version: 1.0.0
  description: >-
    Public REST API for DeFi Orbit positions, pools, lending, portfolio, and
    usage.
servers:
  - url: https://api.defiorbit.xyz
security:
  - bearerAuth: []
tags:
  - name: Pools
  - name: Portfolio
  - name: Snapshots
  - name: Uniswap V3
  - name: Aerodrome V3
  - name: Orca
  - name: Aave V3
  - name: Morpho
  - name: Kamino
  - name: Usage
paths:
  /v1/pools/{chain_id}/{pool_address}:
    get:
      tags:
        - Pools
      summary: Get Pool
      description: >-
        Pool-level detail for an indexed Uniswap V3 or Aerodrome Slipstream
        pool. `protocol` is `uniswapV3` or `aerodrome`. Prices follow
        `orientation`: `token1_per_token0` (the default, token1 per token0) or
        `token0_per_token1`. `base` and `quote` say which token is which side of
        `1 base = price quote`. A 24h change under the inverted quote is `1 / (1
        + r) - 1`, not `-r`.


        `recentSwaps`, `history`, and `ticks` are omitted unless `include` lists
        them. Each `history` day includes `volumeTvl`, volume divided by that
        day's TVL. `avgDailyVolumeUsd`, `feeTierPct`, and `range7d` are always
        returned. `avgDailyVolumeUsd` is null when `swapsIndexed` is false. A
        window is null when no snapshot day falls in it; otherwise it is the
        mean of the days present, so a gap is not counted as zero volume.


        Orca pools are not on this route.


        **Credits:** 10 per successful call.
      operationId: get_v1_pools_chain_id_pool_address
      parameters:
        - name: chain_id
          in: path
          required: true
          schema:
            type: integer
            description: >-
              Chain ID with an indexed Uniswap V3 or Aerodrome position manager.
              Uniswap V3: 1, 10, 56, 130, 137, 143, 4663, 8453, 42161, 43114.
              Aerodrome: 8453.
            example: 1
            x-default: 1
        - name: pool_address
          in: path
          required: true
          schema:
            type: string
            description: Pool contract address, 0x plus 40 hex characters.
            example: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'
            x-default: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'
        - name: orientation
          in: query
          required: false
          schema:
            type: string
            enum:
              - token1_per_token0
              - token0_per_token1
            description: 'Which way prices are quoted. Default: token1 per token0.'
            default: token1_per_token0
        - name: include
          in: query
          required: false
          schema:
            type: string
            description: >-
              Comma-separated list of `recentSwaps`, `history`, and `ticks`.
              Omit to leave those arrays out.
            example: history
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/RequestId'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/DexPool'
                    required:
                      - data
              example:
                data:
                  chainId: 1
                  address: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'
                  protocol: uniswapV3
                  managerAddress: '0xc36442b4a4522e871399cd717abdd847ab11fe88'
                  feeTier: 500
                  feeTierPct: 0.05
                  orientation: token1_per_token0
                  base: token0
                  quote: token1
                  chainName: Ethereum
                  chainLogoUrl: https://assets.defiorbit.xyz/chain-logos/ethereum.png
                  protocolName: Uniswap
                  protocolLogoUrl: https://assets.defiorbit.xyz/protocol-logos/uniswap.png
                  explorerUrl: >-
                    https://app.uniswap.org/explore/pools/ethereum/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640
                  tickSpacing: 10
                  createdAt: 1620159183
                  token0:
                    address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                    symbol: USDC
                    name: USD Coin
                    decimals: 6
                    logoUrl: null
                    priceUsd: 1
                  token1:
                    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
                    symbol: WETH
                    name: Wrapped Ether
                    decimals: 18
                    logoUrl: null
                    priceUsd: 3200
                  currentTick: 200000
                  indexedAt: 1761000000
                  historyEnd: 1760918400
                  price:
                    current: 0.0003125
                    change24hPct: 1.2
                    low7d: 0.00030303
                    high7d: 0.00032258
                  range7d:
                    low: 0.00030303
                    high: 0.00032258
                    current: 0.0003125
                  avgDailyVolumeUsd:
                    d7: 1200000
                    d14: 980000
                    d30: 870000
                  liquidityUsd: 150000000
                  liquidityInRangeUsd: 42000000
                  positions:
                    total: 12000
                    active: 3400
                    inRange: 900
                    lpAddresses: 8000
                    lpAddressesInRange: 700
                  fees7dUsd: 420000
                  aprPct: 18.4
                  swapsIndexed: true
                  history:
                    - day: '2025-10-19'
                      timestamp: 1760918400
                      activePositions: 3400
                      positionsInRange: 900
                      tvlUsd: 150000000
                      volumeUsd: 1200000
                      volume0: 600000
                      volume1: 187.5
                      feesUsd: 600
                      fees0: 300
                      fees1: 0.09
                      price: 0.0003125
                      volumeTvl: 0.008
                  mints7d:
                    count: 40
                    volumeUsd: 1200000
                    lower: 0.00029412
                    upper: 0.00033333
                    lowerTick: 199000
                    upperTick: 201000
                  updatedAt: 1761000000000
                request_id: req_...
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    RequestId:
      type: object
      required:
        - request_id
      properties:
        request_id:
          type: string
          description: Id to quote when you contact support.
    DexPool:
      type: object
      required:
        - chainId
        - address
        - protocol
        - managerAddress
        - feeTier
        - feeTierPct
        - orientation
        - base
        - quote
        - tickSpacing
        - createdAt
        - token0
        - token1
        - currentTick
        - indexedAt
        - historyEnd
        - price
        - range7d
        - avgDailyVolumeUsd
        - liquidityUsd
        - liquidityInRangeUsd
        - positions
        - fees7dUsd
        - aprPct
        - swapsIndexed
        - chainName
        - chainLogoUrl
        - protocolName
        - protocolLogoUrl
        - explorerUrl
        - mints7d
        - updatedAt
      properties:
        chainId:
          type: integer
        address:
          type: string
          description: Lowercased pool address.
        protocol:
          type: string
          enum:
            - uniswapV3
            - aerodrome
        managerAddress:
          type: string
          nullable: true
        feeTier:
          type: integer
          description: Hundredths of a bip. 500 is 0.05%.
        feeTierPct:
          type: number
          description: Fee tier as a percent. 500 is 0.05.
        orientation:
          type: string
          enum:
            - token1_per_token0
            - token0_per_token1
          description: >-
            How `price`, `range7d`, and included history and tick prices are
            quoted.
        base:
          type: string
          enum:
            - token0
            - token1
          description: The token on the left of 1 base = price quote.
        quote:
          type: string
          enum:
            - token0
            - token1
        tickSpacing:
          type: integer
        createdAt:
          type: integer
          description: Unix seconds.
        token0:
          $ref: '#/components/schemas/DexPoolToken'
        token1:
          $ref: '#/components/schemas/DexPoolToken'
        currentTick:
          type: integer
        indexedAt:
          type: integer
          description: Unix seconds of the chain's indexed head.
        historyEnd:
          type: integer
          description: Unix seconds, 00:00 UTC, where daily windows end.
        price:
          type: object
          description: Quoted in the requested orientation.
          required:
            - current
            - change24hPct
            - low7d
            - high7d
          properties:
            current:
              type: number
            change24hPct:
              type: number
              nullable: true
            low7d:
              type: number
              nullable: true
            high7d:
              type: number
              nullable: true
        range7d:
          type: object
          nullable: true
          description: >-
            7-day low, high, and current price in the requested orientation.
            Null without daily closes.
          required:
            - low
            - high
            - current
          properties:
            low:
              type: number
            high:
              type: number
            current:
              type: number
        avgDailyVolumeUsd:
          type: object
          nullable: true
          description: >-
            Mean daily volume over the last 7, 14, and 30 closed UTC days, or
            the pool's life when it is younger. Null when swaps are not indexed.
            A window is null when it contains no snapshot days; the mean divides
            by the days present.
          required:
            - d7
            - d14
            - d30
          properties:
            d7:
              type: number
              nullable: true
            d14:
              type: number
              nullable: true
            d30:
              type: number
              nullable: true
        liquidityUsd:
          type: number
        liquidityInRangeUsd:
          type: number
          nullable: true
        positions:
          type: object
          nullable: true
          description: Null when the position scan exceeds the indexer statement timeout.
          required:
            - total
            - active
            - inRange
            - lpAddresses
            - lpAddressesInRange
          properties:
            total:
              type: integer
            active:
              type: integer
            inRange:
              type: integer
            lpAddresses:
              type: integer
            lpAddressesInRange:
              type: integer
        fees7dUsd:
          type: number
        aprPct:
          type: number
          nullable: true
        swapsIndexed:
          type: boolean
        recentSwaps:
          type: array
          description: >-
            Present only when `include` lists `recentSwaps`. Newest first, at
            most 50.
          items:
            $ref: '#/components/schemas/DexPoolSwap'
        history:
          type: array
          description: >-
            Present only when `include` lists `history`. Oldest first, at most
            the 90 closed days before the head. Day prices follow `orientation`.
            Each day includes `volumeTvl`.
          items:
            $ref: '#/components/schemas/DexPoolDay'
        ticks:
          type: array
          description: >-
            Present only when `include` lists `ticks`. Ascending by displayed
            price. Prices follow `orientation`.
          items:
            $ref: '#/components/schemas/DexPoolTick'
        mints7d:
          type: object
          nullable: true
          description: >-
            Median mint range over 7 days. `lower` and `upper` follow
            `orientation`. Tick bounds stay raw.
          required:
            - count
            - volumeUsd
            - lower
            - upper
            - lowerTick
            - upperTick
          properties:
            count:
              type: integer
            volumeUsd:
              type: number
            lower:
              type: number
              nullable: true
            upper:
              type: number
              nullable: true
            lowerTick:
              type: integer
              nullable: true
            upperTick:
              type: integer
              nullable: true
        updatedAt:
          type: integer
          description: Unix milliseconds the indexer was read.
        chainName:
          type: string
        chainLogoUrl:
          type: string
        protocolName:
          type: string
        protocolLogoUrl:
          type: string
        explorerUrl:
          type: string
          description: Uniswap or Aerodrome page for this pool.
    DexPoolToken:
      type: object
      required:
        - address
        - symbol
        - name
        - decimals
        - logoUrl
        - priceUsd
      properties:
        address:
          type: string
        symbol:
          type: string
        name:
          type: string
        decimals:
          type: integer
        logoUrl:
          type: string
          nullable: true
        priceUsd:
          type: number
          description: USD price from the indexer. 0 when unknown.
    DexPoolSwap:
      type: object
      required:
        - timestamp
        - blockNumber
        - logIndex
        - txHash
        - zeroForOne
        - amountIn
        - amountOut
        - fee
        - volumeUsd
        - sender
        - recipient
        - priceImpact
      properties:
        timestamp:
          type: integer
          description: Unix seconds.
        blockNumber:
          type: integer
        logIndex:
          type: integer
        txHash:
          type: string
        zeroForOne:
          type: boolean
          description: True when token0 is sold into the pool.
        amountIn:
          type: number
        amountOut:
          type: number
        fee:
          type: number
          description: Fee in the token in.
        volumeUsd:
          type: number
        sender:
          type: string
        recipient:
          type: string
        priceImpact:
          type: number
          nullable: true
    DexPoolDay:
      type: object
      required:
        - day
        - timestamp
        - activePositions
        - positionsInRange
        - tvlUsd
        - volumeUsd
        - volumeTvl
        - volume0
        - volume1
        - feesUsd
        - fees0
        - fees1
        - price
      properties:
        day:
          type: string
          description: UTC day, YYYY-MM-DD.
        timestamp:
          type: integer
          description: Unix seconds at the end of the day.
        activePositions:
          type: integer
        positionsInRange:
          type: integer
        tvlUsd:
          type: number
        volumeUsd:
          type: number
          description: 0 when swaps are not indexed.
        volumeTvl:
          type: number
          description: volumeUsd divided by tvlUsd. 0 when TVL is 0.
        volume0:
          type: number
        volume1:
          type: number
        feesUsd:
          type: number
        fees0:
          type: number
        fees1:
          type: number
        price:
          type: number
          description: Pool price at the day's last block.
    DexPoolTick:
      type: object
      required:
        - tickLower
        - tickUpper
        - price
        - liquidityUsd
        - amount0
        - amount1
      properties:
        tickLower:
          type: integer
        tickUpper:
          type: integer
        price:
          type: number
          description: Price at tickLower.
        liquidityUsd:
          type: number
        amount0:
          type: number
        amount1:
          type: number
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
            message:
              type: string
            request_id:
              type: string
  responses:
    BadRequest:
      description: Missing or invalid parameter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_PARAMETER
              message: page must be a positive integer.
              request_id: req_...
    Unauthorized:
      description: Missing, malformed, invalid, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_API_KEY
              message: Missing API key.
              request_id: req_...
    PaymentRequired:
      description: The organization does not have enough credits.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INSUFFICIENT_CREDITS
              message: Insufficient API credits.
              request_id: req_...
    Forbidden:
      description: The organization is suspended, or the endpoint or feature is disabled.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: ACCOUNT_SUSPENDED
              message: This organization is suspended.
              request_id: req_...
    NotFound:
      description: The pool is not indexed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Pool not found
              request_id: req_...
    TooManyRequests:
      description: The organization exceeded its requests-per-second limit.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        X-RateLimit-Limit:
          description: Requests per second for the organization.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left in the current window.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: Unix time when the window resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RATE_LIMIT_EXCEEDED
              message: Rate limit exceeded. Please try again later.
              request_id: req_...
    InternalError:
      description: Unexpected server error, or pricing is not configured.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_ERROR
              message: An unexpected error occurred.
              request_id: req_...
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Paste your API key from the
        [dashboard](https://platform.defiorbit.xyz/dashboard/keys). The key
        starts with `do_sk_`.
      x-default: YOUR_API_KEY

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.