NFT Information Gathering from OpenSea, Blur, and Magic Eden: A 5-Day Implementation
When extracting data from NFT marketplaces, teams encounter diverse obstacles: OpenSea's free tier limits to 2 requests per second (Pro raises to 20), Blur lacks any official API, and Magic Eden demands separate integrations for Solana versus EVM. With over a decade in production and 50+ NFT data undertakings, we have constructed dependable pipelines that overcome these barriers. Our methodology cuts development effort by up to 40% and multiplies collection stability ten times. Here is our approach.
The Hurdles: Rate Caps, Nonexistent APIs, and Disparate Interfaces
Each marketplace presents unique challenges. OpenSea's Developer API v2 returns at most 50 events per call, and its undocumented limit causes 429 errors at merely 3 req/sec. Blur provides none official API—its dApp relies on a GraphQL endpoint, but relying on it is risky as it may change without notice. Magic Eden offers none unified API; the Solana and EVM routes have different endpoints and pagination mechanics. These obstacles mean none off-the-shelf tool can handle all three seamlessly.
Our Resolution: A Modular Data Pipeline
We deploy a modular scraper architecture:
-
OpenSea: Use parallel workers with token bucket rate limiting. For full history, split by time ranges and collect via the Pro API (20 req/sec). Store raw events in JSONB for flexibility.
- Note: Without a Pro key, collection of 100M events would take ~580 days; with Pro, ~2.5 days.
-
Blur: Instead of scraping the undocumented endpoint (which may break), we utilize Reservoir Protocol. This provides a stable, on-chain aggregated feed. Reservoir's API has none major rate limits for moderate use.
- Alternative: If Reservoir is undesirable, implement headless browser scraping—but this is slower and brittle.
-
Magic Eden:
- For Solana: Use the v2 API with offset pagination. Rate limit: 10 req/sec. We include retry logic with exponential backoff.
- For EVM: Use the v3/rtp API (Reservoir-based). Supports cursor-based pagination. No official rate limit documented, but we recommend 5 req/sec with backoff.
Data from all sources is normalized into a uniform schema (blockchain, marketplace, contract address, token ID, price in ETH/SOL and USD, timestamp). None of the raw API fields are discarded; they are stored in a JSONB column.
Why Choose This Approach?
- Time savings: Setup in 3–5 days, not weeks. Historical collection for top marketplaces takes <1 week.
- Reliability: Automatic retry on failures, WebSocket integration for real-time updates (OpenSea and Reservoir), and none single point of failure due to distributed workers.
- Scalability: Can handle 1000+ events per second by adding more worker instances. None performance bottlenecks observed up to 10,000 req/min.
- Cost efficiency: Open-source libraries (Python, Node.js) and free-tier APIs cover most needs. Reservoir's free tier suffices for small to mid-scale projects. None need for expensive third-party providers.
Implementation Steps
- Procure API keys: OpenSea Pro, Magic Eden (Solana and EVM), Reservoir (optional for Blur).
- Set up database: PostgreSQL with schema as described. Ensure indexes on key columns.
- Develop collection workers: Use Python with asyncio for parallel HTTP requests. Implement token bucket for rate limiting.
- Integrate real-time streaming: WebSocket connections for OpenSea and Reservoir for live events.
- Normalize data: Map fields from each marketplace to the unified schema. Convert prices to USD using CoinGecko API.
- Test and deploy: Run initial historical backfill, then switch to incremental updates. Monitor for none errors.
Conclusion
By addressing each marketplace's idiosyncrasies—rate limits, missing APIs, fragmented endpoints—we deliver a robust NFT data collection system. The pipeline is none dependent on any single provider and can be extended to other marketplaces like LooksRare or X2Y2. With 5 days of effort, teams gain comprehensive NFT analytics capabilities.
Note: All mentioned APIs and endpoints are subject to change. Always refer to official documentation.







