Docs/Sandboxes
◆ Sandboxes

A fake dealership, for free.

Every partner gets a sandbox that looks exactly like a real dealership — just populated with invented boats and imaginary buyers. Fifty seeded hulls. A hundred fake customers. Twenty deals in various states. Stripe test mode included. No credit card, no sales call, no expiration.

  • https://sandbox.api.boater.os/v1 · same shape as production
  • 50 hulls · 100 buyers · 20 deals · 14 service orders
  • Stripe test mode wired in · test card numbers work
  • Reset and re-seed with a single API call
Get a sandbox key Signup form

How to get one.

Sign up at the partner form below or email api@boater.os with your company name and integration. We usually provision within two business hours.

Sandbox signup api@boater.os
What's inside

Seeded and ready.

Every sandbox is identical on provision. IDs are stable — write your tests against hull_sdx_0001 and they'll keep working forever.

50 hulls

hull_sdx_0001 … hull_sdx_0050

Mix of new, brokerage, and sold. Photos, specs, HINs, pricing.

100 buyers

con_sdx_0001 … con_sdx_0100

Phones, emails, consent records. SMS-opted-in and not.

20 deals

dl_sdx_0001 … dl_sdx_0020

Spread across opened, offer_sent, accepted, funded, cancelled.

14 service orders

svc_sdx_0001 … svc_sdx_0014

Open, parts-ordered, waiting-approval, and completed states.

8 listings

lst_sdx_0001 … lst_sdx_0008

Live on fake Boat Trader + YachtWorld endpoints.

6 dealership users

usr_sdx_0001 … usr_sdx_0006

Roles: owner, sales, F&I, service, admin, read-only.

Test data generators

Seed more, on demand.

The base seed is enough for most integration work. For load tests or batch scenarios, the generator endpoints mint additional leads, deals, and payments in bulk. Use them, throw them away.

POST /v1/sandbox/generate
# Spin up 5,000 synthetic leads for a load test
curl -X POST https://sandbox.api.boater.os/v1/sandbox/generate \
  -H "Authorization: Bearer $BOATEROS_SANDBOX_KEY" \
  -d '{"resource":"leads","count":5000,"sms_opt_in_rate":0.6}'

# Available resources: leads, deals, payments, service_orders, listings
Reset + webhook testing

Two small, essential tools.

Reset

Wipes every resource and re-seeds to the base state. Useful between test suites.

POST /v1/sandbox/reset

Webhook mirror

Point sandbox webhooks at this URL to see exactly what we'd send your endpoint.

sandbox.boater.os/webhooks/test
Payments

Stripe test mode, included.

Every sandbox is wired to Stripe test mode. Use the standard Stripe test cards — 4242 succeeds, 4000000000000002 declines, 4000002500003155 triggers 3DS. Test Terminal readers work too.

POST /v1/payments · sandbox
curl -X POST https://sandbox.api.boater.os/v1/payments \
  -H "Authorization: Bearer sk_test_..." \
  -d '{"deal_id":"dl_sdx_0004","amount_usd":5000,"card":"4242424242424242"}'
Going to production

The five-step checklist.

When your integration is behaving in sandbox, here's the order to flip things on in production. Do not skip step three.

01 Swap sk_test_ keys for sk_live_ keys and rotate out the sandbox ones
02 Point webhook URLs at production endpoints and rotate signing secrets
03 Verify every integration against real dealership data with a 48h parallel run
04 Update your API version pin to the latest stable date, not a preview
05 Set up uptime monitoring, error budgets, and a rollback runbook

Ready to start?

Provisioned in under two hours. No credit card. No expiration. No sales call required.

Request a key Back to docs