/api/v1/mystery/catalog/:tier_id/odds read:catalogThe rarity breakdown, what’s currently available, and the average item value for one tier — ready to show players before they buy.
GET /api/v1/mystery/catalog/1/odds These inputs are shared across all docs pages — an id entered here carries over.
{
"success": true,
"data": {
"tier_id": 1,
"scope": "onchain",
"currency": "USDC",
"tier_price_usdc": "25",
"target_ev_usdc": "25.75",
"slot_count": 1,
"active": true,
"rarity_groups": [
{
"group_id": 22,
"name": "Common",
"tier_label": "Cards-1",
"color": "#9CA3AF",
"min_price": "10",
"max_price": "25",
"avg_price": "12",
"weight": "7604",
"probability": 0.7640675241157556,
"available_count": 43
},
{
"group_id": 5,
"name": "Uncommon",
"tier_label": "Cards-1",
"color": "#3B82F6",
"min_price": "25",
"max_price": "50",
"avg_price": "30",
"weight": "2000",
"probability": 0.20096463022508038,
"available_count": 8
},
{
"group_id": 21,
"name": "Rare",
"tier_label": "Cards-1",
"color": "#A855F7",
"min_price": "50",
"max_price": "115",
"avg_price": "70",
"weight": "250",
"probability": 0.025120578778135047,
"available_count": 23
},
{
"group_id": 6,
"name": "Chase",
"tier_label": "Cards-1",
"color": "#F5B50A",
"min_price": "115",
"max_price": "700",
"avg_price": "150",
"weight": "98",
"probability": 0.00984726688102894,
"available_count": 4
}
],
"slots": [
{
"slot_index": 0,
"slot_type": "CARD",
"min_value_usdc": "10",
"max_value_usdc": "500",
"groups": [
{
"group_id": 5,
"weight": "2000",
"probability": 0.20096463022508038
},
{
"group_id": 6,
"weight": "98",
"probability": 0.00984726688102894
},
{
"group_id": 21,
"weight": "250",
"probability": 0.025120578778135047
},
{
"group_id": 22,
"weight": "7604",
"probability": 0.7640675241157556
}
]
}
]
},
"meta": {
"note": "Authoritative odds from MysteryComboPool tier weights (getTiers). `probability` is the weight share across all slots (expected fraction of pulled items); `slots` has the per-slot breakdown. `available_count` is current inventory."
}
}curl -X GET 'https://service.rip.fun/api/v1/mystery/catalog/1/odds' \ -H 'X-API-Key: rip_…'
data)| Field | Description |
|---|---|
total_available | Items currently available in the pool |
average_item_value | Inventory-derived EV per item (USDC decimal string) |
rarity_groups[].name / tier_label / color | Display metadata per rarity group |
rarity_groups[].min_price / max_price / avg_price | Value range within the group |
rarity_groups[].available_count / probability | Count + share of the pool |
| Status | Code | When |
|---|---|---|
| 400 | invalid_tier | tier_id is not a known tier |
See Errors for the response envelope and the full code list.