---
title: "Get trait floor prices"
method: GET
path: "/api/v2/traits/{slug}/floors"
tags: ["Collection Endpoints"]
---

# Get trait floor prices

`GET /api/v2/traits/{slug}/floors`

## Request

- Base URL: `https://api.opensea.io`
- URL: `https://api.opensea.io/api/v2/traits/{slug}/floors`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/opensea/apis/opensea-api/docs/api/v2/traits/:slug/floors/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the cheapest active listing for every trait value in a collection, in one request. Trait values with no active listing are omitted. Results are ordered by trait type, then value, then price.

Only traits with text values are included. A numeric trait has no enumerable set of values, so it is reported as a min/max range by 'GET /api/v2/traits/{slug}' rather than as a floor per value here.

Prices come from each item's best listing across every marketplace OpenSea aggregates, the same basis as 'floor_price' in 'GET /api/v2/collections/{slug}/stats'. A floor can therefore be below the cheapest listing fulfillable through this API, because 'GET /api/v2/listings/collection/{slug}/best' serves only the OpenSea order book.

Prices are not converted to a common currency: a trait value listed in more than one currency appears once per currency, and prices are only comparable within the same 'payment_token_symbol'.

## Path parameters

- `slug` string, required

## Response `200`

OK

- TraitFloorsResponse: Floor price per trait value for a collection
  - `chain` string, required: Chain every floor in this response is denominated on. A collection lives on one chain, so the payment token is identified by this plus 'payment_token_symbol'.
  - `floors` TraitFloorResponse[], required: One entry per text trait value and payment currency that has at least one active listing, ordered by trait type, then value, then price. Numeric traits are not enumerated here; see GET /api/v2/traits/{slug} for their min/max range.
    - `floor_price` number, double, required: Price of the cheapest listing carrying this trait value, across every marketplace OpenSea aggregates. This matches the basis of the collection's floor_price and may be below the cheapest listing fulfillable through this API.
    - `payment_token_symbol` string, required: Payment token this floor is denominated in, on the response's chain. Floors are not converted to a common currency, so a trait value listed in more than one currency appears once per currency and prices are only comparable within the same symbol.
    - `trait_type` string, required: Trait category, for example Background
    - `value` string, required: Trait value, for example Purple

## Other responses

- `400`: For error reasons, review the response data.
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Resource not found
- `409`: Conflict
- `500`: Internal server error. Please open a support ticket so OpenSea can investigate.
- `503`: Aggregation timed out; the collection is too large to serve

## Changes

- **2026-11-03** `2c7935d84f90`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/opensea/apis/opensea-api/changes/api/v2/traits/:slug/floors/get.md)

---

[API](https://skmtc.dev/opensea/apis/opensea-api.md) - [All operations](https://skmtc.dev/opensea/apis/opensea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opensea/apis/opensea-api/revisions/2c7935d84f90?raw)
