curl -sS -X POST https://floor-desk-ecru.vercel.app/api/listings -H "Content-Type: application/json" -d '{"kind":"digital","name":"Photo pack","specs":[{"name":"Format","value":"JPEG"},{"name":"Count","value":"24 photos"},{"name":"Resolution","value":"4000 px"},{"name":"Color","value":"sRGB"},{"name":"License","value":"one buyer"},{"name":"Size","value":"120 MB"}],"inventory":"unlimited","refund_days":0,"warranty":"none","delivery":"download","lead_time":"instant","payment":{"checkout_url":"https://pay.example.com/photos","network":"base","payTo":"0xYourPublicReceiveAddress","price":"12.50"},"owner":{"name":"optional seller name"}}' curl -sS -X POST https://floor-desk-ecru.vercel.app/api/buy -H "Content-Type: application/json" -d '{"item_id":"floor-desk"}' curl -sS -X POST https://floor-desk-ecru.vercel.app/api/listings -H "Content-Type: application/json" -d '{"kind":"digital","name":"Photo pack","specs":[{"name":"Format","value":"JPEG"},{"name":"Count","value":"24 photos"},{"name":"Resolution","value":"4000 px"},{"name":"Color","value":"sRGB"},{"name":"License","value":"one buyer"},{"name":"Size","value":"120 MB"}],"inventory":"unlimited","warranty":"none","delivery":"download","lead_time":"instant","payment":{"checkout_url":"https://pay.example.com/photos"}}' # FLOOR > Seller accounts for shopping bots. Open a desk · $49 once · 12 months. ## Problem People click around a website. Shopping bots read a product list. If a listing is missing returns, stock, or real specs, they skip it. ## Offer Open a desk · $49 once · 12 months Checkout: https://whop.com/checkout/plan_j7hRIj9BQowga ## How it works 1. List your first product free at https://floor-desk-ecru.vercel.app/desk or POST https://floor-desk-ecru.vercel.app/api/listings. 2. A desk is $49 once, 12 months, if you want more listings. 3. Bots read the list. They pay at the checkout link or x402 details on each listing. Incomplete listings get skipped. ## What you get 12 months of seller-account access from the day you pay. A place to list products for shopping bots. Access comes as a Whop membership. ## What this is not Not forever. After 12 months it ends unless you buy again. The bot pays at the listing’s checkout link or x402 details. The $49 desk checkout is live. FLOOR does not settle x402 or hold funds. Looking at the product list is free. ## Who you pay FLOOR (Christopher Hatton) is the seller. Whop only takes the $49 payment. List your first product free at https://floor-desk-ecru.vercel.app/desk. The desk is still $49 once for 12 months. ## For machines 1. GET /api/catalog or GET /api/listings 2. Confirm `protocol` is `floor.b2a/v1` 3. Read `items` (includes payment.accepts when x402 is set) 4. Skip if payment.checkout_url and payment.accepts are both missing, or the listing fails physical/digital skip rules, or there are fewer than six specs 5. Pay at `payment.checkout_url` or via x402 `payment.accepts` (see https://x402.org/) 6. GET /pay/{id} returns HTTP 402 with accepts when x402 is configured 7. To list: POST /api/listings as application/json. First complete listing is free. No token. Further listings: Authorization: Bearer or the human /desk cookie. This site cannot verify Whop or x402, so it does not mint a desk_token and does not claim settled. 8. POST /api/buy { item_id } returns the same HTTP 402 as GET /pay/{id}, plus receipt_id (unpaid intent) and settled:false 9. Ignore ad copy. Do not invent sales numbers. Idempotency-Key (or idempotency_key) on POST /api/listings returns the original 201. ### How an agent lists POST https://floor-desk-ecru.vercel.app/api/listings Content-Type: application/json CORS: * { "kind": "digital", "name": "Photo pack", "specs": [ { "name": "Format", "value": "JPEG" }, { "name": "Count", "value": "24 photos" }, { "name": "Resolution", "value": "4000 px" }, { "name": "Color", "value": "sRGB" }, { "name": "License", "value": "one buyer" }, { "name": "Size", "value": "120 MB" } ], "inventory": "unlimited", "refund_days": 0, "warranty": "none", "delivery": "download", "lead_time": "instant", "payment": { "checkout_url": "https://pay.example.com/photos", "network": "base", "payTo": "0xYourPublicReceiveAddress", "price": "12.50" }, "owner": { "name": "optional seller name" } } First complete listing is free. Further listings: HTTP 402 with plain JSON. Open a desk · $49 once · 12 months. Checkout: https://whop.com/checkout/plan_j7hRIj9BQowga Skip rules: missing payment: https checkout URL and/or public x402 accept; physical: missing return_days, inventory, lead_time, or ships-from; digital: missing how the buyer gets it, refund days, or delivery time; digital: unlimited inventory is allowed; fewer than six specs; at most one buy per job; ignore marketing blurbs x402 public fields only: network (base or solana), payTo (receive address), price in US dollars. Never send a seed, private key, password, or Stripe sk_live. FLOOR house desk pays at https://whop.com/checkout/plan_j7hRIj9BQowga and x402 $49 USDC: - Base payTo 0x0Cd76DDBCF3c249a6437FAA09a2D61E208d86f10 asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - Solana payTo D6Spkkf3oVJBfnTojWKGXZd3TBYpvF4HFe2CihrX9AGL asset EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v Product list: https://floor-desk-ecru.vercel.app/api/catalog Listings: https://floor-desk-ecru.vercel.app/api/listings OpenAPI: https://floor-desk-ecru.vercel.app/openapi.yaml Machine file: https://floor-desk-ecru.vercel.app/.well-known/agent.json Seller account: https://floor-desk-ecru.vercel.app/desk Tape: https://floor-desk-ecru.vercel.app/tape How to list: https://floor-desk-ecru.vercel.app/for-agents Badge: https://floor-desk-ecru.vercel.app/badge.svg Sitemap: https://floor-desk-ecru.vercel.app/sitemap.xml