LullabuyJudges start here

no login, no key, all live

Judges: three minutes

Recall index: 1,207 CPSC nursery and NHTSA child car seat recalls, 3,771 model numbers, as of 2026-09-26. Health: /api/health.

  1. 1

    Check a real recall yourself

    Open the live check and tap “Harppa high chair”. It is CPSC recall 26-061: model BHC001, recalled only in batch 202408.

    Open the live check →
  2. 2

    Try the edge cases

    Same model, other batch: KEEP HELD, because the recall names one batch. OCR slip “BHCOO1”: still matches. An unknown model: NO_MATCH, and it never says “safe”.

    Try them →
  3. 3

    Run it from your terminal

    Same index, no key:

    curl "https://secondhand-safe-web.vercel.app/api/check?model=BHC001&batch=202408"
  4. 4

    Give the check to an AI shopping agent

    The same check is an MCP tool, recall_check. Point any MCP client at this URL, or call it directly:

    curl -s https://secondhand-safe-web.vercel.app/api/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"recall_check","arguments":{"model":"BHC001","batch":"202408"}}}'
  5. 5

    See the model's real scores

    Held-out products the model never saw. 2 of 107 ordinary items wrongly flagged, vs 38 for off-the-shelf CLIP.

    curl https://secondhand-safe-web.vercel.app/api/stats
    See the model section →
  6. 6

    Shop by voice or text

    Say “a bassinet for my newborn under $80, pickup in Atlanta”. Gemini reads the request, real listings come back pre-screened (red, amber, or photo check passed), and “Buy with our agent” places a Trusted Agent Protocol-signed Visa hold you then settle on /pickup.

    Open the shopping agent →
  7. 7

    Hold real money, then settle it at pickup

    On /pickup, type Visa's sandbox test card (4111 1111 1111 1111, any CVV, a future expiry) into Visa's own Microform fields, pick a listing and press Agree: a real Visa Acceptance sandbox authorization is created with capture off (HELD). Type BHC001 / 202408 and the hold is REVERSED at Visa; type any model with no recall and it is CAPTURED. The Visa ids are on screen.

    Open pickup scan →
  8. 8

    Get the item's passport

    When a clean label captures the payment, a Solana devnet transaction stores the SHA-256 of the pickup record (no personal data on chain). The passport page reads it back and checks the signer, the transaction and the hash.

    Capture a clean deal on /pickup →
  9. 9

    Pay again with a saved card

    Tick “Save this card with Visa” on the first hold. Next time, “Use my saved card” pays with Visa's Token Management Service; the card stays in Visa's vault. When Visa applies a card-linked offer, the hold is the discounted amount and the saving is shown.

    Open pickup →
  10. 10

    The phone app

    The same product as an iOS and Android app (Expo, built with EAS): shop, scan a label with the camera, and the deal board, all on this deployment's API. On Android, install the APK from /get/android; for iPhone, /get/ios has the TestFlight status. The source is in mobile/.

    Get the Android APK →
  11. 11

    Settle it at the table kiosk

    After you press Agree on /pickup, open /checkpoint in the same tab: it picks up that hold. Scan the item's barcode with a USB scanner (it types like a keyboard), or type a UPC and press Enter. A recalled UPC, such as 669028116546 (CPSC 26-530), reverses the hold; a UPC with no recall captures it. One full-screen state, a sound per change, and a settlement made on another device shows up live.

    Open the checkpoint →
  12. 12

    Watch it from the seller's side

    After you press Agree on /pickup, a QR code appears. Scan it with a second phone: the seller's live view (MongoDB Atlas) follows the same deal to CAPTURED or REVERSED, with the reason. Every deal is also on the board.

    Open the deal board →
  13. 13

    See it as a marketplace's safety team would

    The Trust and Safety console: why holds were reversed (by the actual CPSC recall number), money that never reached a seller of a recalled item, time from hold to decision. Computed live from MongoDB Atlas; the deals are our demos and automated tests.

    Open the console →
  14. 14

    Compare a photo with every recall photo

    MongoDB Atlas Vector Search over the CPSC recall photos: on /pickup your photo's embedding (computed in your browser) returns the three closest recall photos. Tested on held-out photos, and a resemblance is only ever a reason to read the label. Try a scanned listing:

    curl "https://secondhand-safe-web.vercel.app/api/lookalike?listingId=ebay:287601074532"
  15. 15

    See the Atlanta scan

    Every one of the 602 Craigslist Atlanta baby and kid listings we scanned, on a map, with what review found.

    Open the map →
  16. 16

    Get the recall call

    On /pickup, after the hold, type your US phone number under “Call me if it's recalled”: Lullabuy phones you a 4-digit code, and you type it back. Then type BHC001 / 202408: Visa reverses the hold, and a few seconds later Lullabuy phones you and says, in the ElevenLabs voice, which CPSC recall matched and that you were not charged. Press 1 to hear it again. One call per deal, capped per day.

    Open pickup →
  17. 17

    Read the code

    Every number on this site is computed by a script in the repo. CI runs lint, types, tests, build, pytest, secret scan and an em-dash gate.

    GitHub →

What is live on this deployment right now

Read from the server's configuration at page load. We only claim what is on.

  • LIVECPSC recall index + matcher
  • LIVEBanned-type classifier results
  • LIVEVisa Acceptance sandbox (authorize, capture, reverse, Microform, Token Management Service)
  • LIVEMongoDB Atlas
  • LIVEGemini label reader
  • LIVEElevenLabs spoken verdict
  • LIVETrusted Agent Protocol signing key
  • LIVESolana devnet passport
  • LIVERecall phone call (Vonage Voice + ElevenLabs)