Skip to content

Getting Started

Get your first booking into AvailEngine in under 5 minutes.

1. Register

Go to the developer dashboard and click Register. Create your free developer account — no credit card required.

You can also register programmatically:

bash
curl -X POST https://api.availengine.com/v1/auth/developer/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "password": "your-secure-password",
    "first_name": "Jane",
    "last_name": "Doe"
  }'

2. Create a Business

Log into the dashboard and click New business. Give it a name and optional type (salon, restaurant, clinic, etc.). Toggle Sandbox for a free test business.

Or via the API:

bash
curl -X POST https://api.availengine.com/v1/developer/businesses \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Demo Salon",
    "business_type": "salon",
    "is_dev": true
  }'

The response includes your API key — save it. It's scoped to this business and won't be shown again.

json
{
  "business_id": "uuid",
  "name": "Demo Salon",
  "slug": "demo-salon",
  "api_key": "avail_test_a1b2c3...",
  "scopes": ["read", "write"]
}

3. Add a Resource

Resources are what gets booked — a stylist, a room, a table.

bash
curl -X POST https://api.availengine.com/v1/manage/resources \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria",
    "resource_type": "staff",
    "capacity_max": 1
  }'

4. Set Operating Hours

bash
curl -X PUT https://api.availengine.com/v1/manage/hours \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hours": [
      {"day_of_week": 0, "is_open": false},
      {"day_of_week": 1, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
      {"day_of_week": 2, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
      {"day_of_week": 3, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
      {"day_of_week": 4, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
      {"day_of_week": 5, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
      {"day_of_week": 6, "is_open": false}
    ]
  }'

5. Check Availability

bash
curl "https://api.availengine.com/v1/availability/YOUR_BUSINESS_ID?date=2026-06-15&capacity=1"

Response:

json
{
  "business_id": "uuid",
  "booking_date": "2026-06-15",
  "capacity": 1,
  "slots": [
    {"time": "09:00", "available": true, "remaining_resources": 1},
    {"time": "09:30", "available": true, "remaining_resources": 1}
  ]
}

6. Create a Booking

bash
curl -X POST https://api.availengine.com/v1/bookings/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "business_id": "YOUR_BUSINESS_ID",
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com",
    "booking_date": "2026-06-15",
    "start_time": "09:00",
    "capacity": 1
  }'

Response (no deposit):

json
{
  "booking": {
    "id": "uuid",
    "status": "confirmed",
    "confirmation_code": "ABC12345",
    "booking_date": "2026-06-15",
    "start_time": "09:00:00",
    "end_time": "10:00:00",
    "capacity": 1
  }
}

If the business has deposits enabled, the response also includes stripe_client_secret and deposit_type — show the Stripe Payment Element to collect payment before the booking is confirmed:

Next Steps

You just built a booking flow. Now explore the full API reference → or set up webhooks → to keep your app in sync.

Released under the MIT License.