Human mode
You tap. We roll.
Home scan, request, 30% to lock the date. Guardrails default to confirm anything over your cap.
Agent mode
Two pieces: a client library that draws boxes on-device, and POST /v1/vision that turns a still into moving inventory. Agents pay per call (x402 sandbox or API key). Live video never leaves the phone.
# Live boxes run on the phone (client library).
# This endpoint names what you locked and fills cubic feet.
POST /v1/vision
{ "image": "data:image/jpeg;base64,..." }
X-API-Key: <key> # production
X-PAYMENT: <receipt> # sandbox (POST /v1/scan/pay first)
→ 200
{
"ok": true,
"roomGuess": "living-room",
"items": [
{ "itemId": "sofa-3seat", "name": "Sofa (3-seat)",
"qty": 1, "cubicFeet": 50, "isBulky": false, "confidence": "high" }
]
}
# Booking rail (unchanged)
GET /v1/quote?pickup=Dallas,TX&dropoff=Austin,TX
POST /v1/requestAiFi for moving
Humans tap. Agents pay per scan, per quote, per mile — inside limits you set. Sandbox x402 on this page; live customer deposits stay on Stripe.
Human mode
Home scan, request, 30% to lock the date. Guardrails default to confirm anything over your cap.
Agent mode
Hit /v1/scan, receive HTTP 402, pay the sandbox receipt, get inventory, then book.
Guardrails
Agent may auto-book local jobs under $800. Anything over $2,500 is blocked.
HTTP 402 PAYMENT REQUIRED
{
"resource": "/v1/scan",
"accepts": [{
"scheme": "exact",
"network": "base",
"asset": "USDC",
"amount": "0.25",
"payTo": "moving.one"
}]
}