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
Section titled “Base URL”/api/shop/Endpoints
Section titled “Endpoints”List/Create Shops
Section titled “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": "R9Ng1rDS2YgB7R2bJMU3RKzVXSriXLRsBR", "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
Section titled “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
Section titled “Lookup Shop by URL”GET /api/shop/url/?url=rbx://shop-nameReturns shop information by URL.
Query Parameters:
url(string): Shop URL (with or without rbx:// prefix)
Check Shop URL Availability
Section titled “Check Shop URL Availability”GET /api/shop/available/?url=rbx://shop-nameChecks if a shop URL is available for registration.
Response:
{ "available": true}Resync Shop
Section titled “Resync Shop”GET /api/shop/resync/?url=rbx://shop-name&delay=35Triggers a resynchronization of shop data.
Collections
Section titled “Collections”List/Create Collections
Section titled “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
Section titled “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
Section titled “Listings”List/Create Listings
Section titled “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": "R9Ng1rDS2YgB7R2bJMU3RKzVXSriXLRsBR", "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
Section titled “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
Section titled “Bidding”Create Bid
Section titled “Create Bid”POST /api/shop/bid/Places a bid on a listing.
Request:
{ "listing": 1, "address": "R9Ng1rDS2YgB7R2bJMU3RKzVXSriXLRsBR", "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
Section titled “Get Bid Details”GET /api/shop/bid/{id}/Returns detailed information about a specific bid.
Submit Accepted Bid
Section titled “Submit Accepted Bid”POST /api/shop/bid/accepted/Confirms and processes an accepted bid (for webhook integration).
Field Descriptions
Section titled “Field Descriptions”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
Section titled “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
Section titled “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
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
Section titled “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
- 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