Skip to main content

Boxes

Boxes are pack-style pull experiences on DYLI. Use these endpoints to show box cards, pricing, EV, top remaining hits, odds, inventory, restocking status, and recent pulls.

Box Summary

GET /api/public/v1/boxes
curl "https://www.dyli.io/api/public/v1/boxes" \
-H "x-api-key: $DYLI_API_KEY"

This returns the live boxes users can open: cover art, brand/category, box type, price, expected value, FMV ratio, average item value, inventory left, top remaining chase items, odds buckets, and whether a box is restocking or sold out. Results are paginated by default so the endpoint stays quick even as more boxes go live.

Query parameters:

NameDescription
page, pageSizePagination. Defaults to page=1&pageSize=12. pageSize max is 24. Alias: limit.
chaseLimitNumber of top remaining chase items to include per box. Defaults to 6, max is 12. Alias: chase_limit.
boxIdOptional. Return one box by id. Prefer /api/public/v1/boxes/{boxId} when you are linking directly to a known box. Aliases: box_id, id.

One Box

GET /api/public/v1/boxes/{'}boxId{'}
curl "https://www.dyli.io/api/public/v1/boxes/12997" \
-H "x-api-key: $DYLI_API_KEY"

Use this for a box detail page or catalog card when you already know the box id. The response returns a single box object with the same fields as the list endpoint.

Box rows include box_id, name, image_url, cover_image_url, brand, category, subcategory, type, price_usd, expected_value_usd, ev_usd, fmv_ratio, avg_item_value_usd, inventory_count, top_chase_cards, chase_cards, odds_buckets, buyback_rate, buyback_usd_range, buyback_rate_range, metrics_updated_at, top_chase_cards_updated_at, restocking, out_of_stock, and live.

top_chase_cards shows the highest-value unpulled items still in the box, the same snapshot DYLI uses for box cards. Each row includes product_id, token_id, name, image_url, fmv_usd, qty_remaining, brand, category, subcategory, and DYLI links when a product id is available.

Box Ranges

GET /api/public/v1/boxes/{'}boxId{'}/ranges
curl "https://www.dyli.io/api/public/v1/boxes/12997/ranges" \
-H "x-api-key: $DYLI_API_KEY"

This returns the configured odds ranges for one box and counts the current active items inside each range. Use includeItems=true when you want the item rows that can land in each bucket.

Query parameters:

NameDescription
includeItemsDefaults to false. Set true to include item rows. Alias: include_items.
page, pageSizePages item rows inside each range when includeItems=true. Defaults to page=1&pageSize=25. pageSize max is 100. Alias: limit.

Item rows include product_id, token_id, name, image_url, brand, category, subcategory, cert, box_price, buyback_price, diamond_buyback, rarity, qty_in_box, and range_name.

Box History

GET /api/public/v1/boxes/{'}boxId{'}/history
curl "https://www.dyli.io/api/public/v1/boxes/12997/history" \
-H "x-api-key: $DYLI_API_KEY"

This returns what has already been pulled from one box. Each pull includes the collectible, estimated value, rarity or tier, timestamp, price paid, and buyback result when relevant. To show what is still inside the box, use /api/public/v1/boxes for the top remaining hits or /api/public/v1/boxes/{boxId}/ranges?includeItems=true for the full remaining pool.

Query parameters:

NameDescription
cursorPage older pull rows.
since_idIncremental mode for newer rows.
include_boxDefaults to true. Set false to omit summary metadata.

Verify A Pull

GET /api/public/v1/boxes/verify

Use this when you want to show how a completed box result lines up with the configured odds. Pass either the DYLI order id or the transaction hash.

curl "https://www.dyli.io/api/public/v1/boxes/verify?orderId=123456" \
-H "x-api-key: $DYLI_API_KEY"
curl --get "https://www.dyli.io/api/public/v1/boxes/verify" \
-H "x-api-key: $DYLI_API_KEY" \
--data-urlencode "txHash=0x..."

The response includes the box, player, winning item, RNG value, selected range, range odds, and a paginated current prize pool snapshot. It is built for clear public verification, not just a backend status check.

Query parameters:

NameDescription
orderIdDYLI order id for the completed box play.
txHashOrder transaction hash. Use this when you do not have the order id.
page, pageSizePages prize rows in the verification snapshot. Defaults to page=1&pageSize=25. pageSize max is 100. Alias: limit.