LuxDrop APIluxdrop.com ↗
Access LuxDrop's public pack catalogue, per-pack item lists, and official published drop odds via 3 structured JSON endpoints.
What is the LuxDrop API?
The LuxDrop API exposes 3 endpoints covering the public mystery-pack catalogue on luxdrop.com: browsing and filtering all available packs via get_packs, retrieving full item manifests for a specific pack via get_pack_details, and pulling the official published drop probabilities for every possible outcome via get_pack_odds. Response fields include pack price in USD cents and dollars, risk scores, item brand and value data, and per-outcome ticket counts drawn from a pool of 100,000,000.
curl -X GET 'https://api.parse.bot/scraper/32aaf8fc-ed36-4b3f-b31a-08d7ad8753c5/get_packs?sort=price_low_to_high&limit=3&search=apple' \ -H 'X-API-Key: $PARSE_API_KEY'
Lists the public LuxDrop pack catalogue, one row per pack, with id, name, price (USD cents and dollars), image URL, version/labels/event flags, risk (volatility) score, and the public pack page URL. Supports the site's own text search, the site's sort menu, a price-range filter in USD cents, and cursor pagination: one upstream call per page; when has_more is true pass next_cursor back as cursor (with the same search/sort/price inputs) to get the following page. limit is clamped to 100. A search with no matches returns an empty packs array with count 0. Pack status/origin fields are not published by the site and are not returned.
| Param | Type | Description |
|---|---|---|
| sort | string | Ordering, matching the site's 'Order By' menu. |
| limit | integer | Packs per page, 1-100 (values above 100 are clamped). |
| cursor | string | Pagination cursor: the next_cursor value from the previous get_packs page. Omitted = first page. |
| search | string | Free-text pack name search as typed into the site's search box (one shape: 'apple'). Omitted = whole catalogue. |
| price_max_cents | integer | Maximum pack price in USD cents, inclusive (e.g. 5000 = $50.00). Omitted = no upper bound. |
| price_min_cents | integer | Minimum pack price in USD cents, inclusive (e.g. 1000 = $10.00). Omitted = no lower bound. |
{
"type": "object",
"fields": {
"sort": "sort applied",
"count": "number of packs in this page",
"packs": "array of pack summaries: id (pack identifier, used by get_pack_details/get_pack_odds), name, version, is_last_version, price_cents, price_usd, event_id, event_price_cents, image_url, opened_image_url, background_color, labels (array of site labels), risk_score (site volatility score), pack_url",
"search": "search term applied or null",
"currency": "currency of all price fields (USD)",
"has_more": "true when another page exists",
"next_cursor": "cursor for the next page, null when there are no more"
},
"sample": {
"data": {
"sort": "price_low_to_high",
"count": 1,
"packs": [
{
"id": "apple_picking",
"name": "Apple Picking",
"labels": [],
"version": 6,
"event_id": null,
"pack_url": "https://luxdrop.com/packs/apple_picking",
"image_url": "https://luxdrop.imgix.net/fa921031-9186-42c9-a8c5-14cfc90b4503-Apple%20Picking.avif",
"price_usd": 8.93,
"risk_score": 96.72247580873879,
"price_cents": 893,
"is_last_version": true,
"background_color": "#2F3A45",
"opened_image_url": null,
"event_price_cents": null
}
],
"search": "apple",
"currency": "USD",
"has_more": false,
"next_cursor": null
},
"status": "success"
}
}About the LuxDrop API
Pack Catalogue
The get_packs endpoint returns the full public LuxDrop catalogue, one record per pack. Each record includes a pack id (used as the key for the other two endpoints), name, price_cents, version, is_last_version, and flags such as event labels. Pagination is cursor-based: pass next_cursor from one response into the cursor parameter of the next call. Results can be filtered by price_min_cents and price_max_cents (e.g. price_max_cents=5000 caps results at $50.00 packs), narrowed by search for free-text pack name matching, and ordered with sort to mirror the site's own sort menu. The has_more field tells you whether additional pages exist.
Per-Pack Details and Items
get_pack_details accepts a pack_id (from get_packs) or a full pack page URL and returns everything about one pack: price_usd, price_cents, risk_score, labels, image_url, pack_url, and an items array sorted by value descending. Each item carries item_id, product_id, name, brand, description (nullable), image_url, value_cents, value_usd, and an is_luxspin_item flag. The item_count field tells you how many distinct outcomes the pack contains.
Published Drop Odds
get_pack_odds returns the official drop probabilities LuxDrop publishes for a given pack. The outcomes array is sorted rarest-to-most-common and each entry includes published_odds_percent, a tickets count, and the full item metadata (name, brand, value_cents, value_usd, is_luxspin_item). The ticket_total is always 100,000,000, so individual ticket counts divide into that base to yield the percentage. The odds_source field is always official_published, making it explicit that these are LuxDrop's stated odds, not empirically observed frequencies. odds_representation provides a plain-language description of how the units work.
The LuxDrop API is a managed, monitored endpoint for luxdrop.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when luxdrop.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official luxdrop.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a pack comparison tool that ranks packs by expected value using
value_centsandpublished_odds_percentfromget_pack_odds. - Track price changes over time by polling
get_pack_detailsforprice_centsupdates on specific packs. - Filter the catalogue by budget using
price_min_centsandprice_max_centsinget_packsto surface affordable packs. - Display a full loot table for any pack by rendering the
itemsarray fromget_pack_details, sorted byvalue_centsdescending. - Identify high-volatility packs by sorting the catalogue on
risk_scoreto find packs with rare, high-value outcomes. - Alert users when a specific brand appears in a pack's item list by checking the
brandfield acrossget_pack_detailsresponses. - Calculate the probability-weighted average item value for any pack using
value_centsandticketsfromget_pack_odds.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does LuxDrop have an official developer API?+
What does get_pack_odds actually return, and are the probabilities based on observed drop history?+
odds_source field is always official_published to make that distinction explicit. Each outcome includes a tickets count out of a ticket_total of 100,000,000, which maps directly to the published_odds_percent value.Can I retrieve user account data, order history, or past drop results through this API?+
How does pagination work in get_packs?+
next_cursor string and a has_more boolean. Pass next_cursor as the cursor parameter in your next call to fetch the following page. Omitting cursor always returns the first page. The limit parameter controls page size between 1 and 100; values above 100 are clamped to 100.Does the API expose pack availability status or whether a pack is sold out or limited-time?+
labels and event flags per pack (visible in both get_packs and get_pack_details), which can reflect limited-edition or event designations. Explicit sold-out or inventory-level fields are not currently included in the response schema. You can fork this API on Parse and revise it to add that field if LuxDrop exposes it on their public pack pages.