Introduction
Aptura is a unified API that lets you connect to multiple scheduling and booking platforms through a single integration.
Instead of building and maintaining separate integrations for Mindbody, Boulevard, Square, and other booking systems, you integrate once with Aptura and instantly support all of them.
Quickstart
Get your first API call working in under 5 minutes.
1. Get your API key
Sign up at aptura.dev to get your API key. You'll receive a key that looks like apt_live_abc123...
2. Connect a provider
Use the dashboard to connect a booking platform. Each connection represents one business's account on a provider.
3. Fetch availability
curl https://api.aptura.dev/v1/availability \
-H "Authorization: Bearer apt_live_abc123" \
-H "X-Connection-Id: conn_xyz789" \
-G \
-d "serviceId=svc_haircut" \
-d "startDate=2024-03-01" \
-d "endDate=2024-03-07"4. Book an appointment
curl -X POST https://api.aptura.dev/v1/appointments \
-H "Authorization: Bearer apt_live_abc123" \
-H "X-Connection-Id: conn_xyz789" \
-H "Content-Type: application/json" \
-d '{
"serviceId": "svc_haircut",
"staffId": "staff_jane",
"startTime": "2024-03-15T10:00:00Z",
"client": {
"firstName": "Alex",
"lastName": "Johnson",
"email": "alex@example.com"
}
}'Authentication
All API requests require authentication using your API key.
API Keys
Include your API key in the Authorization header:
Authorization: Bearer apt_live_abc123...Keep your API keys secure
Never expose API keys in client-side code or public repositories.
Connection ID
Most endpoints also require a X-Connection-Id header:
X-Connection-Id: conn_xyz789Test vs Live Mode
| Key Prefix | Mode | Real Bookings |
|---|---|---|
apt_test_ | Test | No |
apt_live_ | Live | Yes |
Get Availability
Retrieve available time slots for a service within a date range.
/v1/availabilityQuery Parameters
| Name | Type | Description |
|---|---|---|
serviceIdrequired | string | The service to check availability for |
startDaterequired | string | Start of date range (YYYY-MM-DD) |
endDaterequired | string | End of date range (YYYY-MM-DD) |
staffId | string | Filter by staff member |
Response
{
"provider": "mindbody",
"serviceId": "svc_haircut",
"slots": [
{
"startTime": "2024-03-15T10:00:00Z",
"endTime": "2024-03-15T11:00:00Z",
"staffId": "staff_jane",
"staffName": "Jane Smith"
}
]
}Create Appointment
Book a new appointment.
/v1/appointmentsRequest Body
{
"serviceId": "svc_haircut",
"staffId": "staff_jane",
"startTime": "2024-03-15T10:00:00Z",
"client": {
"firstName": "Alex",
"lastName": "Johnson",
"email": "alex@example.com",
"phone": "+15551234567"
},
"notes": "First time client"
}Response
{
"id": "apt_123abc",
"provider": "mindbody",
"status": "confirmed",
"service": {
"id": "svc_haircut",
"name": "Haircut",
"durationMinutes": 60
},
"staff": {
"id": "staff_jane",
"name": "Jane Smith"
},
"startTime": "2024-03-15T10:00:00Z",
"endTime": "2024-03-15T11:00:00Z"
}Mindbody
Mindbody is one of the most popular booking systems for fitness studios, salons, and spas.
Authentication
Mindbody connections require:
apiKey- Your Mindbody API keysiteId- The business's Mindbody site ID
Note
Mindbody requires creating a client record before booking. Aptura handles this automatically when you create an appointment.
Boulevard
Boulevard is a modern booking platform popular with high-end salons and med spas.
Cart-Based Booking
Boulevard uses a cart-based booking flow internally. Aptura abstracts this complexity—you just call createAppointment and we handle the cart creation, reservation, and checkout.
Square
Square Appointments is integrated with Square's broader commerce platform.
Authentication
Square uses OAuth 2.0. You can either:
- Use our hosted OAuth flow (recommended)
- Provide an access token directly