Inventory Submission
Load users' current holdings into SWAPS. Server-side bulk inventory uses a secret key and is intended for partner backends.
Bulk inventory is graph bootstrap. It pre-seeds asset IDs, ownership, names, images, collections, and optional seed values so discovery can start quickly. Those seed values become stale and are never the signing-time fee authority.
For Solana fee-bearing swaps, configure a tenant valuation strategy that points
to the partner-aligned live value source. Examples: Collector Crypt can use a
verified on-chain metadata trait such as Insured Value; Phygitals-style
platforms should use a partner API. SWAPS refreshes displayed card values from
that source and refuses accept before wallet signature when the current value
cannot be verified.
curl -X POST https://www.swapsapi.com/api/v2/partners/inventory/bulk \
-H "Authorization: Bearer <API_KEY>" -H "Content-Type: application/json" \
-d '{"mode":"merge","users":[{"walletAddress":"0x1111111111111111111111111111111111111111","items":[{"id":"0x3333333333333333333333333333333333333333:1","name":"Charizard PSA 10","collection":"Pokemon Base Set","floorPrice":500,"currency":"USD"}]}]}'
Widget inventory deltas use POST /api/v2/inventory/update with publishable-key HMAC headers and are bound to the verified widget user.
Example response:
{
"success": true,
"usersProcessed": 1,
"nftsIndexed": 1,
"inventoryState": {
"wallets": 1,
"opportunities": 0
},
"mode": "merge",
"message": "Merged 1 users with their inventory. Existing inventory was left untouched."
}
Widget update response:
{
"success": true,
"added": 1,
"removed": 0,
"rejected": 0,
"message": "Inventory updated."
}