Base URL & Versioning v1.2.0
Learn how to structure your API requests, handle versioning, and stay compatible with the BookEase platform.
Base URL
All API requests to BookEase should be made to the following base endpoint:
https://api.bookease.io
API Versioning Strategy
BookEase uses URL-based versioning to ensure backward compatibility and smooth migrations. The current stable version is /v1/.
Request Format
Include the version prefix in all endpoint paths:
GET https://api.bookease.io/v1/bookings/{id}
POST https://api.bookease.io/v1/services/{service_id}/schedule
Version Headers (Optional)
You may also specify a version using the Bookease-Version header. This is useful for granular patch-level updates:
Bookease-Version: 2024-11-15
Authorization: Bearer <your_api_key>
Version Lifecycle
Each API version goes through a clear lifecycle to ensure predictable updates:
| Status | Meaning | Action Required |
|---|---|---|
| Active | Fully supported, receiving new features and bug fixes | None |
| Maintenance | Security patches only. No new features. | Plan migration |
| Deprecated | Still functional but scheduled for removal | Migrate within 90 days |
| Sunset | Disabled. Requests return 410 Gone | Immediate migration required |
Deprecation Headers
When a version enters maintenance or deprecation, responses will include:
Deprecation: true
Sunset: Sat, 01 Mar 2025 00:00:00 GMT
Link: ; rel="successor-version"
Code Examples
See how to properly format requests with the correct base URL and version across popular languages.
JavaScript (Fetch)
const response = await fetch('https://api.bookease.io/v1/bookings', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk_live_your_api_key',
'Bookease-Version': '2024-11-15'
},
body: JSON.stringify({
service_id: 'srv_8x7j9k',
customer_email: 'user@example.com',
start_time: '2024-12-15T10:00:00Z'
})
});
const booking = await response.json();
Python (Requests)
import requests
headers = {
"Authorization": "Bearer sk_live_your_api_key",
"Bookease-Version": "2024-11-15",
"Content-Type": "application/json"
}
payload = {
"service_id": "srv_8x7j9k",
"customer_email": "user@example.com",
"start_time": "2024-12-15T10:00:00Z"
}
response = requests.post(
"https://api.bookease.io/v1/bookings",
headers=headers,
json=payload
)
booking = response.json()
cURL
curl -X POST https://api.bookease.io/v1/bookings \n -H "Authorization: Bearer sk_live_your_api_key" \n -H "Bookease-Version: 2024-11-15" \n -H "Content-Type: application/json" \n -d '{
"service_id": "srv_8x7j9k",
"customer_email": "user@example.com",
"start_time": "2024-12-15T10:00:00Z"
}'
Frequently Asked Questions
How long is a version supported?
Major versions are actively supported for a minimum of 24 months. Maintenance continues for an additional 6 months before sunset.
Can I mix versions in a single request?
No. All endpoints in a single request/response cycle must use the same major version. Webhooks will always use the version specified in your webhook endpoint configuration.
What happens when a version is sunset?
All requests to a sunset version will return a 410 Gone status with a JSON body containing migration guidance and successor version details.