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

# Get Full Position Detail

> Everything: state, full event history, PnL, impermanent loss, fee accrual, and APR — the "give me all of it" endpoint. The heaviest-weight endpoint in the catalog — reach for `pnl`, `yield`, or `snapshot` if you don't need the whole payload.

**Credits:** 15 per successful call.

These queries have their own credit cost.

| Query | Credits |
| --- | --- |
| `status=inactive` | 7 |



## OpenAPI

````yaml /openapi.yaml get /v1/positions/uniswapv3/{id}/full
openapi: 3.1.0
info:
  title: DeFi Orbit API
  version: 1.0.0
  description: Public REST API for DeFi Orbit positions, lending, portfolio, and usage.
servers:
  - url: https://api.defiorbit.xyz
security:
  - bearerAuth: []
tags:
  - name: Portfolio
  - name: Snapshots
  - name: Uniswap V3
  - name: Aerodrome V3
  - name: Orca
  - name: Aave V3
  - name: Morpho
  - name: Kamino
  - name: Usage
paths:
  /v1/positions/uniswapv3/{id}/full:
    get:
      tags:
        - Uniswap V3
      summary: Get Full Position Detail
      description: >-
        Everything: state, full event history, PnL, impermanent loss, fee
        accrual, and APR — the "give me all of it" endpoint. The heaviest-weight
        endpoint in the catalog — reach for `pnl`, `yield`, or `snapshot` if you
        don't need the whole payload.


        **Credits:** 15 per successful call.


        These queries have their own credit cost.


        | Query | Credits |

        | --- | --- |

        | `status=inactive` | 7 |
      operationId: get_v1_positions_uniswapv3_id_full
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            description: Token ID.
            example: '119128'
            x-default: '119128'
        - name: chain_id
          in: query
          required: true
          schema:
            type: integer
            description: Chain ID.
            example: 130
            x-default: 130
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - inactive
            description: >-
              Omit for active positions. Set to `inactive` for closed positions.
              Default: active.
        - name: manager_address
          in: query
          required: false
          schema:
            type: string
            description: Manager address.
        - name: granularity
          in: query
          required: false
          schema:
            type: string
            description: 'Comma-separated: `hourly`, `daily`, `weekly`, `monthly`, `yearly`.'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/RequestId'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          positionData:
                            type: object
                            properties:
                              id:
                                type: string
                              owner:
                                type: string
                              liquidity:
                                type: string
                              tickLower:
                                type: string
                              tickUpper:
                                type: string
                              token0:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  symbol:
                                    type: string
                                  decimals:
                                    type: integer
                                  name:
                                    type: string
                                required:
                                  - id
                                  - symbol
                                  - decimals
                                  - name
                              token1:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  symbol:
                                    type: string
                                  decimals:
                                    type: integer
                                  name:
                                    type: string
                                required:
                                  - id
                                  - symbol
                                  - decimals
                                  - name
                              pool:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  feeTier:
                                    type: string
                                required:
                                  - id
                                  - feeTier
                              chain:
                                type: object
                                properties:
                                  id:
                                    type: number
                                required:
                                  - id
                              protocol:
                                type: object
                                properties:
                                  code:
                                    type: string
                                required:
                                  - code
                              managerAddress:
                                type: string
                            required:
                              - id
                              - owner
                              - liquidity
                              - tickLower
                              - tickUpper
                              - token0
                              - token1
                              - pool
                              - chain
                              - protocol
                              - managerAddress
                          calculations:
                            type: object
                            properties:
                              inRange:
                                type: boolean
                                description: >-
                                  True when the pool price is inside the
                                  position tick range.
                              isClosed:
                                type: boolean
                                description: True when the position liquidity is zero.
                              positionUsdValue:
                                type: string
                                description: >-
                                  USD string. Token principal plus unclaimed
                                  fees and rewards.
                              pnlUsdValue:
                                type: string
                                description: >-
                                  USD string. Current position value, plus
                                  withdrawals, plus claimed fees and rewards,
                                  minus capital deposited.
                              pnlPercentage:
                                type: string
                                description: >-
                                  Percent string. PnL divided by net invested
                                  capital. 0 when net invested is not positive.
                              netImpermanentLossPercentage:
                                type: string
                                description: >-
                                  Percent string of net impermanent loss over
                                  the value of net deposited tokens.
                              positionAgeInDays:
                                type: number
                              earnedAprPercentage:
                                type: object
                                properties:
                                  yield:
                                    type: string
                                    description: Percent string for that component.
                                  fees:
                                    type: string
                                    description: Percent string for that component.
                                  rewards:
                                    type: string
                                    description: Percent string for that component.
                                required:
                                  - yield
                                  - fees
                                  - rewards
                                description: >-
                                  Simple APR percent strings, not compounded.
                                  Each figure is value × 365 / days /
                                  time-weighted capital. Days are at least 1
                                  hour.
                            required:
                              - inRange
                              - isClosed
                              - positionUsdValue
                              - pnlUsdValue
                              - pnlPercentage
                              - netImpermanentLossPercentage
                              - positionAgeInDays
                              - earnedAprPercentage
                        required:
                          - positionData
                          - calculations
                    required:
                      - data
              example:
                data:
                  positionData:
                    id: '119128'
                    owner: '0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495'
                    liquidity: '1175583669061921'
                    tickLower: '233160'
                    tickUpper: '236220'
                    token0:
                      id: 0xusdc
                      symbol: USDC
                      decimals: 6
                      name: USD Coin
                    token1:
                      id: 0xhype
                      symbol: HYPE
                      decimals: 18
                      name: HYPE
                    pool:
                      id: 0xpool
                      feeTier: '3000'
                    chain:
                      id: 130
                    protocol:
                      code: uniswapV3
                    managerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9'
                  calculations:
                    inRange: true
                    isClosed: false
                    positionUsdValue: '1482.71'
                    pnlUsdValue: '150.88'
                    pnlPercentage: '11.33'
                    netImpermanentLossPercentage: '-0.66'
                    positionAgeInDays: 33.16
                    earnedAprPercentage:
                      yield: '41.23'
                      fees: '41.23'
                      rewards: '0'
                request_id: req_...
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    RequestId:
      type: object
      required:
        - request_id
      properties:
        request_id:
          type: string
          description: Id to quote when you contact support.
    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_...
    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_...
    ServiceUnavailable:
      description: The rate limiter is down, or position data is not ready yet.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: SERVICE_UNAVAILABLE
              message: Rate limiting service temporarily unavailable.
              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.