The primary object in the OpenSea API is the asset, which represents a unique digital item whose ownership is managed by the blockchain. The below CryptoSaga hero is an example of an asset shown on OpenSea.


Here's an overview of some of the fields contained in an asset:

Field NameDescriptionNotes
token_idThe token ID of the NFT
image_urlAn image for the item. Note that this is the cached URL we store on our end. The original image url is image_original_url
background_colorThe background color to be displayed with the item
nameName of the item
external_linkExternal link to the original website for the item
traitsA list of traits associated with the item (see traits section)
last_saleWhen this item was last sold (null if there was no last sale)
collectionsee Collection Model
asset_contractsee Asset Contract Model
ownersee Account Modeldeprecated - use 'top_ownerships' instead
top_ownershipsarray of Accounts (see Account Model)ERC721: returns current owner
ERC1155: returns all owners
rarity_dataContains rarity data for the asset. See Rarity Data below.Only contains data if the creator has enabled rarity (check field is_rarity_enabled on the Collection model), else null.


Traits are special properties on the item, that can either be numbers or strings. Below is an example of how OpenSea displays the traits for a specific item.


Here are some of the fields contained in a trait:

Field NameTypeDescription
trait_typestringThe name of the trait (for example color)
valuestring or numberThe value of this trait (can be a string or number)
display_typestringHow this trait will be displayed (options are number, boost_percentage, boost_number, and date). See the adding metadata section for more details

Rarity Data

Rarity data contains the calculated rarity information of an asset within a collection. This data is stored on the asset model under the field rarity_data.

Field NameTypeDescription
strategy_idstringThe rarity strategy string identifier. Current value will be "openrarity”.
strategy_versionstringThe version of the strategy.

For “openrarity”, this will be the python package version of the OpenRarity library used to calculate the returned score and rank.
rankintThe rank of the asset within the collection, calculated using the rarity strategy defined by strategy_id and strategy_version.
scorefloatThe rarity score of the asset, calculated using the rarity strategy defined by strategy_id and strategy_version.
calculated_attimestampThe time we calculated rarity data at, as a timestamp in UTC.

Note: This may not equal the time a creator has uploaded or changed metadata.
max_rankintThe maximum rank in the collection. Ranking for an asset should be considered the out of <max_rank>.

Typically max_rank will be equal to collection supply if all assets have been fully revealed with metadata loaded into opensea system, and every asset has unique ranks.

Before reveal is complete, rarity_data.max_rank < collection.stats.total_supply.
tokens_scoredintThe total tokens in the collection that have non-null traits and was used to calculate rarity data.

This will equal collection.stats.total_supply once Opensea has the revealed trait data for all assets in the collection.
ranking_featuresdictA dictionary of other asset features that impact rarity ranking, as returned by OpenRarity.

Currently only has "unique_attribute_count" field, which contains the number of unique attributes the asset has.