Skip to main content
GET
/
api
/
v1
/
inventory
/
:user_id
Get user inventory
curl --request GET \
  --url https://api.example.com/api/v1/inventory/:user_id
{
  "user_id": "user_abc123",
  "items": [
    {
      "id": "9XnY...mint_address",
      "claw_id": "BSG6Dy...",
      "claw_slug": "topps-chrome-2024",
      "buyback_price": 8.50,
      "mint_address": "9XnY...mint_address",
      "purchased_at": "2026-04-18T19:05:14.000Z",
      "buyback_expires_at": "2026-04-25T19:05:14.000Z",
      "content": {
        "metadata": {
          "name": "Juan Soto RC Auto /25",
          "image": "https://cdn.phygitals.com/cards/soto-rc-auto.png",
          "back_image": "https://cdn.phygitals.com/cards/soto-rc-auto-back.png",
          "attributes": [
            { "trait_type": "Year", "value": "2024" },
            { "trait_type": "Category", "value": "Baseball" }
          ]
        },
        "links": {
          "image": "https://cdn.phygitals.com/cards/soto-rc-auto.png",
          "back_image": "https://cdn.phygitals.com/cards/soto-rc-auto-back.png"
        }
      }
    }
  ]
}
Returns every item currently owned by a given user_id: items pulled via /api/v1/vm/buy/init that have not yet been sold back via /api/v1/vm/buyback or shipped via /api/v1/ship/request.

Path parameters

user_id
string
required
The partner-defined user identifier passed to /api/v1/vm/buy/init.

Example request

GET /api/v1/inventory/user_abc123
X-API-Key: <your_api_key>

Response

{
  "user_id": "user_abc123",
  "items": [
    {
      "id": "9XnY...mint_address",
      "claw_id": "BSG6Dy...",
      "claw_slug": "topps-chrome-2024",
      "buyback_price": 8.50,
      "mint_address": "9XnY...mint_address",
      "purchased_at": "2026-04-18T19:05:14.000Z",
      "buyback_expires_at": "2026-04-25T19:05:14.000Z",
      "content": {
        "metadata": {
          "name": "Juan Soto RC Auto /25",
          "image": "https://cdn.phygitals.com/cards/soto-rc-auto.png",
          "back_image": "https://cdn.phygitals.com/cards/soto-rc-auto-back.png",
          "attributes": [
            { "trait_type": "Year", "value": "2024" },
            { "trait_type": "Category", "value": "Baseball" }
          ]
        },
        "links": {
          "image": "https://cdn.phygitals.com/cards/soto-rc-auto.png",
          "back_image": "https://cdn.phygitals.com/cards/soto-rc-auto-back.png"
        }
      }
    }
  ]
}
user_id
string
Echoes back the requested user identifier.
items
array
Items currently owned by the user. Excludes sold-back and shipped items.
items[].id
string
Item identifier. Used as item_id in /api/v1/vm/buyback and as an entry in item_ids for /api/v1/ship/quote. Equal to mint_address for on-chain items.
items[].claw_id
string
The pack the item was pulled from. Used as claw_id in /api/v1/vm/buyback.
items[].claw_slug
string
The pack’s slug from /api/v1/vm/available.
items[].buyback_price
number
Current sellback value in USD.
items[].content.metadata.back_image
string | null
CDN URL for the card back image, or null when not available.
CDN URL for the card back image. Mirror of content.metadata.back_image.
items[].mint_address
string | null
On-chain mint address for the item. null for items that haven’t been minted on-chain (in sandbox, always null for ebay-sourced items).
items[].type
string
Item source. One of: enft, ebay, fanatics, alt, external.
items[].collection_address
string | null
On-chain collection address.
items[].token_standard
string | null
Token standard for on-chain items.
items[].purchased_at
string
ISO timestamp when the item was pulled.
items[].buyback_expires_at
string | null
ISO timestamp after which the item can no longer be sold back. null if there is no expiry. In sandbox, this is always set to purchased_at + 7 days and never null.
See the item shape reference for the full canonical item schema.

Errors

StatusBodyCause
404{ "error": "User not found" }Unknown user_id for this partner
500{ "error": "An unexpected error occurred" }Internal server error
:user_id is a required path parameter. Calls without it will not match this route and return the API’s default 404, not a 400.
Items disappear from this response once they’re successfully sold back or have an active shipping request. For shipping status of items already submitted to fulfillment, query /api/v1/ship/order/:order_id.

Physical custody and pricing

Every item returned here is 1:1 backed by a real, graded card held in an insured US vault, primarily Alt, with PSA and Fanatics as additional custodians. A dedicated team inside Alt’s operations handles all Phygitals inventory moves, grading, and shipments. The buyback_price field is driven by the Alt pricing oracle, which provides the live FMV feed powering every sellback transaction. Prices update as the market moves. The partner is not storing anything. Phygitals operates the full physical stack end-to-end. See the platform overview for details.