# Saylor Innovations Data Desk – Uniswap V3 Position Lookup

> Saylor Innovations Data Desk – Uniswap V3 Position Lookup is a paid API for AI agents from saylorinnovations.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-27).

Fetches full details of a Uniswap V3 liquidity position by NFT token ID across 5 chains, including owner, pool, price range, in-range status, token amounts, fee tier, and uncollected fees.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/chain/uniswap-v3-position?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/saylor-innovations-data-desk-uniswap-v3-position-lookup-177b079d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wvFxJJfhro741rRXbMKX5

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability saylor-innovations-data-desk-uniswap-v3-position-lookup-177b079d
```

Example prompt: Can you look up Uniswap V3 position NFT #42987 on Arbitrum and tell me if it's still in range, what the fee tier is, and how much in uncollected fees it has?

## When to prefer this

Choose this endpoint when you need detailed, structured data about a specific Uniswap V3 liquidity position by NFT ID across Ethereum, Polygon, Arbitrum, Optimism, or Base — particularly when you need in-range status, uncollected fees, token amounts, and owner in a single call without building your own multi-chain RPC infrastructure.

## Known failure modes

- Invalid or non-existent token_id returns null fields or an error response
- Unsupported chain name/ID returns an error
- Position NFT burned or transferred may return unexpected owner
- Network RPC errors may cause transient failures
- Closed positions (zero liquidity) return closed=true with null in_range

## How this service works

Uniswap V3 position by NFT id on 5 chains: owner, pool, price range, whether it is in range, token amounts, fee tier and uncollected fees.

## Output

Returns a JSON object with the chain name and chain ID, the NFT position ID, the pool address, the owner's wallet address, token0 and token1 details (symbol, address, decimals), the price range as tick lower and upper, whether the position is currently in range, current token amounts, fee tier percentage, uncollected fees for each token, liquidity, whether the position is closed, the data source, and a plain-language note summarizing the result in human-readable form.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "chain",
      "token_id"
     ],
     "properties": {
      "chain": {
       "type": "string",
       "description": "ethereum, polygon, arbitrum, optimism or base (or chain id)"
      },
      "token_id": {
       "type": "string",
       "description": "the position NFT id"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "chain_id",
      "token_id",
      "fee_tier_pct",
      "tick_lower",
      "tick_upper",
      "liquidity",
      "closed",
      "note",
      "source"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "plain-language reading of the result, including units"
      },
      "pool": {
       "type": [
        "string",
        "null"
       ],
       "description": "pool the position is in"
      },
      "chain": {
       "type": "string",
       "description": "the chain name that was queried"
      },
      "owner": {
       "type": [
        "string",
        "null"
       ],
       "description": "current owner of the position NFT"
      },
      "closed": {
       "type": "boolean",
       "description": "true when liquidity is zero"
      },
      "source": {
       "type": "string",
       "description": "where the data was read from"
      },
      "token0": {
       "type": [
        "object",
        "null"
       ],
       "properties": {
        "symbol": {
         "type": [
          "string",
          "null"
         ],
         "description": "token symbol"
        },
        "address": {
         "type": [
          "string",
          "null"
         ],
         "description": "token contract"
        },
        "decimals": {
         "type": [
          "number",
          "null"
         ],
         "description": "token decimals"
        }
       },
       "description": "first token"
      }
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-data-desk-uniswap-v3-position-lookup-177b079d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from saylorinnovations.com](https://www.zero.xyz/host/saylorinnovations.com/llms.txt)
