OpenSea Drops Endpoints API
Endpoints for discovering drops, checking mint eligibility, and building mint transactions
Endpoints for discovering drops, checking mint eligibility, and building mint transactions
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/opensea-drops-endpoints-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.1.0
info:
title: OpenSea Account Endpoints Drops Endpoints API
description: The API for OpenSea
contact:
name: OpenSea
url: https://www.opensea.io
email: contact@opensea.io
version: 2.0.0
servers:
- url: https://api.opensea.io
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Drops Endpoints
description: Endpoints for discovering drops, checking mint eligibility, and building mint transactions
paths:
/api/v2/drops/{slug}/mint:
post:
tags:
- Drops Endpoints
summary: Build mint transaction data for a drop
description: 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 minter address in the request body determines who will receive the tokens. Stage selection is handled automatically by the backend — if multiple stages are active, the first eligible stage is used.
operationId: build_drop_mint_transaction
parameters:
- name: slug
in: path
description: The collection slug identifying the drop
required: true
schema:
type: string
example: boredapeyachtclub
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DropMintRequest'
required: true
responses:
'200':
description: Ready-to-sign transaction data including target contract, calldata, and value
content:
'*/*':
schema:
$ref: '#/components/schemas/DropMintResponse'
'400':
description: 'Invalid request: bad address format, invalid quantity, or missing required fields'
content:
'*/*':
schema:
$ref: '#/components/schemas/V1ErrorWrapper'
'404':
description: Drop or collection not found for the given slug
content:
'*/*':
schema:
$ref: '#/components/schemas/V1ErrorWrapper'
'409':
description: Drop is not currently active for minting (not started, ended, or paused)
content:
'*/*':
schema:
$ref: '#/components/schemas/V1ErrorWrapper'
'422':
description: 'Minting precondition failed: wallet not in allowlist, mint limit exceeded, or supply exhausted'
content:
'*/*':
schema:
$ref: '#/components/schemas/V1ErrorWrapper'
'500':
$ref: '#/components/responses/InternalError'
/api/v2/drops/deploy:
post:
tags:
- Drops Endpoints
summary: Build deploy contract transaction data
description: Returns ready-to-sign transaction data for deploying a new NFT drop contract. The caller is responsible for signing and submitting the transaction.
operationId: deploy_drop_contract
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DropDeployRequest'
required: true
responses:
'200':
description: Ready-to-sign transaction data for contract deployment
content:
'*/*':
schema:
$ref: '#/components/schemas/DropDeployResponse'
'400':
description: 'Invalid request: unsupported drop_type/token_type combination, bad address format, or missing required fields'
content:
'*/*':
schema:
$ref: '#/components/schemas/V1ErrorWrapper'
'500':
$ref: '#/components/responses/InternalError'
/api/v2/drops:
get:
tags:
- Drops Endpoints
summary: Get drops
description: '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.'
operationId: get_drops
parameters:
- name: type
in: query
description: 'Drop calendar type: featured, upcoming, or recently_minted'
required: false
schema:
type: string
default: featured
example: featured
- name: limit
in: query
description: 'Number of results to return (1-100, default: 20)'
required: false
schema:
type: integer
format: int32
default: 20
example: 20
- name: chains
in: query
description: Comma-separated list of chains to filter by (e.g. ethereum, base). Omit to return drops on all chains.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/ChainIdentifier'
example: ethereum,base
- name: cursor
in: query
description: Pagination cursor for next page
required: false
schema:
type: string
responses:
'200':
description: Paginated list of drops
content:
'*/*':
schema:
$ref: '#/components/schemas/DropPaginatedResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalError'
/api/v2/drops/{slug}:
get:
tags:
- Drops Endpoints
summary: Get drop by collection slug
description: Get detailed drop information for a collection, including stages and supply.
operationId: get_drop_by_slug
parameters:
- name: slug
in: path
description: Collection slug
required: true
schema:
type: string
example: cool-cats
responses:
'200':
description: Detailed drop information
content:
'*/*':
schema:
$ref: '#/components/schemas/DropDetailedResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
/api/v2/drops/deploy/{chain}/{tx_hash}/receipt:
get:
tags:
- Drops Endpoints
summary: Get deploy contract receipt
description: Check the status of a contract deployment transaction. Returns the deployment status and, on success, the deployed contract address and linked collection slug.
operationId: get_deploy_contract_receipt
parameters:
- name: chain
in: path
description: Chain slug (e.g. ethereum, base)
required: true
schema:
type: string
example: ethereum
- name: tx_hash
in: path
description: Transaction hash of the deployment transaction
required: true
schema:
type: string
example: 0xabc123...
responses:
'200':
description: Deployment receipt status
content:
'*/*':
schema:
$ref: '#/components/schemas/DropDeployReceiptResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalError'
components:
schemas:
DropDeployResponse:
type: object
description: Ready-to-sign deploy contract transaction data
properties:
to:
type: string
description: Transaction target contract address
data:
type: string
description: Encoded transaction data (hex)
value:
type: string
description: Transaction value in wei (hex)
chain:
type: string
description: Chain identifier
required:
- chain
- data
- to
- value
DropMintRequest:
type: object
description: Mint request parameters
properties:
minter:
type: string
description: Wallet address that will receive the minted tokens
example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
minLength: 1
quantity:
type: integer
format: int32
description: Number of tokens to mint
example: 1
maximum: 100
minimum: 1
required:
- minter
- quantity
DropPaginatedResponse:
type: object
description: Paginated list of drops
properties:
drops:
type: array
description: List of drops
items:
$ref: '#/components/schemas/DropResponse'
next:
type: string
description: Cursor for the next page. May be present even when drops is empty if all items in the page were filtered by visibility rules; continue paginating until next is null.
required:
- drops
DropResponse:
type: object
description: Summary of an NFT drop
properties:
collection_slug:
type: string
description: Collection slug
example: cool-cats
collection_name:
type: string
description: Collection name
example: Cool Cats
chain:
type: string
description: Blockchain the drop is on
example: ethereum
contract_address:
type: string
description: Contract address
drop_type:
type: string
description: Drop type
example: seadrop_v1_erc721
is_minting:
type: boolean
description: Whether the drop is currently minting
image_url:
type: string
description: Collection image URL
opensea_url:
type: string
description: OpenSea URL for the drop
active_stage:
$ref: '#/components/schemas/DropStageResponse'
description: The currently-minting stage, if the drop is live. Null if not minting.
next_stage:
$ref: '#/components/schemas/DropStageResponse'
description: The earliest upcoming stage by start_time when the drop is not currently minting (e.g. before it starts or between stages). Null if the drop is live or has no future stages.
required:
- chain
- collection_slug
- contract_address
- drop_type
- is_minting
- opensea_url
V1ErrorWrapper:
type: object
properties:
errors:
type: array
items:
type: string
required:
- errors
DropStageResponse:
type: object
description: A mint stage within a drop
properties:
uuid:
type: string
description: Stage UUID
stage_type:
type: string
description: Stage type
example: public_sale
label:
type: string
description: Stage label/name
price:
type: string
description: Mint price per token in wei (decimal string)
price_currency_address:
type: string
description: Currency contract address (e.g. 0x0000...0000 for native token)
start_time:
type: string
description: Stage start time (ISO 8601)
end_time:
type: string
description: Stage end time (ISO 8601)
max_per_wallet:
type: string
description: Max tokens mintable per wallet in this stage
required:
- end_time
- max_per_wallet
- price_currency_address
- stage_type
- start_time
- uuid
ChainIdentifier:
type: string
default: ethereum
description: Blockchain chain identifier. Use the chain slug (e.g., 'ethereum', 'polygon', 'arbitrum', 'optimism', 'base')
enum:
- blast
- base
- ethereum
- zora
- arbitrum
- sei
- avalanche
- polygon
- optimism
- ape_chain
- flow
- b3
- soneium
- ronin
- bera_chain
- solana
- shape
- unichain
- gunzilla
- abstract
- animechain
- hyperevm
- somnia
- monad
- hyperliquid
- megaeth
- ink
example: ethereum
DropDeployReceiptResponse:
type: object
description: Deploy contract receipt status
properties:
status:
type: string
description: 'Deployment status: pending, success, or failed'
example: success
contract_address:
type: string
description: Deployed contract address (only present on success)
chain:
type: string
description: Chain slug (only present on success)
collection_slug:
type: string
description: Linked collection slug (only present on success, may take time to materialize)
required:
- status
DropMintResponse:
type: object
description: Ready-to-sign mint transaction data
properties:
to:
type: string
description: Transaction target contract address
data:
type: string
description: Encoded transaction data (hex)
value:
type: string
description: Transaction value in wei (hex)
chain:
type: string
description: Chain identifier
required:
- chain
- data
- to
- value
DropDeployRequest:
type: object
description: Deploy contract request parameters
properties:
chain:
type: string
description: Chain slug (e.g. "ethereum", "base")
example: ethereum
minLength: 1
contract_name:
type: string
description: Name for the new contract
example: My NFT Collection
minLength: 1
contract_symbol:
type: string
description: Symbol for the new contract
example: MNFT
minLength: 1
drop_type:
type: string
description: Drop type (see validation error for supported values)
example: seadrop_v1_erc721
minLength: 1
token_type:
type: string
description: Token type (see validation error for supported values)
example: erc721_standard
minLength: 1
sender:
type: string
description: Deployer wallet address
example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
minLength: 1
required:
- chain
- contract_name
- contract_symbol
- drop_type
- sender
- token_type
DropDetailedResponse:
type: object
description: Detailed drop information including stages and supply
properties:
collection_slug:
type: string
description: Collection slug
example: cool-cats
collection_name:
type: string
description: Collection name
example: Cool Cats
chain:
type: string
description: Blockchain the drop is on
example: ethereum
contract_address:
type: string
description: Contract address
drop_type:
type: string
description: Drop type
example: seadrop_v1_erc721
is_minting:
type: boolean
description: Whether the drop is currently minting
image_url:
type: string
description: Collection image URL
opensea_url:
type: string
description: OpenSea URL for the drop
active_stage:
$ref: '#/components/schemas/DropStageResponse'
description: The currently-minting stage, if the drop is live. Null if not minting.
next_stage:
$ref: '#/components/schemas/DropStageResponse'
description: The earliest upcoming stage by start_time when the drop is not currently minting (e.g. before it starts or between stages). Null if the drop is live or has no future stages.
stages:
type: array
description: Drop stages (public sale, presale, etc.)
items:
$ref: '#/components/schemas/DropStageResponse'
total_supply:
type: string
description: Total minted supply
max_supply:
type: string
description: Maximum supply
required:
- chain
- collection_slug
- contract_address
- drop_type
- is_minting
- opensea_url
- stages
responses:
InternalError:
description: Internal server error. Please open a support ticket so OpenSea can investigate.
NotFound:
description: Resource not found
BadRequest:
description: For error reasons, review the response data.
securitySchemes:
ApiKeyAuth:
type: apiKey
description: API key required for authentication
name: x-api-key
in: header
x-tagGroups:
- name: Data & Discovery
tags:
- Chain Endpoints
- Account Endpoints
- Collection Endpoints
- NFT Endpoints
- Contract Endpoints
- Token Endpoints
- Search Endpoints
- name: Marketplace & Trading
tags:
- Listing Endpoints
- Offer Endpoints
- Order Endpoints
- Swap Endpoints
- Drops Endpoints
- name: Analytics & Events
tags:
- Analytics Endpoints
- name: Tools [Beta]
tags:
- Tool Endpoints [Beta]
- name: Transactions
tags:
- Transaction Endpoints