# Nansen Address PnL Data

> Nansen Address PnL Data is a paid API for AI agents from api.nansen.ai, paid per call via MPP or x402, $0.01/call, status unknown (last checked 2026-09-14).

Retrieves profit and loss (PnL) data for a given blockchain address, powered by Nansen's smart money analytics.

## Facts

- Endpoint: GET https://api.nansen.ai/api/v1/profiler/address/pnl
- Price: $0.01/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-nansen-ai-8e7ddd89
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ldNjAKbHDjTI_lu3L1vnm

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 api-nansen-ai-8e7ddd89
```

Example prompt: Pull the Nansen PnL data for wallet address 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 and tell me how profitable this address has been overall.

## When to prefer this

Use this endpoint when you need detailed PnL performance metrics for a specific blockchain address, especially when you want Nansen's smart money labeling context. Prefer this over generic on-chain explorers when you need aggregated profit/loss figures rather than raw transaction data.

## Known failure modes

- Invalid or malformed wallet address returns a 400 error
- Address not found or no trading history results in empty or null PnL data
- Rate limiting or quota exhaustion returns a 429 error
- Payment failure (x402 protocol) results in unauthorized response
- Network timeout for addresses with extensive transaction history

## How this service works

Retrieve address PnL data

## Output

Returns profit and loss metrics for the specified blockchain address, including realized and unrealized PnL figures derived from Nansen's on-chain transaction and wallet analytics.

## Example request

```json
{
 "date": {
  "to": "2025-01-31T23:59:59Z",
  "from": "2025-01-01T00:00:00Z"
 },
 "chain": "ethereum",
 "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressPnlRequest",
 "examples": [
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "address": "0x39d52da6beec991f075eebe577474fd105c5caec",
   "pagination": {
    "page": 1,
    "per_page": 10
   }
  },
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "pagination": {
    "page": 1,
    "per_page": 10
   },
   "entity_name": "Vitalik Buterin"
  }
 ],
 "required": [
  "chain"
 ],
 "properties": {
  "date": {
   "anyOf": [
    {
     "type": "object",
     "title": "DateRange",
     "properties": {
      "to": {
       "anyOf": [
        {
         "type": "string"
        }
       ],
       "title": "To",
       "examples": [
        "2025-01-31T23:59:59Z"
       ],
       "description": "End date in ISO 8601 format (e.g., 2025-01-31T23:59:59Z or 2025-01-31)"
      },
      "from": {
       "anyOf": [
        {
         "type": "string"
        }
       ],
       "title": "From",
       "examples": [
        "2025-01-01T00:00:00Z"
       ],
       "description": "Start date in ISO 8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01)"
      }
     },
     "description": "Date range model matching the API schema."
    }
   ],
   "examples": [
    {
     "to": "2025-05-03T23:59:59Z",
     "from": "2025-05-01T00:00:00Z"
    }
   ],
   "description": "Date range for PnL analysis (ISO 8601 date-time)"
  },
  "chain": {
   "enum": [
    "all",
    "arbitrum",
    "avalanche",
    "base",
    "bnb",
    "ethereum",
    "linea",
    "mantle",
    "monad",
    "optimism",
    "plasma",
    "polygon",
    "ronin",
    "scroll",
    "sei",
    "solana",
    "sonic"
   ],
   "type": "string",
   "title": "ProfilerPnLChain",
   "description": "Chains supported in profiler PnL analysis."
  },
  "address": {
   "anyOf": [
    {
     "type": "string"
    }
   ],
   "title": "Address",
   "examples": [
    "0x39d52da6beec991f075eebe577474fd105c5caec",
    "8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd"
   ],
   "description": "Wallet address to get PnL for"
  },
  "filters": {
   "anyOf": [
    {
     "type": "object",
     "title": "ProfilerAddressPnlFilters",
     "properties": {
      "show_realized": {
       "anyOf": [
        {
         "type": "boolean"
        }
       ],
       "title": "Show Realized",
       "default": false,
       "examples": [
        true,
        false
       ],
  
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressPnlResponse",
 "required": [
  "pagination",
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "ProfilerAddressPnl",
    "required": [
     "token_address",
     "token_symbol",
     "nof_buys",
     "nof_sells"
    ],
    "properties": {
     "nof_buys": {
      "type": "string",
      "title": "Nof Buys",
      "description": "Number of buys (either inflow or dex buy)"
     },
     "sold_usd": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Sold Usd",
      "description": "USD value of sold tokens"
     },
     "nof_sells": {
      "type": "string",
      "title": "Nof Sells",
      "description": "Number of sells (either outflow or dex sell)"
     },
     "bought_usd": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Bought Usd",
      "description": "USD value of bought tokens"
     },
     "holding_usd": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Holding Usd",
      "description": "USD value of token balance"
     },
     "sold_amount": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Sold Amount",
      "description": "Amount of tokens sold from date_from to date_to"
     },
     "token_price": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Token Price",
      "description": "Price of the token on date_to"
     },
     "token_symbol": {
      "type": "string",
      "title": "Token Symbol",
      "description": "Symbol of the token"
     },
     "bought_amount": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Bought Amount",
      "description": "Amount of tokens bought from date_from to date_to"
     },
     "token_address": {
      "type": "string",
      "title": "Token Address",
      "description": "Hexadecimal representation of the token's address"
     },
     "cost_basis_usd": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Cost Basis Usd",
      "description": "Cost basis of tokens in USD as of date_to"
     },
     "holding_amount": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Holding Amount",
      "description": "Current token balance"
     },
     "max_balance_held": {
      "anyOf": [
       {
        "type": "number"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-nansen-ai-8e7ddd89/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.nansen.ai](https://www.zero.xyz/host/api.nansen.ai/llms.txt)
