Python wrapper for the OpenSea API
Last updated Apr 28, 2026
176
Stars
35
Forks
7
Issues
0
Stars/day
Attention Score
56
Language breakdown
No language data available.
▸ Files
click to expand
README
OpenSea NFT API Python 3 wrapper
This an API wrapper library for the OpenSea API written in Python 3.The library provides a simplified interface to fetch a diverse set of NFT data points from OpenSea.
Supported endpoints
The wrapper covers the following OpenSea API endpoints:- Single asset (/asset)
- Single asset contract (/assetcontract)
- Single collection (/collection)
- Collection stats (/collection/{slug}/stats)
- Multiple assets] (/assets)
- Multiple collections (/collections)
- Multiple events (/events)
- Multiple bundles (/bundles)
- Asset listings (/asset/{assetcontractaddress}/{tokenid}/listings)
- Asset offers (/asset/{assetcontractaddress}/{tokenid}/offers)
Prerequisite
You need to have an API key to use the OpenSea API, and thus you need one to use this wrapper too. You can request a key here.NOTE: The API key can take over 4-7 days to be delivered. It also requires you to show the project you are working on.
Installation
Install with pip:virtualenv env && source env/bin/activate
pip install opensea-api
Upgrade
pip install opensea-api -U
Usage examples
# import the OpenseaAPI object from the opensea module
from opensea import OpenseaAPI
create an object to interact with the Opensea API (need an api key)
api = OpenseaAPI(apikey="YOUR APIKEY")
fetch a single asset
contract_address = "0x495f947276749Ce646f68AC8c248420045cb7b5e"
token_id = "66406747123743156841746366950152533278033835913591691491127082341586364792833"
result = api.asset(assetcontractaddress=contractaddress, tokenid=token_id)
fetch multiple assets
result = api.assets(owner="0xce90a7949bb78892f159f428d0dc23a8e3584d75", limit=3)
fetch a single contract
result = api.contract(asset_c)
fetch a single collection
result = api.collection(collecti)
fetch multiple collections
result = api.collections(asset_owner="0xce90a7949bb78892f159f428d0dc23a8e3584d75", limit=3)
fetch collection stats
result = api.collection_stats(collecti)
fetch multiple events
from opensea import utils as opensea_utils
periodend = openseautils.datetime_utc(2021, 11, 6, 14, 30) result = api.events( occurredbefore=periodend, limit=10, exportfilename="events.json", )
fetch multiple bundles
result = api.bundles(limit=2)
paginate the events endpoint (cursors are handled internally)
from datetime import datetime, timezone
start_at = datetime(2021, 10, 5, 3, 25, tzinfo=timezone.utc) finish_at = datetime(2021, 10, 5, 3, 20, tzinfo=timezone.utc)
eventgenerator = api.eventsbackfill(start=start_at, until=finish_at, event_type="successful") for event in event_generator: if event is not None: print(event) # or do other things with the event data
Here's a demo video showcasing the basics.
Documentation
🔗 More in this category