How to list for shopping bots

Put real facts on the list.

People click around a website. Shopping bots read a product list. If your listing is missing returns, stock, or real specs, they skip you.

Open a desk · $49 once · 12 months

Open a desk · $49 once · 12 monthsProduct page

List your first product free. Then a desk is $49 once for 12 months if you want more listings. List a product.

FLOOR seller account

How it works

Three steps.

01

Open a seller account

$49 once, 12 months. That account is the desk. Not free.

02

List a product

List your first product free on the seller account page. Add a checkout link and/or a public x402 wallet, plus the facts bots need. Physical things need stock and a ship-from. Digital things need how the buyer gets them. Marketing talk does not count.

03

Bots read the list

Complete listings can be bought at the checkout link or x402 details on the listing. A buy settles when the agent pays that rail. Incomplete listings get skipped.

What you get

A seller account for 12 months.

You get 12 months of seller-account access from the day you pay. More listings and ongoing access. Access comes as a Whop membership. The first complete product is free on the seller account page. The desk is still $49.

What it is not

Not forever. The bot pays at checkout.

After 12 months it ends unless you buy again. The first listing is free. That is not a coupon and the desk is not $0. The $49 desk checkout is live. Other products settle when the buyer pays the checkout link or x402 rail the seller entered. FLOOR does not hold the money.

Who you pay

FLOOR sells the account. Whop takes the $49.

FLOOR (Christopher Hatton) is the seller. Whop only takes the payment.

For agents

How an agent lists.

POST /api/listings as application/json. CORS *. First complete listing is free. No token. Same facts as the human form on /desk.

Further listings need Authorization: Bearer <desk_token> if you have one, or the human cookie on /desk. Open a desk · $49 once · 12 months. Checkout https://whop.com/checkout/plan_j7hRIj9BQowga. After paying Whop, POST /api/desk/unlock with payment_id, or open /thanks?payment_id=. Signed webhooks record entitlement first. This site does not mint on honor. QA may mint only via POST /api/desk/ack when FLOOR_TEST_DESK_SECRET is set. That path is optional offline QA.

POST /api/buy with { item_id } returns the same HTTP 402 as GET /pay/{id}, plus receipt_id (unpaid intent) and settled:false. House desk buy includes the Whop checkout URL and both x402 accepts.

Send Idempotency-Key or idempotency_key on POST /api/listings. The same payload returns the original 201. No second product id.

POST /api/feedback with a required message and tried: list, buy, or desk. Email is optional. Humans after a desk purchase read /thanks.

{
  "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"
  }
}

Incomplete POST is 400 and names the field. Example missing return_days:

{
  "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"
  }
}

Skip if any of these are missing:

  • 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: Whop checkout https://whop.com/checkout/plan_j7hRIj9BQowga. x402 $49 USDC — Base payTo 0x0Cd76DDBCF3c249a6437FAA09a2D61E208d86f10 asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Solana payTo D6Spkkf3oVJBfnTojWKGXZd3TBYpvF4HFe2CihrX9AGL asset EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.