Communitygithub.com

OpenSea API

Interrogez les données de la place de marché OpenSea via l'interface CLI, le SDK, le serveur MCP ou des scripts shell. Obtenez les prix planchers, les statistiques de collections, les détails des NFT, les données de tokens, les collections tendances, les drops, les événements, les résultats de recherche, les favoris, les paramètres de profil et de collection, ainsi que d'autres opérations liées au portefeuille. Pour les transactions commerciales, utilisez opensea-marketplace ; pour les échanges de tokens, utilisez opensea-swaps.

Qu'est-ce que OpenSea API ?

Cette compétence fournit une interface complète pour interroger l'API d'OpenSea, la plus grande place de marché NFT multi-chaînes. Elle prend en charge la récupération de données en lecture seule pour les collections, les NFT, les tokens, les événements, les drops et les comptes, sur les blockchains Ethereum, Base, Arbitrum, Optimism, Polygon, et d'autres. Elle propose plusieurs interfaces : une CLI officielle (`@opensea/cli`) pour une utilisation en ligne de commande simple, des scripts shell pour les flux de travail automatisés, un serveur MCP (Model Context Protocol) pour l'intégration avec des agents IA, et un SDK pour les développeurs. Elle inclut également une gestion intégrée des clés API, permettant de récupérer une clé instantanée sans inscription. L'objectif principal est l'interrogation de données ; les actions d'achat/vente sont déléguées à des compétences spécialisées comme `opensea-marketplace` et `opensea-swaps`. La documentation détaille un processus de résolution de clé API en quatre étapes pour éviter les échecs de requêtes, et fournit des tableaux de commandes pour chaque catégorie de tâche.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ProjectOpenSea/opensea-skill/tree/main/opensea-api

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

API OpenSea

Interrogez les données des NFT et des tokens, parcourez les drops, diffusez les événements en direct, et effectuez des recherches sur Ethereum, Base, Arbitrum, Optimism, Polygon, et bien d'autres.

Quand utiliser cette compétence (scope_in)

Utilisez opensea-api pour :

  • Détails, statistiques, attributs (traits), tendances et meilleures collections
  • Détails des NFT, propriété, actualisation des métadonnées
  • Détails des tokens, tokens tendances, meilleurs tokens, groupes de tokens
  • Recherche parmi les collections, NFT, tokens et comptes
  • Recherche et découverte d'outils d'agent IA enregistrés (ERC-8257)
  • Consultation des annonces, offres et commandes de la place de marché (sans exécution)
  • Suivi des événements et de l'activité (y compris les flux WebSocket en temps réel)
  • Drops (lancements) et éligibilité au minting
  • Recherche de comptes et résolution ENS
  • Paramètres de profil authentifié, paramètres de collection, liste de surveillance, drop, annulation de commande, et opérations de liaison de portefeuille décrites dans references/authentication.md
  • Vérification d'identité via SIWE, création de PAT (jetons d'accès personnels) restreints, échange de JWT de courte durée, et utilisation de REST ou MCP avec authentification par portefeuille

Quand NE PAS utiliser cette compétence (scope_out, transfert)

BesoinUtilisez plutôt
Acheter/vendre des NFT (exécuter des annonces ou des offres)opensea-marketplace
Créer de nouvelles annonces ou offresopensea-marketplace
Achats de NFT跨-chaînesopensea-marketplace
Échanger des tokens ERC20opensea-swaps
Configurer des fournisseurs de signature pour portefeuilleopensea-wallet
Construire/enregistrer/restreindre des outils d'agent IAopensea-tool-sdk

Démarrage rapide

# Résoudre une clé API : réutilise votre variable d'env / une clé instantanée mise en cache,
# ou récupère une nouvelle clé instantanée (sans inscription) ET la sauvegarde sur le disque
# pour la réutiliser. Voir "Résolution de clé API" ci-dessous — sauvegardez toujours et
# réutilisez une clé récupérée.
export OPENSEA_API_KEY=$(scripts/auth/opensea-resolve-key.sh)

# Installer la CLI globalement (ou utiliser npx)
npm install -g @opensea/cli

# Obtenir les informations d'une collection
opensea collections get boredapeyachtclub

# Obtenir le prix plancher et les statistiques de volume
opensea collections stats boredapeyachtclub

