# OpenSea Developer Documentation Documentation > One API for tokens, NFTs, and swaps across 30 chains, plus open-source SDKs, a CLI, and tools for AI agents. ## Docs: Guides - [NFT basics](https://docs.opensea.io/docs/nft-basics.md): Deploy an NFT contract or show NFTs in your product. - [Deploy an NFT contract](https://docs.opensea.io/docs/deploy-an-nft-contract.md) - [Part 1: Create an OpenSea account](https://docs.opensea.io/docs/part-1-setup.md) - [Part 2: Deploy a contract using Shipyard](https://docs.opensea.io/docs/part-2-set-up-shipyard.md) - [Part 3: Mint an NFT](https://docs.opensea.io/docs/part-3-add-metadata-to-your-contract.md) - [Display an NFT](https://docs.opensea.io/docs/display-an-nft.md) - [Part 1: Set up a website](https://docs.opensea.io/docs/part-1-simple-website-setup.md) - [Part 2: Fetch an NFT from OpenSea](https://docs.opensea.io/docs/part-2-fetch-an-nft-from-opensea.md) - [Drops](https://docs.opensea.io/docs/drops.md): Create a primary drop or build a custom minting experience. - [Create a primary drop](https://docs.opensea.io/docs/create-a-drop.md): Learn how to deploy a smart contract, configure drop mechanics, and personalize your landing page so that your community can mint your project directly on OpenSea. - [Part 1: Deploy an NFT contract](https://docs.opensea.io/docs/part-1-deploy-a-smart-contract.md) - [Optional: Deploy a SeaDrop-compatible contract manually](https://docs.opensea.io/docs/deploying-a-seadrop-compatible-contract.md) - [Part 2: Edit collection settings](https://docs.opensea.io/docs/part-2-edit-collection-settings.md) - [Part 3: Upload metadata](https://docs.opensea.io/docs/part-3-upload-metadata.md) - [Part 4: Edit drop settings](https://docs.opensea.io/docs/part-4-edit-drop-settings.md) - [Part 5: Customize drop page](https://docs.opensea.io/docs/part-5-customize-drop-page.md) - [Part 6: Publish your drop](https://docs.opensea.io/docs/part-5-publish-your-drop.md) - [Drops FAQ](https://docs.opensea.io/docs/drops-faq.md) - [Mint from a drop programmatically](https://docs.opensea.io/docs/mint-from-a-drop.md): Build a custom mint experience using the OpenSea Drops API. - [Marketplace trading](https://docs.opensea.io/docs/marketplace-trading.md): Build marketplace flows for listings, offers, transfers, and swaps. - [Buy and sell NFTs](https://docs.opensea.io/docs/buy-and-sell-nfts.md): Buy and sell NFTs programmatically using the OpenSea SDK (@opensea/sdk). - [Collection offers and advanced trading](https://docs.opensea.io/docs/collection-offers-and-advanced-trading.md): Use collection offers, trait offers, bulk operations, and advanced order management. - [Transfer and manage NFTs](https://docs.opensea.io/docs/transfer-and-manage-nfts.md): Programmatically transfer, manage, and validate NFTs using the OpenSea SDK. - [Swap tokens](https://docs.opensea.io/docs/swap-tokens.md): Build a token swap using the OpenSea API and SDK. - [Data and events](https://docs.opensea.io/docs/data-and-events.md): Search OpenSea data, query analytics, and subscribe to marketplace events. - [Search and discovery](https://docs.opensea.io/docs/search-and-discovery.md): Build search and browse experiences using the OpenSea API and SDK. - [Query analytics and events](https://docs.opensea.io/docs/query-analytics-and-events.md): Build dashboards and analytics using OpenSea collection stats, trending data, and historical events. - [Stream real-time events](https://docs.opensea.io/docs/stream-real-time-events.md): Listen to marketplace events in real time using @opensea/sdk/stream. ## Docs: AI Agents - [Build with AI agents](https://docs.opensea.io/docs/build-with-ai-agents.md): Integrate OpenSea data and trading into AI agent workflows using MCP, Agent Skills, the CLI, and the SDK. - [Set up an onchain agent](https://docs.opensea.io/docs/set-up-an-onchain-agent.md): End-to-end guide to launching an AI agent with an LLM, an onchain wallet, and tools from opensea.io/tools. - [Agent accounts](https://docs.opensea.io/docs/agent-accounts.md): An agent is an OpenSea account, and ownership is a declaration two accounts confirm to each other. Declare one and run the handshake over the REST API. - [Agent tool registry (ERC-8257)](https://docs.opensea.io/docs/agent-tool-registry.md): Build, register, and gate AI agent tools onchain using the ERC-8257 Tool Registry. - [x402 micropayments](https://docs.opensea.io/docs/x402.md): Pay-per-call micropayments for AI agent tools using HTTP 402 and USDC. - [Tool manifest](https://docs.opensea.io/docs/tool-manifest.md): Full field reference for ERC-8257 tool manifests, including required and optional fields, display images, discovery tags, and examples. ## Docs: Marketplace - [OpenSea fees](https://docs.opensea.io/docs/opensea-fees.md) - [Offer leverage](https://docs.opensea.io/docs/offer-leverage.md) - [Creator fee enforcement](https://docs.opensea.io/docs/creator-fee-enforcement.md) ## Docs: Standards - [Metadata standards](https://docs.opensea.io/docs/metadata-standards.md): How to provide metadata for ERC-721 and ERC-1155 NFTs - [Media and traits](https://docs.opensea.io/docs/media-and-traits.md): Add media, display fields, and attributes to token metadata - [Metadata storage](https://docs.opensea.io/docs/metadata-storage.md): Choose where token metadata lives and how your contract returns it - [Updating metadata](https://docs.opensea.io/docs/updating-metadata.md): Notify OpenSea about metadata changes - [Locked and staked NFTs](https://docs.opensea.io/docs/locked-and-staked-nfts.md): Mark tokens as ineligible for trading while transfers are disabled - [Contract-level metadata](https://docs.opensea.io/docs/contract-level-metadata.md): Provide metadata for a token contract ## Docs: Protocol - [Seaport](https://docs.opensea.io/docs/seaport.md): An overview of the Seaport protocol and how it powers OpenSea. - [Models](https://docs.opensea.io/docs/seaport-models.md): This page enumerates the models used within Seaport. - [Interface](https://docs.opensea.io/docs/seaport-interface.md): Method definitions for the Seaport contract - [Enums](https://docs.opensea.io/docs/seaport-enums.md) - [Events and errors](https://docs.opensea.io/docs/seaport-events-and-errors.md) - [Conduit controller](https://docs.opensea.io/docs/seaport-conduit-controller.md) - [Seaport hooks](https://docs.opensea.io/docs/seaport-hooks.md) - [SeaDrop](https://docs.opensea.io/docs/seadrop.md): An overview of the SeaDrop protocol and how it is used for NFT Primary Drops. ## Docs: Brand Assets - [Logos](https://docs.opensea.io/docs/logos.md): These are official OpenSea resources that you can include on your marketing materials, webpage, and/or mobile application. ## API Endpoints: OpenSea API - [Overview](https://docs.opensea.io/reference/api-overview.md) - [API keys](https://docs.opensea.io/reference/api-keys.md) - [Authentication](https://docs.opensea.io/reference/auth.md) - [LLMs and agent discovery](https://docs.opensea.io/reference/llms-agent-discovery.md): Machine-readable endpoints for AI agents and LLMs to discover and interact with the OpenSea API. - [Data and discovery](https://docs.opensea.io/reference/data-and-discovery.md) - [Create an instant API key](https://docs.opensea.io/reference/create_instant_api_key.md): Creates a free-tier API key instantly without authentication. The key can be used immediately for all API endpoints. Keys expire after 7 days. - [Exchange a scoped token for an access token](https://docs.opensea.io/reference/exchange_scoped_token.md): Exchanges an opaque scoped token (personal access token) for a short-lived access token that satisfies `WalletAuth` on wallet-scoped endpoints. Send the returned `accessToken` as `Authorization:… - [Get supported chains](https://docs.opensea.io/reference/get_chains.md): Get all supported blockchain chains with metadata including name, native currency symbol, swap support, and block explorer information. - [Get an OpenSea account profile](https://docs.opensea.io/reference/get_account.md): Get an OpenSea Account Profile including details such as bio, social media usernames, and profile image. - [Resolve an account identifier](https://docs.opensea.io/reference/resolve_account.md): Resolve an ENS name (e.g. vitalik.eth), OpenSea username, or wallet address to canonical account info including address, username, and ENS name. The ENS path performs both forward resolution (name →… - [Get portfolio stats for an account](https://docs.opensea.io/reference/get_portfolio_stats.md): Get portfolio analytics including total value, NFT/token breakdown, and P&L for a wallet address over a given timeframe. - [Get portfolio net worth history for an account](https://docs.opensea.io/reference/get_portfolio_history.md): Get net worth time series data for a wallet address over a given timeframe. - [Get offers received by an account](https://docs.opensea.io/reference/get_profile_offers_received.md): Get a paginated list of offers received on items owned by a wallet address. - [Get active offers made by an account](https://docs.opensea.io/reference/get_profile_offers.md): Get a paginated list of active offers made by a wallet address. - [Get active listings for an account](https://docs.opensea.io/reference/get_profile_listings.md): Get a paginated list of active listings created by a wallet address. - [Get collections owned by an account](https://docs.opensea.io/reference/get_profile_collections.md): Get a paginated list of collections owned by a wallet address, with ownership data. - [Get trading P&L for an account](https://docs.opensea.io/reference/get_wallet_pnl.md): Get aggregated realized and unrealized trading profit and loss across all currencies held by a wallet address. Returns 200 with figures (which may be zero for a real but flat wallet) when OpenSea has… - [Get token transfers for a wallet's position in a currency](https://docs.opensea.io/reference/get_wallet_token_transfers.md): Get a paginated, transfer-level breakdown of a wallet's position in a single currency (identified by contract_address + chain). Combine `direction` and `transfer_type` to distinguish zero-cost… - [Get closed (realized) trading positions for an account](https://docs.opensea.io/reference/get_wallet_closed_positions.md): Get a paginated, per-trade breakdown of a wallet's realized P&L. Each closed position reflects FIFO (first-in, first-out) cost-basis lot matching. - [Get items favorited by an account](https://docs.opensea.io/reference/get_profile_favorites.md): Get a paginated list of items favorited by a wallet address. Requires wallet identity authentication; the requested address must belong to the authenticated account. - [Claim a profile username](https://docs.opensea.io/reference/claim_profile_username.md): Claim a username for the authenticated wallet. - [Upload a profile image](https://docs.opensea.io/reference/upload_profile_image.md): Set imageType to profile_picture for the avatar or banner_image for the profile banner. Set contentType to the exact MIME type of the image bytes; it must be an image type such as image/png,… - [Update profile settings](https://docs.opensea.io/reference/update_profile_settings.md): Update the authenticated wallet's profile settings. - [Get profile shelves](https://docs.opensea.io/reference/get_profile_shelves.md): Get the shelves for a public wallet address. - [Create a profile shelf](https://docs.opensea.io/reference/create_profile_shelf.md): Create a shelf for the authenticated wallet. - [Reorder profile shelves](https://docs.opensea.io/reference/reorder_profile_shelves.md): Reorder the authenticated wallet's shelves. - [Update a profile shelf](https://docs.opensea.io/reference/update_profile_shelf.md): Update shelf fields and optionally item descriptions. Shelf field updates are applied first; if a later item description update fails, earlier changes are not rolled back. - [Delete a profile shelf](https://docs.opensea.io/reference/delete_profile_shelf.md): Delete the authenticated wallet's shelf. - [Link a wallet to the authenticated account](https://docs.opensea.io/reference/link_wallet_with_siwx.md): Verify control of a wallet using a SIWX signature and link it to the authenticated account. - [Unlink a wallet from the authenticated account](https://docs.opensea.io/reference/unlink_wallet.md): Unlink a wallet from the authenticated account using a scoped wallet token. - [Add a watchlist entry](https://docs.opensea.io/reference/add_watchlist_entry.md): Add an NFT, token, collection, or perpetual to the authenticated account's watchlist. - [Remove a watchlist entry](https://docs.opensea.io/reference/remove_watchlist_entry.md): Remove an NFT, token, collection, or perpetual from the authenticated account's watchlist. - [Get tokens watched by an account](https://docs.opensea.io/reference/get_account_token_watchlist.md): Get the tokens watched by the authenticated account. Requires wallet identity authentication; the requested address must belong to the authenticated account. - [Get perpetuals watched by an account](https://docs.opensea.io/reference/get_account_perpetual_watchlist.md): Get the perpetual futures watched by the authenticated account. Requires wallet identity authentication; the requested address must belong to the authenticated account. - [Watch a followed profile](https://docs.opensea.io/reference/watch_account.md) - [Stop watching a profile](https://docs.opensea.io/reference/unwatch_account.md) - [Follow a profile](https://docs.opensea.io/reference/follow_account.md) - [Unfollow a profile](https://docs.opensea.io/reference/unfollow_account.md) - [Get the authenticated account's relationship with a profile](https://docs.opensea.io/reference/get_account_relationship.md) - [Get profiles followed](https://docs.opensea.io/reference/get_account_following.md): Returns the profiles followed by an address or username profile, including followed wallets. - [Get profile followers](https://docs.opensea.io/reference/get_account_followers.md) - [Set NFT profile picture](https://docs.opensea.io/reference/set_profile_nft_pfp.md): Set an onchain NFT owned by the authenticated wallet as its verified profile picture. The NFT must be from a verified collection and owned by one of the account's wallets. - [Clear NFT profile picture](https://docs.opensea.io/reference/clear_profile_nft_pfp.md): Clear the authenticated wallet's NFT profile picture. This operation is idempotent: it returns 200 with `success=false` when no NFT profile picture was set, and `success=true` when one was cleared. - [Make a registered wallet private](https://docs.opensea.io/reference/make_wallet_private.md): Hides the wallet's public account linkage, including agent ownership relationships. - [Make a registered wallet public](https://docs.opensea.io/reference/make_wallet_public.md): Allows the wallet's public account linkage, including eligible agent ownership relationships. - [Get public agent ownership relationships for a profile](https://docs.opensea.io/reference/get_agent_profile_relationships.md): Returns the account confirmed to own this one as its agent, and the accounts it is the confirmed owner of. Only relationships both accounts confirmed appear; a proposal one side has not accepted is… - [Declare the authenticated account an agent](https://docs.opensea.io/reference/declare_agent_account.md): Self-reported and not OpenSea verification. Independent of ownership: an agent nobody owns is valid. - [Withdraw the authenticated account's agent declaration](https://docs.opensea.io/reference/withdraw_agent_account_declaration.md) - [List the authenticated account's agent relationships](https://docs.opensea.io/reference/list_own_agent_relationships.md): Includes proposals still awaiting either party. Pending relationships appear here only; they are never shown on a public profile. Truncated to the 100 most recent confirmed relationships and the 50… - [Propose an agent ownership relationship](https://docs.opensea.io/reference/propose_agent_relationship.md): Both accounts must agree. Proposing a relationship that is already awaiting you confirms it, so a client that cannot tell who moved first can simply propose. - [Withdraw a proposal or revoke a confirmed agent relationship](https://docs.opensea.io/reference/revoke_agent_relationship.md): Either party may remove the relationship at any point. Addressed exactly as confirm is: `counterparty_account_id` or `counterparty_address`, one of the two, plus your own side. - [Confirm an agent relationship proposed to the authenticated account](https://docs.opensea.io/reference/confirm_agent_relationship.md): Name the other party by `counterparty_account_id`, from `agent_account_id` or `owner_account_id` on a listed relationship, or by `counterparty_address`. Prefer the account: the relationship is the… - [Get a single collection](https://docs.opensea.io/reference/get_collection.md): Get a single collection including details such as fees, traits, and links. - [Get multiple collections](https://docs.opensea.io/reference/list_collections.md): Get a list of collections with filters and sorting options. - [Get collection by NFT](https://docs.opensea.io/reference/get_nft_collection.md): Get the collection that an NFT belongs to. This is useful for multi-contract collections like Art Blocks where the item ID disambiguates which collection the NFT belongs to. - [Get collection traits](https://docs.opensea.io/reference/get_collection_traits.md): Get all available traits for a collection with their value counts and data types. - [Get trending collections](https://docs.opensea.io/reference/get_trending_collections.md): Get a list of trending NFT collections sorted by sales activity over a specified timeframe. Trending is determined by sales volume and activity metrics. Available timeframes range from 1 minute to… - [Get top collections](https://docs.opensea.io/reference/get_top_collections.md): Get top NFT collections ranked by various stats (sorted descending). Unlike /trending, results are not filtered by verification status; spam-tagged collections are excluded via trust-safety… - [Get collection offer aggregates](https://docs.opensea.io/reference/get_collection_offer_aggregates.md): Get aggregated offer buckets grouped by price level for a collection. - [Get collection holders](https://docs.opensea.io/reference/get_collection_holders.md): Get a paginated list of holders for a collection. - [Get collection floor price history](https://docs.opensea.io/reference/get_collection_floor_prices.md): Get time-series floor price data for a collection. - [Get collections by slugs](https://docs.opensea.io/reference/get_collections_batch.md): Retrieve multiple collections in a single request by providing a list of slugs. Results are returned in the same order as the input slugs. Not-found collections are silently omitted. - [Upload collection image](https://docs.opensea.io/reference/upload_collection_image.md): Set the content_type query parameter to the exact MIME type of the image bytes. This response starts a three-step upload flow. First, request this context from OpenSea. Second, call the returned… - [Modify collection metadata](https://docs.opensea.io/reference/modify_collection.md): Update an existing collection's metadata. - [Set collection visibility](https://docs.opensea.io/reference/set_collection_visibility.md): Hide or unhide a collection. Only the collection owner can change visibility. A collection whose minted tokens are held by more than one wallet cannot be hidden; the request fails with 400 and says… - [Update collection metadata](https://docs.opensea.io/reference/update_collection_metadata.md): Update collection about, hero, overview, and logo image metadata. Only the collection owner or an authorized editor can update it; anyone else gets 403. The update applies in full or not at all: a… - [Get trait floor prices](https://docs.opensea.io/reference/get_collection_trait_floors.md): Get the cheapest active listing for every trait value in a collection, in one request. Trait values with no active listing are omitted. Results are ordered by trait type, then value, then price.… - [Refresh collection metadata](https://docs.opensea.io/reference/refresh_collection_metadata.md): Queue a re-read of the collection's contract-level metadata, such as the name, description and image from contractURI(). Items with missing metadata are refetched too; to refresh one item use POST… - [Set collection pricing currency](https://docs.opensea.io/reference/set_collection_pricing_currency.md): Choose whether a collection's secondary sales are priced in the chain's USD stablecoin or in its native currency. On Robinhood Chain collections default to USDG; send use_stablecoin false to price in… - [Upload collection page media](https://docs.opensea.io/reference/upload_collection_page_media.md): Upload an image or an MP4 video for the collection page: the hero (8:3 on desktop, 16:9 on mobile), about, narrative, content block and team sections. Set the content_type query parameter to the… - [Get creator fee enforcement](https://docs.opensea.io/reference/get_creator_fee_enforcement.md): Whether creator fees are enforced onchain for a collection through a transfer validator (ERC721-C), and whether its contract supports turning that on. - [Build creator fee enforcement transactions](https://docs.opensea.io/reference/build_creator_fee_enforcement_transactions.md): Build the transactions that turn creator fee enforcement on or off for a collection, for the owner to sign and send. Turning it on sets OpenSea's transfer validator on the contract (the Creator… - [Get collection page metadata](https://docs.opensea.io/reference/get_collection_metadata.md): Read back the hero, about and overview content saved by PATCH /api/v2/collections/{slug}/metadata, including for a drop that is not published yet. Only the collection owner or an authorized editor… - [Get NFT](https://docs.opensea.io/reference/get_nft.md): Get metadata, traits, ownership information, and rarity for a single NFT. - [Get NFT metadata](https://docs.opensea.io/reference/get_nft_metadata.md): Get detailed metadata for an NFT including name, description, image, traits, and external links. - [Get NFTs by collection](https://docs.opensea.io/reference/get_nfts_by_collection.md): Get NFTs in a specific collection. Optionally filter by traits using the 'traits' query parameter with a JSON array of trait filters. Multiple traits are AND-combined (items must match all specified… - [Get NFTs by account](https://docs.opensea.io/reference/get_nfts_by_account.md): Get all NFTs owned by a specific account on a blockchain, with optional collection filtering. - [Get NFTs by contract](https://docs.opensea.io/reference/get_nfts_by_contract.md): Get all NFTs for a specific contract address on a blockchain. - [Validate NFT metadata](https://docs.opensea.io/reference/validate_nft_metadata.md): Fetch and validate NFT metadata directly from the blockchain without using cached data. Returns both original and processed (SeaDN) URLs to show how the metadata would be ingested. This endpoint does… - [Refresh NFT metadata](https://docs.opensea.io/reference/refresh_nft_metadata.md): Queue a metadata refresh for a specific NFT to update its information from the blockchain. - [Transfer NFTs or tokens between wallets](https://docs.opensea.io/reference/transfer_assets.md): Returns ordered blockchain actions to execute for transferring one or more NFTs or tokens from one wallet to another. Supports bulk transfers of multiple assets in a single request. - [Get NFT owners](https://docs.opensea.io/reference/get_nft_owners.md): Get a paginated list of owners for a specific NFT. Particularly useful for ERC-1155 tokens which can have multiple owners. - [Get NFT analytics](https://docs.opensea.io/reference/get_nft_analytics.md): Get analytics data for a specific NFT including sales history and floor price history. - [Get NFTs by identifiers](https://docs.opensea.io/reference/get_nfts_batch.md): Retrieve multiple NFTs in a single request by providing a list of identifiers (chain, contract address, and token ID). Not-found NFTs are silently omitted from the response. - [Get contract](https://docs.opensea.io/reference/get_contract.md): Get contract metadata including collection information, contract standards, and ownership details. - [Get payment token](https://docs.opensea.io/reference/get_payment_token.md): Get a payment token by chain and contract address. - [Get token details](https://docs.opensea.io/reference/get_token.md): Get detailed information about a specific token by chain and contract address. - [Get token balances by account](https://docs.opensea.io/reference/get_token_balances_by_account.md): Get fungible token balances for a specific wallet address. Returns quantity (in display units, not raw/wei), USD value, and token metadata for each token held. - [Get trending tokens](https://docs.opensea.io/reference/get_trending_tokens.md): Get trending tokens based on OpenSea's trending score algorithm. Returns tokens with high momentum including memecoins and newly popular assets. Pass `sort_by` and `sort_direction` to order the same… - [Get top tokens](https://docs.opensea.io/reference/get_top_tokens.md): Get top tokens ranked by 24-hour trading volume. Returns established tokens with high market activity. Pass `sort_by` and `sort_direction` to order the same set of tokens differently. - [Get token groups](https://docs.opensea.io/reference/get_token_groups.md): Get a paginated list of token groups sorted by market cap descending. Token groups represent equivalent currencies across different blockchains (e.g., ETH on Ethereum, Base, and Arbitrum are all in… - [Get a token group by slug](https://docs.opensea.io/reference/get_token_group.md): Get detailed information about a specific token group by its slug identifier. - [Get token price history](https://docs.opensea.io/reference/get_token_price_history.md): Get historical price data for a specific token. - [Get token OHLCV candles](https://docs.opensea.io/reference/get_token_ohlcv.md): Get OHLCV (Open, High, Low, Close, Volume) candlestick data for a specific token. - [Get token swap activity](https://docs.opensea.io/reference/get_token_activity.md): Get paginated swap activity for a specific token on a given chain. - [Get tokens by contract identifiers](https://docs.opensea.io/reference/get_tokens_batch.md): Retrieve multiple tokens in a single request by providing a list of contract identifiers (chain and address). Not-found tokens are silently omitted from the response. - [Get token liquidity pools](https://docs.opensea.io/reference/get_token_liquidity_pools.md): Get liquidity pools for a specific token. - [Get token holders](https://docs.opensea.io/reference/get_token_holders.md): Get paginated list of holders for a specific token, including quantity held and USD value. - [Get account token activity](https://docs.opensea.io/reference/get_account_token_activity.md): Get paginated fungible token activity (transfers, swaps, wraps, and unwraps) for an account across all chains. Optionally filter by chain, token, and/or activity type. - [Get token trading activity stats](https://docs.opensea.io/reference/get_token_activity_stats.md): Get materialized trade count, USD volume, and average trade size for a token. Windows with no swaps are omitted; an omitted requested key means zero trades in that window. Each window ends at its own… - [Search across OpenSea](https://docs.opensea.io/reference/search.md): Search across collections, tokens, NFTs, and accounts. Results are ranked by relevance. - [[Beta] Get a registered tool](https://docs.opensea.io/reference/get_tool.md): [Beta] Get a registered tool by its composite key: registry chain, registry address, and tool ID. Includes pricing recipients and NFT collection info for gated tools. This endpoint is under active… - [[Beta] Search registered tools](https://docs.opensea.io/reference/search_tools.md): [Beta] Search for verified registered tools by name, tags, creator, or other criteria. This endpoint is under active development and may change without notice. - [[Beta] List registered tools](https://docs.opensea.io/reference/list_tools.md): [Beta] List verified registered tools with optional sorting and filtering. This endpoint is under active development and may change without notice. - [[Beta] Report tool usage (metrics only)](https://docs.opensea.io/reference/report_tool_usage.md): [Beta] Report verified tool usage for metrics and analytics purposes only. Supports verification_type: eip3009_authorization (free tools, identity proof) or x402_settlement (paid tools, onchain USDC… - [[Beta] Get activity for a registered tool](https://docs.opensea.io/reference/get_tool_activity.md): [Beta] Returns merged x402 payment events and usage reports for a tool, deduplicated by transaction hash. Each event includes an attribution field indicating confidence level. This endpoint is under… - [[Beta] List saved tools](https://docs.opensea.io/reference/list_saved_tools.md): List tools saved by the authenticated account. - [[Beta] Save a tool](https://docs.opensea.io/reference/save_tool.md): Save a registered tool for the authenticated account. - [[Beta] Remove a saved tool](https://docs.opensea.io/reference/unsave_tool.md): Idempotently remove a registered tool from the authenticated account's saved tools. Removed is false when the tool was already absent. - [Marketplace and trading](https://docs.opensea.io/reference/marketplace-and-trading.md) - [Create a listing](https://docs.opensea.io/reference/post_listing.md): List a single NFT (ERC721 or ERC1155) for sale on the OpenSea marketplace. - [Fulfill a listing](https://docs.opensea.io/reference/generate_listing_fulfillment_data_v2.md): Retrieve all the information, including signatures, needed to fulfill a listing directly onchain. - [Fulfill a listing using a different token](https://docs.opensea.io/reference/generate_cross_chain_listing_fulfillment_data.md): Get fulfillment data to buy one or more listings using a token on a different chain or a different token on the same chain. Supports cross-chain purchases and same-chain token swaps via the Relay… - [Get best listing by NFT](https://docs.opensea.io/reference/get_best_listing_nft.md): Get the best listing for an NFT. - [Get best listings by collection](https://docs.opensea.io/reference/get_best_listings_collection.md): Get the best listings for a collection sorted by price ascending. Optionally filter by item traits using the 'traits' query parameter with a JSON array of trait filters. Multiple traits are… - [Get all listings by collection](https://docs.opensea.io/reference/list_listings_collection_all.md): Get all listings for a collection. - [Sweep buy items from a collection](https://docs.opensea.io/reference/sweep_collection.md): Buy up to N items from a collection using any payment token, including cross-chain. If a requested item becomes unavailable, the system can automatically substitute it with the next cheapest listing… - [Get listing creation actions](https://docs.opensea.io/reference/create_listing_actions.md): Returns the blockchain actions (approvals + Seaport order signing payload) needed to list one or more NFTs. This eliminates the need to construct Seaport orders manually. - [Get listing fulfillment actions](https://docs.opensea.io/reference/create_listing_fulfillment_actions.md): Returns the blockchain actions needed to fulfill a listing, for listings that cannot be fulfilled with Seaport calldata. A Solana listing is always fulfilled this way, because it settles through an… - [Build a criteria offer](https://docs.opensea.io/reference/build_offer_v2.md): Build a portion of a criteria offer including the consideration item, zone, and zone hash needed to post an offer. For trait offers on supported collections, the identifierOrCriteria in the returned… - [Create a criteria offer](https://docs.opensea.io/reference/post_criteria_offer_v2.md): Create a criteria offer to purchase any NFT in a collection or which matches the specified trait. For trait offers where the Build Offer endpoint returns identifierOrCriteria '0', use that value… - [Create an item offer](https://docs.opensea.io/reference/post_offer.md): Create an offer to purchase a single NFT (ERC721 or ERC1155). - [Fulfill an offer](https://docs.opensea.io/reference/generate_offer_fulfillment_data_v2.md): Retrieve all the information, including signatures, needed to fulfill an offer directly onchain. For trait offers with identifierOrCriteria '0', the server validates that the specified token matches… - [Get best offer by NFT](https://docs.opensea.io/reference/get_best_offer_nft.md): Get the best offer for an NFT. - [Get offers by collection](https://docs.opensea.io/reference/get_offers_collection.md): Get collection offers on a collection. - [Get trait offers for a collection](https://docs.opensea.io/reference/get_offers_collection_trait.md): Get trait offers for a collection. Use the `mode` parameter to select the bid category. **Single string trait:** `?mode=STRING&type=Background&value=Red` **Multiple string traits:**… - [Get offers by NFT](https://docs.opensea.io/reference/get_offers_nft.md): Get offers for an NFT. - [Get all offers by collection](https://docs.opensea.io/reference/list_offers_collection_all.md): Get all offers for a collection. - [Get offer fulfillment actions](https://docs.opensea.io/reference/create_offer_fulfillment_actions.md): Returns the blockchain actions a seller needs to accept an offer, for offers that cannot be accepted with Seaport calldata. A Solana offer is always accepted this way, because it settles through an… - [Get offer creation actions](https://docs.opensea.io/reference/create_offer_actions.md): Returns the blockchain actions needed to offer on an NFT, the offer-side counterpart of the listing actions endpoint. On EVM chains these are payment approvals followed by a Seaport order to sign,… - [Get an order](https://docs.opensea.io/reference/get_order.md): Get a single order by its order hash. - [Cancel an order](https://docs.opensea.io/reference/cancel_order.md): Offchain cancel a single order, offer or listing, by its order hash when protected by the SignedZone. Protocol and Chain are required to prevent hash collisions. An offchain cancel stops OpenSea from… - [Get order cancellation actions](https://docs.opensea.io/reference/create_cancel_order_actions.md): Returns the blockchain actions needed to cancel an order onchain, for orders that cannot be cancelled offchain through the cancel endpoint. A Solana order is always cancelled this way, because it… - [Get swap quote](https://docs.opensea.io/reference/get_swap_quote.md): Get a quote for swapping tokens, including price details and executable transaction data. - [Execute a token swap](https://docs.opensea.io/reference/post_swap_execute.md): Get executable transactions for token-to-token swaps. Supports same-chain and cross-chain swaps with multiple from/to assets. - [Build mint transaction data for a drop](https://docs.opensea.io/reference/build_drop_mint_transaction.md): Returns ready-to-sign transaction data for minting tokens from a drop. The caller is responsible for signing and submitting the transaction. No wallet authentication is required, only an API key. The… - [Get drops](https://docs.opensea.io/reference/get_drops.md): Get a list of NFT drops (mints) by type: featured, upcoming, or recently_minted. Results may be fewer than the requested limit due to post-fetch filtering. - [Get drop by collection slug](https://docs.opensea.io/reference/get_drop_by_slug.md): Get detailed drop information for a collection, including stages and supply. `stages` is in the order the drop stores them, not sorted by start time. For a drop saved through POST… - [Build deploy contract transaction data](https://docs.opensea.io/reference/deploy_drop_contract.md): Returns a ready-to-sign transaction that deploys a new drop contract. Sign and send it from `sender`, which the response repeats as `from`; that wallet owns the contract. Deployable `drop_type` and… - [Get deploy contract receipt](https://docs.opensea.io/reference/get_deploy_contract_receipt.md): Check the status of a contract deployment transaction. Returns the deployment status and, on success, the deployed contract address and linked collection slug. Poll while the status is pending.… - [Build transaction data for updating a SelfMint drop item](https://docs.opensea.io/reference/update_self_mint_drop_item.md): Changes an existing self-mint token's metadata and returns the ready-to-sign transaction that points the contract's base URI at the regenerated metadata. It does not change the token's supply. A… - [Update drop item](https://docs.opensea.io/reference/update_drop_item.md): Saves new metadata for one existing item and returns the updated item. It returns no transaction. A token id that does not exist on the drop returns 404. On an ERC-721 SeaDrop V1 drop that is… - [Update Creator Studio drop edits](https://docs.opensea.io/reference/save_drop_edits.md): Update an existing ERC-721 SeaDrop V1 drop and its stages. Only the collection owner can call it, and any other drop type returns 400. Saves a Creator Studio draft. It does not change the live drop:… - [Save prereveal drop item](https://docs.opensea.io/reference/save_prereveal_drop_item.md): Sets the placeholder every token shows until the drop is revealed: one name, description, and image, from a media_token issued by POST /api/v2/drops/{slug}/items/media. It saves a placeholder base… - [Build transaction data for creating a SelfMint drop item](https://docs.opensea.io/reference/save_self_mint_drop_item.md): Creates one item on an ERC-1155 self-mint drop and returns the ready-to-sign transaction that puts it onchain. Any other drop type returns 400. An ERC-1155 self-mint drop has no stages, publish… - [Upload drop item media](https://docs.opensea.io/reference/upload_drop_item_media.md): This response starts a three-step upload flow. First, request this context from OpenSea. Second, call the returned method at the returned URL. For POST, add every fields entry unchanged as a… - [Save drop item media](https://docs.opensea.io/reference/save_drop_item_media.md): Deprecated: use POST /api/v2/drops/{slug}/items/media/save-batch, which saves the same items by upload_batch_id and filename. This operation keeps working, but sends every media token back and checks… - [Upload drop allowlist](https://docs.opensea.io/reference/upload_drop_allowlist.md): The file is CSV with one wallet per line: an EVM address, optionally followed by that wallet's mint limit and its mint price in the chain's native currency, in that order and separated by commas,… - [Validate drop allowlist](https://docs.opensea.io/reference/validate_drop_allowlist.md): Checks an allowlist uploaded with the context from POST /api/v2/drops/{slug}/allowlist, without saving anything, and returns the token to put in a `signed_presale` stage's `allowlist_file_token` in… - [Get drop eligibility for the authenticated wallet](https://docs.opensea.io/reference/get_drop_eligibility.md): Returns per-stage eligibility for the authenticated wallet, including pricing and mint limits. - [Build cross-chain mint transactions for a drop](https://docs.opensea.io/reference/build_cross_chain_drop_mint_transactions.md): Returns an ordered list of transactions for minting a drop using a token on another chain. The payer signs each transaction in order, and the minter receives the NFT. After submission, pass… - [Build unpublish transaction data for a drop](https://docs.opensea.io/reference/build_drop_unpublish_transaction.md): Returns a ready-to-sign transaction that closes a live ERC-721 SeaDrop V1 drop by replacing its stages with one that has already ended. Only the collection owner can call this endpoint, and the… - [Build publish transaction data for a drop](https://docs.opensea.io/reference/build_drop_publish_transaction.md): Returns a ready-to-sign transaction that applies the drop's saved edits onchain: stages, supply, base URI, payout, and the OpenSea signer, fee recipient, and payers the drop needs. Every value is… - [Upload drop metadata to IPFS](https://docs.opensea.io/reference/upload_drop_metadata_to_ipfs.md): Uploads every saved item's media and metadata to IPFS, then saves the resulting folder as the drop's draft base URI. Run it after POST /api/v2/drops/{slug}/items/media/save; the drop needs at least… - [Upload drop metadata manifest](https://docs.opensea.io/reference/upload_drop_collection_manifest.md): The file is a CSV describing every item in the drop, one row per uploaded media file. Required columns are tokenID, name, description, and file_name, where file_name matches the filename passed to… - [Get drop IPFS metadata upload progress](https://docs.opensea.io/reference/get_drop_metadata_ipfs_progress.md): Progress of an upload started by POST /api/v2/drops/{slug}/metadata/ipfs. Poll every 15 seconds or slower while status is running. - [Save drop item media from an upload batch](https://docs.opensea.io/reference/save_drop_item_media_batch.md): Saves the drop's items from files uploaded with one upload_batch_id through POST /api/v2/drops/{slug}/items/media, naming them by filename instead of by media token. The request stays small for large… - [List drop items](https://docs.opensea.io/reference/list_drop_items.md): List the items saved to a drop, including a draft drop that is not published yet. Use it to check what an upload saved. Only the collection owner or an authorized editor can list them. - [Get transaction receipt](https://docs.opensea.io/reference/get_transaction_receipt.md): Get the receipt/status for a submitted transaction. Works for all transaction types including listing fulfillments, cross-chain buys, sweeps, offer fulfillments, and token swaps. Poll this endpoint… - [Analytics and events](https://docs.opensea.io/reference/analytics-and-events.md) - [Get collection stats](https://docs.opensea.io/reference/get_collection_stats.md): Get statistics for a collection including volume, floor price, and trading metrics. Each currency-denominated figure carries its own symbol: volume is reported in the currency named by volume_symbol,… - [Get events (by collection)](https://docs.opensea.io/reference/list_events_by_collection.md): Get a list of events for a collection. Optionally filter by traits to only return events for items matching the specified trait criteria. - [Get events](https://docs.opensea.io/reference/list_events.md): Get a list of events, with optional filtering by event type and time range. - [Get events (by NFT)](https://docs.opensea.io/reference/list_events_by_nft.md): Get a list of events for a specific NFT. - [Get events (by account)](https://docs.opensea.io/reference/list_events_by_account.md): Get a list of events for an account. ## API Endpoints: SDKs & Tools - [Overview](https://docs.opensea.io/reference/sdks-overview.md): Open-source SDKs and tools for building on the OpenSea API. Each package is maintained in its own GitHub repository with full documentation. - [TypeScript SDK](https://docs.opensea.io/reference/opensea-sdk.md): TypeScript SDK for creating listings, making offers, fulfilling orders, and querying NFT data via the Seaport protocol. Supports both ethers.js and viem. - [Stream API](https://docs.opensea.io/reference/stream-api.md): Receive real-time marketplace events over WebSocket using the OpenSea Stream API and the @opensea/sdk/stream client. - [CLI](https://docs.opensea.io/reference/opensea-cli.md): Query the OpenSea API from the command line or programmatically with @opensea/cli. Designed for both AI agents and developers. - [MCP server](https://docs.opensea.io/reference/mcp.md): Connect your AI tools to OpenSea using the Model Context Protocol (MCP), an open standard that lets AI assistants interact with NFTs, tokens, and blockchain data across multiple chains. - [Agent skill](https://docs.opensea.io/reference/agent-skill.md): Enable AI coding assistants to interact with OpenSea using the Agent Skill, a modular knowledge and tooling package for AI agents. ## Pages - [Model Reference](https://docs.opensea.io/page/model-reference.md) ## Announcements - [Wallet authentication for REST and MCP](https://docs.opensea.io/changelog/wallet-authentication-for-rest-and-mcp.md) - [New API Endpoints](https://docs.opensea.io/changelog/new-api-endpoints.md) - [Removing deprecated REST API endpoints and response fields](https://docs.opensea.io/changelog/removing-deprecated-rest-api-endpoints-and-response-fields.md) - [OpenSea Fee Update](https://docs.opensea.io/changelog/opensea-fee-update.md) - [Ronin OpenSea Marketplace Fee Update](https://docs.opensea.io/changelog/ronin-opensea-marketplace-fee-update.md) - [Offer Precision Changes](https://docs.opensea.io/changelog/api-changes.md) - [New Offchain Cancel Order API and List Collections `Order By` Option](https://docs.opensea.io/changelog/new-offchain-cancel-order-api-and-list-collections-order-by-option.md) - [Now Accepting Seaport v1.6 Orders](https://docs.opensea.io/changelog/seaport-v1-6.md) - [12.22.2023 Updates](https://docs.opensea.io/changelog/12222023-updates.md) - [12.12.2023 Updates](https://docs.opensea.io/changelog/12122023-updates.md)