Skip to main content
GET
/
api
/
v1
/
vm
/
available
List available packs
curl --request GET \
  --url https://api.example.com/api/v1/vm/available
[
  {
    "id": "BSG6Dy...",
    "slug": "topps-chrome-2024",
    "platform": "mainnet",
    "name": "Topps Chrome 2024",
    "enable": true,
    "description": "Pull from the latest Topps Chrome series.",
    "mint_price": 100.00,
    "max_per_mint": 10,
    "in_stock": true,
    "categories": ["Baseball", "Basketball"],
    "ev": 104.00,
    "min_ev": 101.00,
    "max_ev": 105.00,
    "ev_updated_at": "2026-03-10T18:00:00.000Z",
    "buyback_percent": 0.85,
    "claw_image_url": "https://cdn.phygitals.com/packs/topps-chrome-2024.png",
    "rarity_distribution": [
      { "id": 0, "name": "Common", "color": "#22C55E", "lower": 60, "upper": 100, "weight": 80 },
      { "id": 1, "name": "Rare",   "color": "#A855F7", "lower": 100, "upper": 200, "weight": 15 },
      { "id": 2, "name": "Epic",   "color": "#EF4444", "lower": 200, "upper": 500, "weight": 4 },
      { "id": 3, "name": "Mythic", "color": "#F59E0B", "lower": 500, "upper": 15000, "weight": 1 }
    ]
  }
]
Returns every pack that can be purchased. Use this to render a pack catalog in your app.

Query parameters

platform
string
default:"mainnet"
Platform filter. Defaults to "mainnet".

Example request

GET /api/v1/vm/available
X-API-Key: <your_api_key>

Response

[
  {
    "id": "BSG6Dy...",
    "slug": "topps-chrome-2024",
    "platform": "mainnet",
    "name": "Topps Chrome 2024",
    "enable": true,
    "description": "Pull from the latest Topps Chrome series.",
    "mint_price": 100.00,
    "max_per_mint": 10,
    "in_stock": true,
    "categories": ["Baseball", "Basketball"],
    "ev": 104.00,
    "min_ev": 101.00,
    "max_ev": 105.00,
    "ev_updated_at": "2026-03-10T18:00:00.000Z",
    "buyback_percent": 0.85,
    "claw_image_url": "https://cdn.phygitals.com/packs/topps-chrome-2024.png",
    "rarity_distribution": [
      { "id": 0, "name": "Common", "color": "#22C55E", "lower": 60, "upper": 100, "weight": 80 },
      { "id": 1, "name": "Rare",   "color": "#A855F7", "lower": 100, "upper": 200, "weight": 15 },
      { "id": 2, "name": "Epic",   "color": "#EF4444", "lower": 200, "upper": 500, "weight": 4 },
      { "id": 3, "name": "Mythic", "color": "#F59E0B", "lower": 500, "upper": 15000, "weight": 1 }
    ]
  }
]

Key fields

id
string
Pack identifier. Used as id in /api/v1/vm/buy/init and as claw_id in /api/v1/vm/buyback.
slug
string
URL-friendly identifier. Used as :slug in /api/v1/vm/chase/:slug.
mint_price
number
Price per pull in USD.
max_per_mint
number
Maximum pulls per transaction. Enforce client-side before calling /api/v1/vm/buy/init.
in_stock
boolean
false means sold out. Disable the buy button when this is false.
ev
number
Expected value per pull in USD.
buyback_percent
number
Fraction of FMV paid on sellback. For example, 0.85 = 85%.
rarity_distribution
array
Array of rarity tiers with color, value range (lower/upper in USD), and weight (relative probability).

Additional fields

The response also includes the following fields. Partners only need the documented fields above. Additional fields are returned for forward-compatibility and may be ignored.
FieldTypeDescription
type"CORE" | "EBAY"Pack source. "EBAY" = packs backed by the secondary card market. "CORE" = packs backed by minted core inventory.
chaseArray<{ id, name, image, fmv }>Inline preview of top hits. Equivalent to calling /api/v1/vm/chase/:slug.
num_pulls_7dnumberTotal pulls from this pack over the past 7 days.
categorystringSingular convenience copy of categories[0]. Prefer categories.
creator_profile{ id, wallet_address?, username?, profile_picture?, twitter_username?, socials? }Pack creator profile. For first-party packs the id is did:privy:....
pack_managersArray<{ id, username, profile_picture, role }>Users with management rights on the pack. role is "creator" or null.
repackbooleantrue if the pack is partner-created (a “repack”), false for first-party Phygitals packs.
last_pullstring | nullISO timestamp of the most recent pull on this pack.
variant_ofstring | nullIf this pack is a variant, the parent pack’s id.
variantsArray<collections>Sibling/child variants of this pack.
tier_countsRecord<string, number> | undefinedNumber of currently-stocked items per rarity-tier id. Only set when ?includeTierCounts=true.
rewards_amountsnumber[]Per-pull bonus token amounts (in raw token units).
sellback_rewards_amountsnumber[]Per-sellback bonus token amounts.
rewards_mint_addressesstring[]SPL/EVM mint addresses for bonus tokens.
rewards_symbolsstring[]Display symbols for bonus tokens.
rewards_decimalsnumber[]Decimals for bonus tokens.