Reservoir NFT Aggregator Integration

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1 servicesAll 1306 services
Reservoir NFT Aggregator Integration
Medium
~2-3 business days
FAQ
Blockchain Development Services
Blockchain Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1217
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1046
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823

Reservoir NFT Aggregator Integration

Reservoir is not just an API for getting NFT data. It's a protocol with its own order books that aggregates liquidity from OpenSea, Blur, X2Y2, LooksRare, Coinbase NFT and allows placing cross-marketplace listings through a single interface. If you're building an NFT project and don't want to integrate 6 marketplaces separately — Reservoir solves the problem.

What Reservoir Really Provides

Two usage modes: read-only (data about collections, prices, activity) and write (creating orders, executing trades). Most projects start with read, but true value — in write integration.

Read API covers:

  • Floor prices, bid/ask depth by collection
  • Ownership data (who owns each token)
  • Sales history, transfers, mints
  • Attribute-level stats (rare trait prices)
  • Real-time events via WebSocket

Write (via SDK):

  • List tokens simultaneously on multiple marketplaces
  • Cross-marketplace fills (buy token wherever it's listed)
  • Collection bids, attribute bids
  • Sweep (buy multiple NFTs in one transaction)

Quick Start with Reservoir SDK

import { createClient } from "@reservoir0x/reservoir-sdk";
import { createWalletClient, http } from "viem";
import { mainnet } from "viem/chains";

const client = createClient({
  chains: [{ id: 1, baseApiUrl: "https://api.reservoir.tools", active: true }],
  apiKey: process.env.RESERVOIR_API_KEY,
});

// Get collection floor price
const { data } = await fetch(
  `https://api.reservoir.tools/collections/v7?id=${collectionAddress}`,
  { headers: { "x-api-key": process.env.RESERVOIR_API_KEY } }
).then(r => r.json());

const floorPrice = data.collections[0].floorAsk.price.amount.native;

// Execute purchase via SDK (finds best market automatically)
await client.actions.buyToken({
  items: [{ token: `${contractAddress}:${tokenId}`, quantity: 1 }],
  wallet: walletClient,
  onProgress: (steps) => console.log(steps),
});

API Keys Setup and Rate Limits

Free tier provides 50 requests/second — enough for most projects at start. Production loads require paid plan. Important note: for write operations (placing orders) you need API key with appropriate permissions, and Reservoir should verify the account.

Self-hosted node — Reservoir is open-source protocol, you can deploy your own node for full control and unlimited requests. Requires syncing with on-chain data via Ethereum node (Erigon recommended for performance). Relevant for high-load projects.

WebSocket for Real-Time Data

import { WebSocket } from "ws";

const ws = new WebSocket("wss://ws.reservoir.tools?api_key=YOUR_KEY");

ws.on("open", () => {
  // Subscribe to sales of specific collection
  ws.send(JSON.stringify({
    type: "subscribe",
    event: "sale.created",
    filters: { contract: collectionAddress }
  }));
});

ws.on("message", (data) => {
  const event = JSON.parse(data.toString());
  // sale.created, token.floor-ask.changed, collection.floor-ask.changed
  handleRealtimeEvent(event);
});

Typical Integration Use Cases

NFT marketplace with aggregation — show listings from all platforms, user buys via our UI. Revenue model: protocol fee on top of Reservoir fee. Technically: Reservoir SDK + custom smart contract with fee hook.

Portfolio tracker — use Reservoir Ownership API to get user's NFTs with current prices. Significantly simpler than direct calls to OpenSea/Blur APIs separately.

Rarity + price correlation — combine Reservoir attribute stats with rarity data (from Rarity.tools or own calculation) to estimate fair value of specific token.

Automated market making — bots placing collection bids by algorithmic strategies. Reservoir SDK simplifies order management.

Integration with Specific Marketplaces

Reservoir supports different marketplace protocols via orderbook parameter. When creating a listing specify where order goes:

await client.actions.listToken({
  listings: [{
    token: `${contract}:${tokenId}`,
    weiPrice: parseEther("0.5").toString(),
    orderbook: "reservoir", // or "opensea", "blur", "looks-rare"
    orderKind: "seaport-v1.5",
    expirationTime: Math.floor(Date.now() / 1000) + 86400 * 7,
  }],
  wallet: walletClient,
});

Blur requires separate authentication via their API — Reservoir abstracts this, but auth token still needs to be obtained once.

Multi-Chain

Reservoir supports Ethereum, Polygon, Arbitrum, Optimism, Base, Zora and others. Configure multiple chain endpoints in SDK client and switch by chainId from wallet provider.