Web API: Shop
The Shop API provides endpoints for managing NFT marketplace functionality, including shops, collections, listings, and bidding operations within the VFX ecosystem.
Base URL
/api/shop/
Endpoints
List/Create Shops
GET /api/shop/
POST /api/shop/
GET - Returns a paginated list of shops.
Query Parameters:
search
: Search by shop name, URL, or owner addressordering
: Order results (e.g.,-created_at
,name
)
Response:
{
"count": 150,
"results": [
{
"id": 1,
"name": "Digital Art Gallery",
"url": "rbx://digital-art-gallery",
"owner_address": "Rx1234567890abcdef...",
"description": "Premium digital artwork collection",
"banner_image": "https://media.vfx.io/shop/banner1.png",
"profile_image": "https://media.vfx.io/shop/profile1.png",
"is_verified": true,
"is_third_party": false,
"created_at": "2024-01-01T12:00:00Z",
"collections_count": 5,
"total_sales": "15000.0"
}
]
}
POST - Creates a new shop.
Request:
{
"name": "My NFT Shop",
"url": "rbx://my-nft-shop",
"description": "A collection of unique digital assets",
"banner_image": "https://example.com/banner.png"
}
Get/Update/Delete Shop
GET /api/shop/{id}/
PATCH /api/shop/{id}/
DELETE /api/shop/{id}/
Parameters:
id
(integer): Shop ID
Lookup Shop by URL
GET /api/shop/url/?url=rbx://shop-name
Returns shop information by URL.
Query Parameters:
url
(string): Shop URL (with or without rbx:// prefix)
Check Shop URL Availability
GET /api/shop/available/?url=rbx://shop-name
Checks if a shop URL is available for registration.
Response:
{
"available": true
}
Resync Shop
GET /api/shop/resync/?url=rbx://shop-name&delay=35
Triggers a resynchronization of shop data.
Collections
List/Create Collections
GET /api/shop/{shop_id}/collection/
POST /api/shop/{shop_id}/collection/
GET Response:
{
"count": 10,
"results": [
{
"id": 1,
"name": "Pixel Art Collection",
"description": "8-bit style digital art",
"image": "https://media.vfx.io/collection/pixel1.png",
"shop_id": 1,
"nft_count": 25,
"floor_price": "50.0",
"total_volume": "2500.0"
}
]
}
Get/Update/Delete Collection
GET /api/shop/{shop_id}/collection/{id}/
PATCH /api/shop/{shop_id}/collection/{id}/
DELETE /api/shop/{shop_id}/collection/{id}/
Listings
List/Create Listings
GET /api/shop/{shop_id}/collection/{collection_id}/listing/
POST /api/shop/{shop_id}/collection/{collection_id}/listing/
GET Response:
{
"count": 50,
"results": [
{
"id": 1,
"smart_contract_uid": "NFT123...",
"name": "Pixel Warrior #1",
"description": "A brave digital warrior",
"owner_address": "Rx1234567890abcdef...",
"floor_price": "100.0",
"buy_now_price": "150.0",
"is_auction": true,
"is_buy_now": true,
"auction_end_time": "2024-01-08T12:00:00Z",
"current_bid": "120.0",
"bid_count": 5,
"is_sale_complete": false
}
]
}
POST - Creates a new listing.
Request:
{
"smart_contract_uid": "NFT123...",
"floor_price": "100.0",
"buy_now_price": "150.0",
"is_auction": true,
"is_buy_now": true,
"auction_duration_hours": 168
}
Get/Update/Delete Listing
GET /api/shop/{shop_id}/collection/{collection_id}/listing/{id}/
PATCH /api/shop/{shop_id}/collection/{collection_id}/listing/{id}/
DELETE /api/shop/{shop_id}/collection/{collection_id}/listing/{id}/
Bidding
Create Bid
POST /api/shop/bid/
Places a bid on a listing.
Request:
{
"listing": 1,
"address": "Rx1234567890abcdef...",
"amount": "125.0",
"signature": "bid_signature_here...",
"is_buy_now": false,
"from_third_party": false
}
Response:
{
"success": true,
"message": "Bid Placed",
"bid_id": "bid_123...",
"amount": "125.0",
"estimated_confirmation": "2024-01-01T12:02:00Z"
}
Get Bid Details
GET /api/shop/bid/{id}/
Returns detailed information about a specific bid.
Submit Accepted Bid
POST /api/shop/bid/accepted/
Confirms and processes an accepted bid (for webhook integration).
Field Descriptions
Shop
name
: Display name of the shopurl
: Unique shop URL (rbx:// format)owner_address
: VFX address of the shop owneris_verified
: Whether the shop is officially verifiedis_third_party
: Whether it's integrated from external platformscollections_count
: Number of collections in the shoptotal_sales
: Total sales volume in VFX
Collection
shop_id
: ID of the parent shopnft_count
: Number of NFTs in the collectionfloor_price
: Lowest listing price in the collectiontotal_volume
: Total trading volume for the collection
Listing
smart_contract_uid
: NFT identifier being listedfloor_price
: Minimum acceptable price (for auctions)buy_now_price
: Fixed purchase priceis_auction
: Whether auction bidding is enabledis_buy_now
: Whether immediate purchase is enabledcurrent_bid
: Highest current bid amountbid_count
: Number of bids receivedis_sale_complete
: Whether the item has been sold
Bid
listing
: ID of the listing being bid onamount
: Bid amount in VFXsignature
: Cryptographic signature for bid verificationis_buy_now
: Whether this is a buy-now purchasefrom_third_party
: Whether bid originates from external platform
Listing Types
- Auction Only:
is_auction: true, is_buy_now: false
- Buy Now Only:
is_auction: false, is_buy_now: true
- Auction + Buy Now:
is_auction: true, is_buy_now: true
Notes
- Shop URLs must be unique and follow rbx:// format
- All monetary amounts are in VFX tokens
- Bids require cryptographic signatures for security
- Third-party shops integrate with external NFT platforms
- Auction timers are enforced by smart contracts
- Shop verification is manually reviewed for authenticity