Skip to content

Booking from your own website

Your own website or app can take bookings straight into Tellfox. They go through the same engine as the Tellfox booking page, so a time can never be booked twice, and the customer gets the usual confirmation, reminders and manage link. Make a key with customers:write and bookings:write. Your server calls the API; the page in the browser calls your server (never the API with the key).

  1. The services: GET /v1/services lists them with their price, length and branches. Table services (restaurants) are booked on the Tellfox booking page instead.

  2. Free times on a day: GET /v1/availability?service_id=svc_…&date=2026-10-23 answers each free start with who can do it and the price then. Add staff_id for one person, branch_id for one branch, nights for a stay.

  3. The customer: POST /v1/customers with their name and email or phone answers the customer (the one the business has already, or a new one).

  4. Book:

    Terminal window
    curl https://api.tellfox.app/v1/bookings -X POST \
    -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -H "Idempotency-Key: web-order-5521" \
    -d '{"service_id": "svc_…", "start": "2026-10-23T07:00:00Z", "customer_id": "cus_…"}'

    201 is the booking. A time someone took a moment ago answers 409, and the message names the next free times: show them again.

  5. Move or cancel: POST /v1/bookings/{id}/move with a new start, or POST /v1/bookings/{id}/cancel. The customer is told.

Classes work the same way: GET /v1/sessions lists the sessions with the places left, and POST /v1/sessions/{id}/places with a customer_id gives one.