Whaleshine is built to be bookable by agents. Two endpoints, no API key, JSON in and out. Payment hands off to a Stripe Checkout URL that your user completes themselves. A machine-readable summary also lives at /llms.txt.
No parameters returns the full catalog with pricing rules. With parameters, a priced quote.
GET https://whaleshine.com/api/quote?service=wash&rig=tt&length=30&roof=true&zip=30004
{
"service": "wash",
"label": "Exterior wash",
"rig": "travel trailer",
"length_ft": 30,
"roof_addon": true,
"currency": "USD",
"total": 360,
"deposit_due_at_booking": 90,
"balance_paid_to_technician": 270
} Service keys: wash, washwax, detail, roofinspect, roofreseal, winterize, dewinterize, bearings, generator. Rig keys: tt (travel trailer), fw (fifth wheel), ca (Class A), cb (Class B), cc (Class C). Length is 10 to 60 feet for per-foot services, billed in 5 ft bands at the band ceiling. Always pass zip: some metro areas price higher, and the response includes the market_multiplier applied.
Prices are recomputed server side; the quote is for display. The response is a Stripe Checkout URL. Hand it to your user: the 25 percent deposit paid there completes the booking, and confirmations arrive by text.
POST https://whaleshine.com/api/create-checkout
Content-Type: application/json
{
"service": "wash",
"rig_type": "tt",
"length_ft": 30,
"roof_addon": true,
"customer_name": "Dana Pruitt",
"phone": "6785550142",
"street": "410 Lakeview Trail",
"city": "Cumming",
"state": "GA",
"zip": "30041",
"preferred_date": "2026-11-06",
"time_window": "morning"
}
Response: { "url": "https://checkout.stripe.com/c/pay/cs_..." } time_window is morning (8 to 12) or afternoon (12 to 5). Dates are YYYY-MM-DD, tomorrow or later. The booking is not confirmed until the deposit is paid at the returned URL.
A text confirming the deposit, a text naming their technician once one accepts, and a service record of the work. The balance is paid directly to the technician at service by card, cash, or Zelle. Free rescheduling up to 24 hours before the appointment, and a full refund any time the technician can't make it. Full terms at /terms/.
Questions or higher-volume integration: support@whaleshine.com