{"slug":"nft-collection-metadata","title":"Best NFT collection metadata API: Moralis, Alchemy, OpenSea benchmarked","subtitle":"Share of metadata fields (name, image, description, floor_eth, external_url) populated across 50 Ethereum blue-chip NFT collections, audited every 6 hours.","category":"NFT APIs","metric":"Field coverage","unit":"pct","status":"live","higherIsBetter":true,"filters":null,"value":96.9077,"leader":{"name":"OpenSea","slug":"opensea","value":96.9077},"leaders":[{"name":"OpenSea","slug":"opensea","value":96.9077}],"rankings":[{"name":"OpenSea","slug":"opensea","value":96.9077,"unit":"pct","ms":{"p50":96.9077,"p90":96.9077,"p99":96.9077,"mean":96.9077},"successRate":100,"sampleSize":4496.56},{"name":"Alchemy","slug":"alchemy","value":94.4,"unit":"pct","ms":{"p50":94.4,"p90":94.4,"p99":94.4,"mean":94.4},"successRate":100,"sampleSize":6002.08}],"sparkline":[96.7568,96.3158,96.3158,96.3158,95.8974,95.8974,95.8974,97.3684,97.3684,97.3684,97.3684,97.3684,97.3684,97.2222,97.2222,97.2222,97.2973,97.2973,97.2973,97.8378,97.8378,97.8378,96.2162,96.2162,96.2162,96.3158,96.3158,96.3158,95.6757,95.6757,95.6757,97.8378,97.8378,97.8378,97.3684,97.3684,97.3684,97.3684,97.3684,97.3684,97.8378,97.8378,97.8378,97.2222,97.2222,97.2222,96.3158,96.3158,96.3158,97.2973,97.2973,97.2973,96.3158,96.3158,96.3158,97,97,97,97.7778,97.7778,97.7778,95.3846,95.3846,95.3846,96.8421,96.8421,96.8421,97.2222,97.2222,97.2222,96.6667,96.6667,96.6667],"sampleSize":10498.64,"asOf":"2026-10-30T23:29:44.739Z","freshness":{"asOf":"2026-10-30T23:29:44.739Z","ageHours":0.1,"stale":false},"measured":2,"ranked":2,"headline":"OpenSea leads field coverage at 96.9% (24h avg) across 2 ranked providers.","quote":"OpenSea leads field coverage at 96.9% (24h avg) across 2 ranked providers. Source: OpenChainBench (https://openchainbench.com/benchmarks/nft-collection-metadata).","cite":{"plain":"OpenChainBench. \"Best NFT collection metadata API: Moralis, Alchemy, OpenSea benchmarked\". Retrieved 2026-10-30. https://openchainbench.com/benchmarks/nft-collection-metadata","bibtex":"@misc{ocb_nft_collection_metadata,\n  author = {OpenChainBench},\n  title  = {Best NFT collection metadata API: Moralis, Alchemy, OpenSea benchmarked},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/nft-collection-metadata},\n  note   = {Retrieved 2026-10-30}\n}","apa":"OpenChainBench. (2026). Best NFT collection metadata API: Moralis, Alchemy, OpenSea benchmarked. Retrieved October 30, 2026, from https://openchainbench.com/benchmarks/nft-collection-metadata","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Best NFT collection metadata API: Moralis, Alchemy, OpenSea benchmarked\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/nft-collection-metadata\r\nY2  - 2026-10-30\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/nft-collection-metadata","ogImage":"https://openchainbench.com/api/og/nft-collection-metadata","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/nft-metadata-coverage","methodology":["Collection set: a fixed list of 50 Ethereum blue-chip collections (BAYC, CryptoPunks, Azuki, Pudgy Penguins, Doodles, MAYC, Moonbirds, CloneX, Otherdeeds, Meebits and others). The list is committed to the harness repo and only changes via PR.","Fields scored (5): `name`, `image`, `description`, `floor_eth`, `external_url`. A field counts as covered if the provider returns a non-empty string or a positive number.","Apple-to-apple: each provider gets exactly one chance per field. No OR-of-multiple-URLs tricks.","Providers in scope: Moralis (`/nft/{address}/metadata`), Alchemy (`getContractMetadata`), OpenSea (`/api/v2/collections/{slug}` plus `/api/v2/collections/{slug}/stats` for floor; slug pre-resolved via `/api/v2/chain/ethereum/contract/{addr}`, so OpenSea costs two API calls per collection per check).","Cadence: every 6 hours per provider × collection. Steady-state ≈ 200 checks per provider per day, ~1000 field checks per provider per day.","Region: `eu-west` (single point. multi-region requires running additional monitor instances).","Ratio: `nft_metadata_success_total / nft_metadata_checks_total`, expressed in percent. Failures of the metadata API itself (timeouts, 5xx) are not counted in the denominator. only successful responses with the field check applied."],"license":"CC-BY-4.0"}