opensea.io APIopensea.io ↗
Query OpenSea NFT collections, floor prices, item rarity, owner data, and recent sales/transfers via 4 REST endpoints. No official API key required.
curl -X GET 'https://api.parse.bot/scraper/0fc9c665-6fe2-4664-bcbd-e08c694bb070/search?limit=3&query=bored+ape' \ -H 'X-API-Key: $PARSE_API_KEY'
Search OpenSea for collections, tokens, and currencies by keyword. Returns matching results with basic metadata like name, slug, chain, and floor price for collections.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return (max 50) |
| queryrequired | string | Search keyword |
| chains | string | Comma-separated chain filters (e.g. ETHEREUM,BASE,POLYGON) |
{
"type": "object",
"fields": {
"query": "string - the search query used",
"total": "integer - number of results returned",
"results": "array of search result objects with type, id, slug, name, chain, and type-specific fields"
},
"sample": {
"data": {
"query": "bored ape",
"total": 1,
"results": [
{
"id": "46188685bcac4206ace63c9d017abbb7",
"name": "Bored Ape Yacht Club",
"slug": "boredapeyachtclub",
"type": "Collection",
"chain": "ethereum",
"image_url": "https://i2c.seadn.io/collection/boredapeyachtclub/image/1a09c26b1c30427b26944c47fc7bb9/d81a09c26b1c30427b26944c47fc7bb9.png",
"floor_price": {
"usd": 24665.28,
"amount": 10.879999,
"symbol": "ETH"
},
"is_verified": true,
"total_supply": 9998,
"one_day_floor_change": 0.0668
}
]
},
"status": "success"
}
}About the opensea.io API
This API gives developers structured access to OpenSea data across 4 endpoints covering collection search, detailed metadata, item listings, and activity feeds. The get_collection endpoint returns floor price, volume stats, owner count, token standard, and verification status for any collection slug. The get_collection_items endpoint exposes per-NFT rarity rank, best listing, and owner info with cursor-based pagination.
Search and Collection Metadata
The search endpoint accepts a keyword query and optional chains filter (e.g. ETHEREUM,BASE,POLYGON) and returns up to 50 matching results with type, slug, name, chain, and floor price. Use it to resolve a collection slug before calling downstream endpoints. The get_collection endpoint takes that slug and returns a fuller picture: stats covering total_supply, owner_count, and listed_item_count; volume figures; floor_price with usd, amount, and symbol; top_offer; is_verified; and the owner's display_name and wallet address.
Browsing Collection Items
The get_collection_items endpoint lists NFTs within a collection. Each item object carries token_id, contract_address, image_url, chain, rarity_rank, owner, best_listing, and best_offer. Results can be sorted by PRICE, RARITY, CREATED_DATE, LAST_SALE_DATE, or LAST_TRANSFER_DATE in either ASC or DESC order. Pages are navigated via the next_cursor field in each response, with up to 50 items per page.
Collection Activity Feed
The get_collection_activity endpoint returns recent events for a collection sorted newest-first. Each event includes event_type (Sale, Transfer, Listing, or Offer), event_time, price, from, to, item details, and marketplace. This is useful for tracking floor-price movements, wash-trade signals, or real-time sale notifications. Pagination also uses next_cursor.
- Monitor floor price changes across multiple NFT collections using
get_collectionstats on a schedule - Build a rarity-sorted gallery of listed items for a specific collection using
get_collection_itemswithsort_by=RARITY - Alert users when a collection records a sale above a threshold by polling
get_collection_activityfor Sale events - Resolve collection slugs from user search input before fetching full metadata using the
searchendpoint with chain filters - Track wallet activity within a collection by filtering Transfer events from
get_collection_activityby address - Compare
owner_counttototal_supplyacross collections to gauge holder concentration - Display verified collection badges and owner display names in a portfolio dashboard using
is_verifiedandownerfields
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OpenSea have an official developer API?+
What does `get_collection_items` return for each NFT, and how do I page through results?+
id, name, token_id, contract_address, image_url, chain, rarity_rank, owner, best_listing, and best_offer. To fetch the next page, pass the next_cursor value from the current response into the next request. When next_cursor is null, there are no further pages.Can I filter collection activity by event type, such as returning only Sales?+
get_collection_activity endpoint returns all event types (Sale, Transfer, Listing, Offer) and does not currently accept an event-type filter parameter. You can filter the returned events array client-side by the event_type field. If you need server-side filtering, you can fork this API on Parse and revise it to add that parameter.Does the API cover individual NFT trait data or trait-based rarity breakdowns?+
rarity_rank per item and collection-level stats, but individual trait names, values, and trait rarity percentages are not returned by any endpoint. You can fork this API on Parse and revise it to add a trait-detail endpoint.How current is the data returned for floor price and volume stats?+
get_collection endpoint reflects the state of OpenSea at the time of the request. Floor price and volume figures are point-in-time snapshots — they are not streamed or pushed. For time-series tracking, poll the endpoint on a schedule and store results locally.