# Obtenir les détails d'un NFT
opensea nfts get ethereum 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d 1234

# Rechercher sur OpenSea
opensea search "cool cats"

# Obtenir les tokens tendances
opensea tokens trending --limit 5

Résolution de clé API (lire ceci avant votre première requête)

Chaque requête OpenSea nécessite OPENSEA_API_KEY. Si vous n'avez pas encore de clé, vous pouvez récupérer une clé instantanée gratuite sans inscription. La seule règle importante : une fois que vous avez récupéré une clé instantanée, sauvegardez-la sur le disque et réutilisez-la. Ne la récupérez pas à chaque requête. Une seconde récupération peut échouer et vous laisser sans clé. La requête précédente réussie n'aura pas persisté la clé pour vous.

Le flux (suivez ces étapes dans l'ordre, à chaque fois)

  1. Vérifiez d'abord l'environnement. Si OPENSEA_API_KEY est déjà définie et non vide, utilisez-la telle quelle. C'est le cas pour les utilisateurs qui fournissent leur propre clé — ne l'écrasez jamais et ne la récupérez pas à nouveau.
  2. Vérifiez ensuite le disque. Si aucune variable d'env, cherchez une clé mise en cache dans ~/.opensea/api_key (remplacez le répertoire avec $OPENSEA_CONFIG_DIR). Si le fichier existe et n'est pas vide, chargez-le dans OPENSEA_API_KEY et utilisez-le.
  3. Récupérez seulement si elle est manquante. S'il n'y a ni variable d'env ni clé mise en cache, demandez une nouvelle clé instantanée via POST /api/v2/auth/keys.
  4. Sauvegardez immédiatement après la récupération. Écrivez la clé récupérée dans ~/.opensea/api_key (mode 600) avant d'effectuer votre appel API, afin que la prochaine étape — et toutes les requêtes futures — la réutilisent au lieu de la récupérer à nouveau.

Le script d'aide scripts/auth/opensea-resolve-key.sh effectue les quatre étapes pour vous et affiche la clé résolue. Préférez-le à un appel curl ... /auth/keys nu, qui récupère sans sauvegarder et c'est exactement ce qui a causé la perte de clés :

# variable d'env ? -> utilisez-la. clé mise en cache ? -> réutilisez-la. sinon récupérez + sauvegardez sur le disque.
export OPENSEA_API_KEY=$(scripts/auth/opensea-resolve-key.sh)

opensea collections get boredapeyachtclub

Si vous ne pouvez pas utiliser le script d'aide, reproduisez la même logique ordonnée explicitement :

KEY_FILE="${OPENSEA_CONFIG_DIR:-$HOME/.opensea}/api_key"
if [ -n "${OPENSEA_API_KEY:-}" ]; then
  :                                              # 1. la variable d'env l'emporte
elif [ -s "$KEY_FILE" ]; then
  export OPENSEA_API_KEY=$(cat "$KEY_FILE")      # 2. réutiliser la clé mise en cache
else
  api_key=$(curl -s -X POST https://api.opensea.io/api/v2/auth/keys | jq -r '.api_key')  # 3. récupérer
  mkdir -p "$(dirname "$KEY_FILE")"
  (umask 077; printf '%s\n' "$api_key" > "$KEY_FILE")  # 4. SAUVEGARDER avant d'utiliser
  export OPENSEA_API_KEY="${api_key}"
fi

Cas particuliers

  • Clé déjà existante (variable d'env ou fichier mis en cache) : réutilisez-la ; ne récupérez pas une nouvelle clé. La récupération répétée gaspille la limite de taux et peut échouer.
  • Clé invalide ou expirée (les clés instantanées expirent après 7 jours ; une requête renvoie HTTP 401/403) : la clé mise en cache est obsolète. Récupérez-en une nouvelle et écrasez le cache avec scripts/auth/opensea-resolve-key.sh --force (ou supprimez ~/.opensea/api_key et relancez le flux). --force n'écrase jamais une clé fournie via la variable d'environnement OPENSEA_API_KEY.
  • La récupération échoue (limite de taux HTTP 429, ou erreur réseau) : ne réessayez pas en boucle serrée. Si vous avez une clé mise en cache, continuez à l'utiliser. Sinon, attendez et réessayez plus tard, ou créez une clé complète sur Settings → Developer. Pour des limites de taux plus élevées que le niveau gratuit instantané, utilisez une clé complète.

Vous pouvez aussi récupérer une clé brute (réponse JSON, sans persistance) avec opensea auth request-key ou scripts/auth/opensea-auth-request-key.sh — mais si vous les utilisez, vous devez sauvegarder la clé vous-même selon l'étape 4 ci-dessus.

Guide des tâches

Recommandation : Utilisez la CLI opensea (@opensea/cli) comme outil principal. Installez-la avec npm install -g @opensea/cli ou utilisez npx @opensea/cli. Les scripts shell dans scripts/ restent disponibles comme alternatives.

Lecture des données NFT

TâcheCommande CLIAlternative
Obtenir les détails d'une collectionopensea collections get <slug>collections/opensea-collection.sh <slug>
Obtenir les statistiques d'une collectionopensea collections stats <slug>collections/opensea-collection-stats.sh <slug>
Obtenir les collections tendancesopensea collections trending [--timeframe <tf>] [--chains <chains>]collections/opensea-collections-trending.sh [timeframe] [limit] [chains] [category]
Obtenir les meilleures collectionsopensea collections top [--sort-by <field>] [--chains <chains>]collections/opensea-collections-top.sh [sort_by] [limit] [chains] [category]
Lister les NFT d'une collectionopensea nfts list-by-collection <slug> [--limit <n>] [--traits <json>]collections/opensea-collection-nfts.sh <slug> [limit] [next]
Obtenir un NFT individuelopensea nfts get <chain> <contract> <token_id>nfts/opensea-nft.sh <chain> <contract> <token_id>
Lister les NFT par portefeuilleopensea nfts list-by-account <chain> <address> [--limit <n>]accounts/opensea-account-nfts.sh <chain> <address> [limit]
Lister les NFT par contratopensea nfts list-by-contract <chain> <contract> [--limit <n>]
Obtenir les attributs (traits) d'une collectionopensea collections traits <slug>
Obtenir les détails d'un contratopensea nfts contract <chain> <address>
Actualiser les métadonnées d'un NFTopensea nfts refresh <chain> <contract> <token_id>

Lecture des données de tokens

TâcheCommande CLIAlternative
Obtenir les tokens tendancesopensea tokens trending [--chains <chains>] [--limit <n>]get_trending_tokens (MCP)
Obtenir les meilleurs tokens par volumeopensea tokens top [--chains <chains>] [--limit <n>]get_top_tokens (MCP)
Obtenir les détails d'un tokenopensea tokens get <chain> <address>get_tokens (MCP)
Obtenir l'activité d'échange d'un tokenopensea tokens activity <chain> <address> [--limit <n>] [--next <cursor>]tokens/opensea-token-activity.sh
Obtenir l'activité d'un token pour un compteopensea tokens account-activity <address> [--chains <chains>] [--tokens <tokens>] [--type <types>] [--limit <n>] [--next <cursor>]
Lister les groupes de tokensopensea token-groups list [--limit <n>] [--next <cursor>]tokens/opensea-token-groups.sh [limit] [cursor]
Obtenir un groupe de token par slugopensea token-groups get <slug>tokens/opensea-token-group.sh <slug>
Rechercher des tokensopensea search <query> --types tokensearch_tokens (MCP)
Vérifier les soldes de tokensget_token_balances (MCP)

REST et MCP avec authentification par portefeuille

Lisez la référence sur l'authentification par portefeuille avant d'agir en tant que portefeuille. Elle contient les chemins optimaux (happy paths) via CLI et SDK, les en-têtes REST et MCP, le cycle de vie des identifiants, et les règles de récupération.

Requêtes sur la place de marché (lecture seule)

TâcheCommande CLIAlternative
Obtenir les meilleures annonces pour une collectionopensea listings best <slug> [--limit <n>] [--traits <json>]listings/opensea-best-listing.sh <slug> <token_id>
Obtenir la meilleure annonce pour un NFT spécifiqueopensea listings best-for-nft <slug> <token_id>listings/opensea-best-listing.sh <slug> <token_id>
Obtenir la meilleure offre pour un NFTopensea offers best-for-nft <slug> <token_id>offers/opensea-best-offer.sh <slug> <token_id>
Lister toutes les annonces d'une collectionopensea listings all <slug> [--limit <n>]listings/opensea-listings-collection.sh <slug> [limit]
Lister toutes les offres d'une collectionopensea offers all <slug> [--limit <n>]offers/opensea-offers-collection.sh <slug> [limit]
Obtenir les offres pour une collectionopensea offers collection <slug> [--limit <n>]offers/opensea-offers-collection.sh <slug> [limit]
Obtenir les offres pour un attributopensea offers traits <slug> --type <type> --value <value>
Obtenir une commande par son hashorders/opensea-order.sh <chain> <order_hash>

Filtrage côté serveur par attributs

Trois endpoints dédiés à une collection acceptent un paramètre de requête traits pour le filtrage côté serveur :

EndpointCLISDK
Lister les NFT d'une collectionopensea nfts list-by-collection <slug> --traits <json>client.nfts.listByCollection(slug, { traits })
Meilleures annonces pour une collectionopensea listings best <slug> --traits <json>client.listings.best(slug, { traits })
Événements pour une collectionopensea events by-collection <slug> --traits <json>client.events.byCollection(slug, { traits })

--traits prend un tableau encodé en JSON d'objets { "traitType": string, "value": string }. Les entrées multiples sont combinées avec un ET logique :

opensea nfts list-by-collection doodles-official \
  --traits '[{"traitType":"Background","value":"Red"}]'

Privilégiez toujours le filtrage côté serveur au filtrage côté client : paginer un ensemble non filtré gaspille le budget de limite de taux.

Recherche

TâcheCommande CLI
Rechercher des collectionsopensea search <query> --types collection
Rechercher des NFTopensea search <query> --types nft
Rechercher des tokensopensea search <query> --types token
Rechercher des comptesopensea search <query> --types account
Rechercher plusieurs typesopensea search <query> --types collection,nft,token
Rechercher sur une chaîne spécifiqueopensea search <query> --chains base,ethereum

Événements et surveillance

TâcheCommande CLIAlternative
Lister les événements récentsopensea events list [--event-type <type>] [--limit <n>]
Obtenir les événements d'une collectionopensea events by-collection <slug> [--event-type <type>] [--traits <json>]events/opensea-events-collection.sh <slug> [event_type] [limit]
Obtenir les événements pour un NFT spécifiqueopensea events by-nft <chain> <contract> <token_id>
Obtenir les événements pour un compteopensea events by-account <address>
Diffuser les événements en temps réelstream/opensea-stream-collection.sh <slug> (nécessite websocat)

Types d'événements : sale (vente), transfer (transfert), mint (création), listing (annonce), offer (offre), trait_offer (offre sur attribut), collection_offer (offre sur collection)

Drops et minting

TâcheCommande CLIAlternative
Lister les drops (en vedette/à venir/récents)opensea drops list [--type <type>] [--chains <chains>]drops/opensea-drops.sh [type] [limit] [chains]
Obtenir les détails et étapes d'un dropopensea drops get <slug>drops/opensea-drop.sh <slug>
Construire une transaction de mintopensea drops mint <slug> --minter <address> [--quantity <n>]drops/opensea-drop-mint.sh <slug> <minter> [quantity]
Construire des transactions de mint跨-chaînesopensea drops cross-chain-mint <slug> --payer <address> --minter <address> --payment-chain <chain> --payment-token <address> [--quantity <n>]drops/opensea-drop-cross-chain-mint.sh <slug> <payer> <minter> <payment_chain> <payment_token> [quantity]
Construire ou envoyer la transaction de publication (portefeuille propriétaire, write:drops)opensea drops publish <slug> [--send] [--wallet-provider <provider>]
Construire ou envoyer la transaction de dépublicationopensea drops unpublish <slug> [--send] [--wallet-provider <provider>]
Télécharger les médias et métadonnées d'un drop vers IPFSopensea drops upload-metadata-ipfs <slug> [--wait] [--interval <s>] [--wait-timeout <s>]
Vérifier la progression du téléchargement IPFSopensea drops metadata-ipfs-status <slug> <workflow-execution-id>
Demander un téléchargement CSV (manifeste des métadonnées)opensea drops create-manifest-upload <slug>
Télécharger un fichier dans un contexte de téléchargementopensea drops upload-file --context <path|-> --file <path> [--index <n>]
Déployer un nouveau contrat SeaDropdeploy_seadrop_contract (MCP)
Vérifier l'état du déploiementget_deploy_receipt (MCP)

publish --send signe avec le portefeuille EVM configuré et refuse tout portefeuille qui n'est pas le from de la transaction (le propriétaire on-chain du contrat), car une transaction provenant d'une autre adresse est annulée. upload-file prend un seul contexte de téléchargement ; pour le tableau renvoyé par create-item-media-upload, passez --index <n> ou pipez un élément avec jq '.[0]'. upload-metadata-ipfs --wait se termine avec le code 1 lorsque le téléchargement échoue, n'est pas trouvé, ou dépasse --wait-timeout.

Pour un mint跨-chaîne, soumettez chaque transaction renvoyée dans l'ordre. Sauvegardez l'objet receipt_request renvoyé exactement tel que reçu, puis interrogez-le jusqu'à ce que le statut soit SUCCES (succès).

upload-file exige un contexte unique. Quatre workflows renvoient un tableau de contextes de téléchargement :

WorkflowEndpoint CLIAction
Création d'un élément de dropopensea drops upload-file --context <(opensea drops create-item-media-upload <slug> | jq '.[0]') --file my-image.jpgcreate-item-media-upload sur un slug de drop, avec tous les détails saisis
Téléchargement en masse d'images de dropopensea drops upload-file --context <(opensea drops bulk-image-upload <slug> | jq '.[0]') --file my-bulk-image.zipcreate-bulk-image-upload
Téléchargement de bannière de collectionopensea drops upload-file --context <(opensea drops upload-collection-banner <slug> | jq '.[0]') --file my-banner.pngcollection-upload-banner
Attributs et métadonnées d'une collection de dropopensea drops set-collection-metadata --file my-attributes.csv --context <(opensea drops upload-collection-attributes <slug> | jq '.[0]')collection-upload-attributes

Outils MCP

Ces outils MCP exposent une partie de la fonctionnalité de l'API via le Model Context Protocol.

OutilDescriptionCommandes associées
get_nftsObtenir les NFT par collection, portefeuille ou contratVoir la section NFT ci-dessus
get_nftObtenir un NFT individuelopensea nfts get <chain> <contract> <token_id>
get_collectionObtenir les détails et les statistiques d'une collectionopensea collections get <slug>, opensea collections stats <slug>
get_trending_collectionsCollections tendances avec volume, changement de prix et plancheropensea collections trending
get_top_collectionsMeilleures collections triées par métriqueopensea collections top
search_nftsRechercher des NFT par mot-cléopensea search <query> --types nft
search_collectionsRechercher des collections par mot-cléopensea search <query> --types collection
search_tokensRechercher des tokens par mot-cléopensea search <query> --types token
get_trending_tokensObtenir les tokens tendancesopensea tokens trending
get_top_tokensObtenir les meilleurs tokens par volumeopensea tokens top
get_tokensObtenir les détails d'un tokenopensea tokens get <chain> <address>
get_token_balancesObtenir les soldes de tokens pour un compte
get_eventsObtenir les événements pour une collection ou un NFTVoir la section Événements ci-dessus
get_dropsObtenir les drops (lancements)opensea drops list
get_dropObtenir les détails d'un drop spécifiqueopensea drops get <slug>
get_listingsObtenir les annonces pour une collection ou un NFTVoir la section Place de marché ci-dessus
get_offersObtenir les offres pour une collection ou un NFTVoir la section Place de marché ci-dessus
get_ordersObtenir les commandes (par hash)orders/opensea-order.sh <chain> <order_hash>
get_contractObtenir les détails d'un contratopensea nfts contract <chain> <address>
get_accountObtenir les détails d'un compte
check_eligible_dropVérifier l'éligibilité au mint pour un drop
build_mint_transactionConstruire une transaction de mint pour un dropopensea drops mint
deploy_seadrop_contractDéployer un nouveau contrat SeaDrop
get_deploy_receiptObtenir le reçu de déploiement d'un contrat SeaDrop
resolve_ensRésoudre un nom ENS en adresse Ethereum
register_ai_agent_toolEnregistrer un outil d'agent IA (ERC-8257)
search_ai_agent_toolsRechercher des outils d'agent IA enregistrés

Références

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills associés