Skip to main content

Sales

GET /api/public/v1/sales

Returns sales and lifecycle activity across DYLI inventory purchases, user resales, Fair Drops, boxes, claims, and eBay-origin orders.

Use this when you want the history of what happened on DYLI, not just what is currently for sale.

Query Parameters

NameDescription
brandCase-insensitive brand filter, for example Vibes.
categoryCase-insensitive category filter, for example TCG.
subcategoryCase-insensitive subcategory filter, for example Ungraded Card.
certCert number. Common BGS variants are checked.
marketTypeprimary for first-sale DYLI inventory flows, secondary for user-to-user resale activity. Alias: market_type.
productIdExact DYLI product id. Alias: product_id.
tokenIdExact ERC-1155 token id. Alias: tokenid.
boxIdBox id. Alias: box_id.
createdAfterISO timestamp lower bound. Aliases: created_after, from.
createdBeforeISO timestamp upper bound. Aliases: created_before, to.
page, pageSizePagination. pageSize max is 200.

Classification

Use market_type when you only need "first sale vs resale." Use sale_channel when you care whether the row came from standard checkout, a Fair Drop, a box, eBay, a claim, or secondary resale.

Examples

curl "https://www.dyli.io/api/public/v1/sales?createdAfter=2026-01-01T00:00:00.000Z" \
-H "x-api-key: $DYLI_API_KEY"
curl --get "https://www.dyli.io/api/public/v1/sales" \
-H "x-api-key: $DYLI_API_KEY" \
--data-urlencode "brand=Vibes" \
--data-urlencode "subcategory=Ungraded Card" \
--data-urlencode "from=2026-01-01T00:00:00.000Z" \
--data-urlencode "pageSize=100"

The same request as a URL:

/api/public/v1/sales?brand=Vibes&subcategory=Ungraded%20Card&from=2026-01-01T00%3A00%3A00.000Z&pageSize=100