OpenSea API endpoint
Returns the collections a wallet holds items in, with how many items it holds in each and that collection's current floor price. Useful for valuing a wallet's holdings collection by collection.
/opensea/profile/{identifier}/collectionsPath parameters:
identifier (required): a wallet address, an ENS name, or an OpenSea username, e.g. vitalik.ethQuery parameters:
limit (optional): collections per page, 1-100, default 20cursor (optional): opaque pagination cursor taken from a previous response's next_page_cursorReturns the collections the wallet holds items in, with item_count and total_quantity held in each plus that collection's current floor price. Pairing the counts with the floor price lets you value the holdings collection by collection.
A non-address identifier is resolved to an address first, which costs one extra upstream lookup.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| item_count | 20 | 1 to 400, median 1 |
| total_quantity | 20 | 1 to 10,001, median 1 |
| collection | 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| identifier (path) | string | Yes | Wallet address, ENS name, or OpenSea username | vitalik.eth | |
| limit | integer | No | Collections per page, 1-100 | ||
| cursor | string | No | Opaque pagination cursor from a previous next_page_cursor | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/opensea/profile/vitalik.eth/collections?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"collections": [
{
"item_count": 1,
"total_quantity": 1,
"collection": {
"id": "46188685bcac4206ace63c9d017abbb7",
"slug": "boredapeyachtclub",
"name": "Bored Ape Yacht Club",
"is_verified": true,
"floor_price": {
"amount": 7.85,
"currency": "ETH",
"usd": 19295.5
}
}
}
],
"next_page_cursor": "WzIwXQ"
}
}Request schema
No body schema
Response schema
#/definitions/opensea.profileCollectionsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | opensea.ProfileCollectionsResponse | No | ||||
| data.address | string | No | ||||
| data.collections | array | No | ProfileCollection record, 49 fields: collection, item_count, total_quantity. Described under OpenSea Created Collections API. | |||
| data.next_page_cursor | string | No | ||||
| 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/profile/vitalik.eth/collections?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"