OpenSea API endpoint
Returns a cursor-paginated page of NFTs in a collection with their traits, rarity rank, current owner, best standing listing, and last sale price. Pass `cursor` from `next_page_cursor` to page forward. Narrow the result set with `listed_only`, `traits`, a `min_price`/`max_price` band, or a `min_rarity`/`max_rarity` rank band — the filters combine, so `traits=Fur:Solid Gold&listed_only=true` returns only buyable Solid Gold apes.
/opensea/collection/{slug}/itemsPath parameters:
slug (required): the OpenSea collection slug, e.g. boredapeyachtclubQuery parameters:
limit (optional): items per page, 1-100, default 20cursor (optional): opaque pagination cursor taken from a previous response's next_page_cursorsort_by (optional): one of PRICE, LAST_SALE_DATE, RARITY, CREATED_DATE. Default PRICEsort_direction (optional): one of ASC, DESC. Default ASClisted_only (optional): true to return only items with a standing listingtraits (optional): comma-separated trait_type:value pairs, e.g. Fur:Solid Gold,Eyes:Laser Eyes. Repeating a trait type ORs its values; different trait types are ANDedmin_price / max_price (optional): listing price band in the collection's native tokenmin_rarity / max_rarity (optional): rarity rank band, where 1 is the rarest itemReturns a cursor-paginated page of NFTs in the collection with their traits, rarity rank, current owner, best standing listing, and last sale price. Page forward by passing the returned next_page_cursor back as cursor; an absent next_page_cursor means the last page.
The filters combine, so ?traits=Fur:Solid Gold&listed_only=true returns only the Solid Gold apes you can actually buy, and ?min_rarity=1&max_rarity=100&sort_by=PRICE prices the top-100 rarest.
An unrecognized sort_by or sort_direction, a malformed traits pair, a negative bound, or a min_ greater than its max_ is rejected with 400 rather than silently ignored.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| token_id | 20 | |
| name | 20 | “#2307” and 19 other values |
| image_url | 20 | i2c.seadn.io |
| contract_address | 20 | |
| chain | 20 | ethereum in all 20 |
| rarity_rank | 20 | 1,599 to 9,714, median 6,017 |
| created_at | 20 | 2021-05-01 |
| last_sale_at | 20 | 2021-05-01 to 2026-10-13 |
| owner | 20 | |
| traits | 20 | median 6 entries |
| best_listing | 20 | |
| last_sale | 20 | |
| marketplace | 20 | blur (13), opensea (7) |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug (path) | string | Yes | OpenSea collection slug | boredapeyachtclub | |
| limit | integer | No | Items per page, 1-100 | ||
| cursor | string | No | Opaque pagination cursor from a previous next_page_cursor | ||
| sort_by | string | No | Sort field Allowed values: PRICE, LAST_SALE_DATE, RARITY, CREATED_DATE. | ||
| sort_direction | string | No | Sort direction Allowed values: ASC, DESC. | ||
| listed_only | boolean | No | Only return items with a standing listing | ||
| traits | string | No | Comma-separated trait_type:value pairs | Fur:Solid Gold,Eyes:Laser Eyes | |
| min_price | number | No | Minimum listing price in the collection's native token | ||
| max_price | number | No | Maximum listing price in the collection's native token | ||
| min_rarity | integer | No | Minimum rarity rank (1 is rarest) | ||
| max_rarity | integer | No | Maximum rarity rank | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/opensea/collection/boredapeyachtclub/items?limit=10&sort_by=PRICE&sort_direction=ASC&listed_only=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "boredapeyachtclub",
"items": [
{
"id": "627f24288f4b3aa1af5c94b123069592",
"token_id": "3826",
"name": "#3826",
"image_url": "https://i2c.seadn.io/base/88c9ad91.png",
"contract_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"chain": "ethereum",
"rarity_rank": 7886,
"created_at": "2021-05-01T07:27:48.000Z",
"last_sale_at": "2026-08-28T21:52:47.000Z",
"owner": {
"address": "0x4d8856858b2381d1a01650c53de1ca573160309e",
"display_name": "0x4d885"
},
"traits": [
{
"trait_type": "Background",
"value": "Army Green"
},
{
"trait_type": "Fur",
"value": "Brown"
}
],
"best_listing": {
"amount": 7.85,
"currency": "ETH",
"usd": 19295.3
},
"last_sale": {
"amount": 7.6,
"currency": "ETH",
"usd": 18680.4
},
"marketplace": "opensea"
}
],
"next_page_cursor": "WzIwXQ"
}
}Request schema
No body schema
Response schema
#/definitions/opensea.collectionItemsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | opensea.CollectionItemsResponse | No | ||||
| data.items | array | No | Item record, 39 fields: best_listing, best_offer, chain, collection_name, collection_slug, contract_address, created_at, description, id, image_url, is_fungible, last_sale and 7 more. Described under Get a single OpenSea NFT API. | |||
| data.next_page_cursor | string | No | ||||
| data.slug | string | No | boredapeyachtclub | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/opensea/collection/boredapeyachtclub/items?limit=10&sort_by=PRICE&sort_direction=ASC&listed_only=true" \
-H "x-api-key: $CRAWLORA_API_KEY"