# NFT Collection Recent Sales

> NFT Collection Recent Sales is a paid API for AI agents from agent402.tools, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Returns recent NFT sales for a given contract (or specific token) across 5 chains, including buyer, seller, marketplace, price, fees, and transaction metadata.

## Facts

- Endpoint: POST https://agent402.tools/api/nft-sales
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/nft-collection-recent-sales-03146eda
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aeNESL8o9WXYU5EhK0cUl

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 nft-collection-recent-sales-03146eda -d '<json body>'
```

Example prompt: Can you pull the last 30 sales for the Bored Ape Yacht Club contract 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D on Ethereum, so I can see the buyer, seller, price in ETH, and which marketplace each trade happened on?

## When to prefer this

Use this endpoint when you need granular, per-transaction NFT sales data including buyer/seller addresses, specific marketplace attribution, and fee breakdowns across Ethereum, Base, Polygon, Arbitrum, or Optimism. Prefer this over generic NFT floor-price endpoints when you need trade history, not just current pricing.

## Known failure modes

- Invalid or non-checksummed contract address returns a 400 error
- Unsupported network name returns a validation error
- No sales found for the given contract or token returns an empty array
- Token ID not found in the collection returns an empty result
- limit out of range (below 1 or above 100) returns a validation error
- Network congestion or chain indexer lag may return stale or incomplete data

## How this service works

Recent sales for an NFT collection (or specific token) on any of 5 chains, ordered descending by block. Returns buyer, seller, marketplace (OpenSea/LooksRare/X2Y2/Blur), price (units + wei), protocol/royalty fees, tx hash, block, and quantity for ...

## Output

Returns an array of recent NFT sale records ordered descending by block, each containing buyer address, seller address, marketplace name (OpenSea, LooksRare, X2Y2, or Blur), sale price in token units and wei, protocol fee, royalty fee, transaction hash, block number, and quantity sold.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "contract"
     ],
     "properties": {
      "limit": {
       "type": "number",
       "description": "Max sales to return (1-100, default 20)."
      },
      "network": {
       "type": "string",
       "description": "Chain: ethereum, base, polygon, arbitrum, optimism (default ethereum)."
      },
      "tokenId": {
       "type": "string",
       "description": "Optional: limit sales to a specific token ID."
      },
      "contract": {
       "type": "string",
       "description": "NFT contract address (0x-prefixed 40-hex)."
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "sales": [
   {
    "buyer": "0xbuyer...",
    "seller": "0xseller...",
    "txHash": "0xabc...",
    "tokenId": "1234",
    "logIndex": 42,
    "priceWei": "12500000000000000000",
    "quantity": "1",
    "tokenType": "ERC721",
    "priceUnits": 12.5,
    "blockNumber": 19000000,
    "marketplace": "seaport",
    "priceCurrency": "ETH",
    "royaltyFeeWei": "312500000000000000",
    "protocolFeeWei": "0",
    "marketplaceAddress": "0x00000000006c3852cbef3e08e8df289169ede581"
   }
  ],
  "source": "alchemy-nft-v3",
  "network": "ethereum",
  "pageKey": null,
  "tokenId": null,
  "contract": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nft-collection-recent-sales-03146eda/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent402.tools](https://www.zero.xyz/host/agent402.tools/llms.txt)
